Errores de escala: ¿Es posible que los protocolos que facilitan la comunicación en Internet hayan llevado al fracaso durante el primer día del lanzamiento de Obamacare?

Fui parte de uno de los equipos de desarrollo de sitios web de Exchange basados ​​en el estado y descubrí los siguientes problemas:

  1. Muy menos tiempo para desarrollarse. El desarrollo de un producto masivo dentro de un año o 6 meses simplemente no es posible.
  2. La recolección de requisitos se hizo en broma. Equipo funcional incompetente y decisiones lentas del otro lado como lo que necesitan.
  3. Equipo de desarrollo con visión cero sobre qué construir. Falta de perspectiva técnica.
  4. Corregir los errores es más importante que mirar desde la funcionalidad de extremo a extremo.
  5. Muchas dependencias del sistema externo que ni siquiera funcionaron hasta unos días antes del lanzamiento.
  6. Cambios de último minuto en el código.
  7. Sin automatización en las pruebas. Todo se probó manualmente y los probadores tienen el motivo para completar el caso de prueba para que así sea la calidad.
  8. Más papeleo, informes y seguimiento de los procesos que el desarrollo.
  9. Project se enfoca en entregar la funcionalidad sin ninguna revisión de código.
  10. La mayoría de los desarrolladores senior estaban trabajando como líderes de equipo y la mitad del tiempo se dedicaba a informes de estado y otras actividades similares.
  11. Y nuevamente limite el conocimiento técnico. Algunos desarrolladores de mediana experiencia estaban haciendo la administración del sistema, arreglando el rendimiento y desarrollando la parte más compleja del código simplemente buscando en Google sin saber qué implicaciones
  12. Sin pruebas de carga e indisponibilidad de la configuración adecuada del entorno de ensayo antes de hacerlo.
  13. Muchos equipos dentro del proyecto trabajan en aislamiento sin siquiera pensar en posibles problemas que pueden llegar tarde

Todo esto y más conducen al fiasco, no a Internet. La prueba de carga se realizó en el entorno UAT / SIT (con 1-2 servidores) y los resultados se escalaron teóricamente mientras el entorno de preparación ni siquiera estaba en funcionamiento.

EDITAR::
Pocos puntos que observé son al comprender el Mercado de Seguros de Salud, la Ley de Atención Asequible

  1. El equipo que hizo front-end no tenía una configuración de canal de comunicación adecuada con el equipo de back-end. Probablemente, los cambios de última hora habrían dado un error de validación. Es imposible que no se haya realizado una ronda básica de pruebas. Cualquiera de los cambios de última hora o la integración de última hora con el sistema frontal sería un error aquí.
  2. No es solo un sitio web que tiene algunas características básicas de comercio electrónico para los planes de seguro de salud. Es mucho más complejo en eso.
  3. Necesita apostar en sincronía con operadores de 34 estados. Sus planes y los atributos solían cambiar todos los días. La mayoría de ellos no estaban contentos con algo u otro. La carta de amenaza de último minuto solía ser muy desafiante aquí.
  4. Los sistemas externos y sus sistemas heredados como el IRS, CMS y otros datos de agencias federales deben funcionar correctamente. Enormes puntos de integración y servicios web. Me pregunto si funcionan correctamente.
  5. La cuestión de la tenencia múltiple y los datos que se almacenarán para diferentes estados de manera diferente.
  6. Cada estado tiene sus propios programas de atención médica y diferentes políticas para implementaciones que habrían resultado en cientos de miles de reglas. No estoy seguro de esto, si lo han implementado o no y en caso de que algo se estropee remotamente aquí. si da resultados incorrectos de Medicaid, chip u otro tipo de elegibilidad.
  7. La seguridad de los datos. ¿Son estos sitios web lo suficientemente seguros y probados como para manejar los datos (tiene preguntas ilimitadas y todos los detalles personales, incluidos SSN, ingresos, familia, impuestos, detalles anteriores del plan de salud)? ¿Cómo van a gestionar sitios web falsos si se crean que pueden causar ataques de phishing?

Es pura incompetencia por parte de los desarrolladores, administradores de sistemas y administradores de proyectos. Si su sitio web no puede manejar un millón de visitantes antes de las 7 a.m., ya está en mal estado. Eso es unos cientos de golpes por segundo durante las ráfagas de tráfico particularmente ocupado, en el peor de los casos. Por favor, dígame que el gobierno puede pagar los 5 servidores que requeriría (sí, estoy estimando).

TCP / IP se prueba en cantidades masivas en menos de un milisegundo, todo el día, todos los días. Netflix hace más tráfico en un minuto que los sitios web de ACA durante todo el año, y posiblemente toda la década. Youtube obtuvo 1.5 millones de reproducciones de video a las 12:01 am, y probablemente lo manejaron sin errores, porque cuentan con la infraestructura adecuada.

Esto es lo que sucedió, parafraseando:

  1. Los desarrolladores del sitio web de ACA hicieron un producto
  2. Se encontraron errores, por lo que corrigieron los errores
  3. Se corrigieron errores utilizados todo el tiempo restante del proyecto
  4. No queda tiempo para las pruebas de rendimiento y escalabilidad
  5. El sitio se puso en funcionamiento de todos modos
  6. ¡Auge!
  7. Revuelve para arreglar

La mayoría de las compañías no tienen la suerte de llegar al paso 6.

No. Es una simple incompetencia del gobierno: la falta de aprovisionamiento de servidores web suficientes para una carga probable, y posiblemente el software de back-end no está suficientemente eficientemente escrito.

Quizás si hubieran usado Amazon EC2 …

No, no solo es creíble que TCP / IP haya tenido la culpa. Como otros han señalado, se ejerce a una escala mucho más alta cada segundo.

Tampoco creo que haya sido una simple subprovisión. La escalabilidad es como una cadena: es tan buena como el eslabón más débil. Si solo una pequeña parte está mal aprovisionada, pero el procesamiento de la solicitud depende de ello, entonces todo el sistema fallará. Incluso si las piezas están adecuadamente aprovisionadas, es posible que las relaciones entre las piezas dejen muy pocos caminos utilizables simultáneamente y el sistema en su conjunto se escala menos que sus partes. Por último, incluso si ese no es el caso, si hay demasiadas dependencias, cada solicitud puede sucumbir a la “latencia de cola”, ya que siempre hay al menos una dependencia de cada cien que responde lentamente. Si se produce alguno de estos problemas, puede acumularse rápidamente a medida que las solicitudes se ponen en cola y aumentan aún más la carga efectiva.

Escalar un sistema requiere trabajar a través de cada uno de estos problemas sucesivamente más sutiles a su vez, resolver los problemas para que el sistema pueda funcionar a una fracción razonable, nunca al 100%, de su capacidad aparente. Es completamente posible que la teoría de Jordan Ambra sea correcta y que no haya tiempo suficiente para las pruebas de escala, pero eso aún deja muchas posibilidades de dónde estaban en el proceso cuando tuvieron que detenerse y ponerse en marcha.

Lo siento, eso no es creíble. Si Internet tuviera la culpa, verías fallas en todo el lugar.

Lo más probable es que los servidores no hayan sido probados o aprovisionados a escala. Este es un problema muy común para los servicios nuevos a gran escala. Es cierto que también es muy difícil y costoso prevenirlo.