A pesar de que se ejecuta enteramente desde la plataforma de nube de AWS, el gigante de la transmisión en línea Netflix informa de una rápida recuperación de la interrupción del domingo, lo que demuestra la importancia de su enfoque de construir sistemas basados en la nube para «fallar».
La importancia de construir servicios en la nube para resistir el fracaso fue demostrada el domingo cuando Amazon Web Services (AWS) sufrió una interrupción importante.
Algunos de los sitios y aplicaciones más grandes de Internet no estaban disponibles de forma intermitente después de que más de 20 servicios en la plataforma AWS comenzaron a fallar.
Las interrupciones afectaron a los servicios de AWS y se quedaron sin centros de datos en el norte de Virginia, a los que la compañía se refiere como la región US-EAST-1.
AWS es utilizado por muchas de las principales empresas para apoyar sus operaciones en línea. Como resultado, los usuarios de Netflix, Tinder, Airbnb e IMDb reportaron problemas para acceder al contenido durante el período de seis a ocho horas en que los servicios de nube de Amazon se vieron afectados. Los problemas también obstaculizaron los productos de Amazon, como el Echo, el altavoz inteligente de Amazon que utiliza un sistema de reconocimiento de voz basado en la nube llamado Alexa.
Los problemas parecen haber aparecido por primera vez a las 3am PDT el domingo – cuando los usuarios comenzaron a experimentar mayores tasas de error en la base de datos NoSQL de AWS DynamoDB.
Sin embargo, los problemas con el aumento de errores y la latencia comenzaron a aparecer en otros 22 servicios de AWS, incluyendo ofertas importantes como AWS Elastic Compute Cloud (EC2), el servicio de escritorio virtual AWS WorkSpaces y el servicio de cómputo controlado por eventos AWS AWS Lambda.
En un par de horas AWS había identificado la «causa raíz» de los problemas con DynamoDB, señalándolo como un «fallo de un subservicio interno que gestiona la información de tablas y particiones».
Poco después de las 9am PDT AWS había resuelto los problemas con DynamoDB y lo reportó como operando normalmente. La mayoría de los servicios funcionaban normalmente a esta hora, aunque algunos otros servicios, como AWS Auto Scaling, se vieron afectados hasta cerca de las 11.30 de la mañana.
Cómo Netflix combatió la interrupción con caos
Un cliente de AWS que consiguió evitar cualquier «impacto significativo» de las interrupciones, según un portavoz, fue el sitio de streaming de vídeo Netflix.
El gigante de los medios en línea confía en Amazon Web Services para transmitir películas y programas de televisión a más de 50 millones de hogares en todo el mundo y fue capaz de restaurar»rápidamente» el servicio a su pleno funcionamiento, según el portavoz.
Ayudar al servicio a capear la interrupción del servicio fue su práctica de lo que llama «ingeniería del caos».
El enfoque de ingeniería hace que Netflix despliegue su Simian Army, un software que deliberadamente intenta causar estragos en sus sistemas. Simian Army ataca la infraestructura de Netflix en muchos frentes – Chaos Monkey desactiva aleatoriamente las instancias de producción, Latency Monkey induce retrasos en las comunicaciones cliente-servidor, y Chaos Gorilla simula la interrupción de toda una zona de disponibilidad en Amazon.
Al inducir constantemente fallos en sus sistemas, la empresa es capaz de resguardarse de problemas como los que afectaron a AWS el domingo.
En ese caso, Netflix fue capaz de redirigir rápidamente el tráfico de la región AWS afectada a centros de datos en un área no afectada.
Netflix fue capaz de hacer esto porque practica lo que llama replicación multirregional, activa-activa – donde todos los datos necesarios para sus servicios son replicados entre diferentes regiones de AWS de una manera que permite una rápida recuperación de las fallas.
«Es muy poco probable que se produzca una interrupción completa de la infraestructura regional, pero nuestro ritmo de cambio a veces rompe servicios críticos en una región, y queríamos que Netflix fuera resistente a cualquiera de las dependencias subyacentes», dijo Netflix en una entrada del blog en la que se describe la práctica.
Adrian Cockcroft, ex arquitecto jefe de computación técnica de alto rendimiento de Netflix, dijo en Twitter que la replicación activa-activa añade alrededor del «25 por ciento» a los costes y describió el enfoque como una «póliza de seguro».
«La mayor parte del coste adicional es la duplicación del nivel de almacenamiento a escala del 100% en ambos lados todo el tiempo», añadió.
Netflix utiliza Apache Cassandra, una base de datos distribuida de código abierto NoSQL. Para mantener la disponibilidad, el servicio tiene que mantener unos «pocos miles» de nodos Cassandra en «todas las regiones», dijo Cockcroft.