La historia del DevOps de Netflix
La historia de encantamiento de Netflix con DevOps comenzó un 15 de agosto de 2008 después de que una importante corrupción de la base de datos provocara una interrupción de días en los servicios que brindaba a sus clientes. Esta interrupción fue una llamada de atención para Netflix, y se dieron cuenta de que su modelo de centro de datos tradicional no era lo suficientemente escalable, confiable o eficiente para respaldar su creciente negocio. Entonces Netflix decidió migrar a la nube eligiendo un importante proveedor externo de nube. En ese momento Netflix también adopto una estrategia de desarrollo de microservicios.
Por ese entonces también el Belga Patrik Dubois (considerado el padre del Devops) se encontraba con Andrew Schafer donde empezaron a visualizar la idea y crearon un grupo en Google para abrir la discusión a la comunidad, el Agile System Administrators Group.
Para el año 2012 Netflix empezó a observar que sus servicios eran muy costosos de operar y que para probar el funcionamiento de cada cambio tenían que realizar pruebas manuales durante una semana. A lo largo de esta semana, durante esas pruebas además de la dificultad de realizar las pruebas y de controlar los resultados, los equipos implicados se “pasaban la pelota” entre sí para evitar hacerse cargo de los errores detectados. Para entender las pruebas con errores, observaron que el ciclo de desarrollo compuesto por Diseño, Desarrollo, Pruebas, Despliegue, Operaciones y Soporte donde se tenían roles especializados muy eficaces en cada área, pero muy ineficientes en el ciclo completo de desarrollo.
Por el 2012, Gartner comienza a usar el término ARA “Application Release Automation” que son herramientas que ayudan a tener las mejores prácticas de DevOps. El mundo ya compraba la idea.
Netflix ve que el área de desarrollo de software debería encargarse también de mantener y operar el sistema y que eso le permitía ser más ágiles para detectar y resolver incidencias. Entonces deciden construir equipos que se focalizaran en crear herramientas e infraestructura para resolver problemas comunes en todas las áreas de desarrollo. ¿Esto te suena común?
Para poner en marcha estos proyectos contrataron personal especializado en ingeniería que tuviera conocimiento en todas las áreas del ciclo de creación de software. Estos especialistas se encargaron de automatizar y dar soporte en la operación de los sistemas a los desarrolladores.

Pero el proceso de Netflix ha tenido muchas más características interesantes más allá del DevOps que nos podemos imaginar hoy, por ejemplo, Netflix sigue un enfoque de «producción sin obstáculos» que brinda a cada ingeniero acceso completo al entorno de producción desde el primer día. Esto significa que los ingenieros pueden implementar su código en producción sin necesidad de aprobaciones ni revisiones. Esto también significa que los ingenieros son responsables de la calidad y confiabilidad de su código. Eso sin duda dice que Netflix confía en sus ingenieros para tomar las mejores decisiones para sus clientes y su servicio. Para la industria tradicional del software este es uno de los principios más disruptivos de la operación, pero Netflix confía en su equipo.
Cuando aparecen los incidentes (que siempre suceden), se adopta un proceso de revisión sin culpa donde se fomenta el aprendizaje y el impulso hacia las mejoras. Los equipos se centran en identificar las causas fundamentales en lugar de asignar culpas. Hoy las nuevas culturas empresariales buscan esto cuando se habla de people centric, pero Netflix ya lo implanto hace más de 10 años.
Netflix se centra en la innovación y la satisfacción del cliente. Netflix cree que el tiempo de actividad de sus empleados no es una buena medida del éxito, ya que no refleja como impacta en la experiencia del usuario ni en el valor entregado. Es parte de la cultura de Netflix.
Netflix prefiere experimentar con nuevas funciones y tecnologías, incluso si pueden causar fallas o errores porque eso es parte de la innovación. Netflix aprende de estos fallos y mejora su servicio en consecuencia.
Es interesante mencionar la ingeniería del caos de Netflix que es una práctica que implica inyectar deliberadamente fallas en sus sistemas y servicios para probar y mejorar su resiliencia y confiabilidad. La ingeniería del caos de Netflix utiliza herramientas como Chaos Monkey, Chaos Kong y Chaos Automation Platform (CAP) para crear y gestionar diferentes tipos de fallos. Un ejemplo es construir fallas del servidor, latencia de la red o interrupciones regionales para que lo que denominan la ingeniería del caos de Netflix les permita descubrir y corregir vulnerabilidades, así como a prepararse para escenarios inesperados.
Netflix no impone lenguajes o marcos de programación específicos y permite a los ingenieros elegir las mejores herramientas para el trabajo. Netflix no tiene una tecnología estándar ni una forma prescrita de hacer las cosas. Netflix anima a sus ingenieros a utilizar herramientas y marcos que se adapten a sus necesidades y preferencias. Netflix también ayuda a sus ingenieros a aprender nuevas habilidades y tecnologías, así como a compartir sus conocimientos y experiencia con otros. La libertad es un valor muy importante para crear, dejar que las personas tengan sus momentos de inspiración luego por lo general trae muy buenos resultados para todo el ecosistema de la empresa.
De todas formas, nos preguntamos y como tomas las decisiones Netflix. Netflix recopila y analiza una gran cantidad de datos de sus usuarios, sus sistemas y sus procesos. Netflix utiliza estos datos para comprender el comportamiento, las preferencias y los comentarios de sus clientes. Netflix también utiliza estos datos para medir su rendimiento, identificar problemas y encontrar soluciones. Netflix también utiliza estos datos para probar hipótesis, validar suposiciones y evaluar resultados. Netflix es una empresa que basa sus decisiones en DATOS.
Netflix adopta el cambio y la mejora constante al crear una cultura en la que todos tienen un asiento en la sala de conferencias. Netflix no tiene una jerarquía rígida ni una estructura fija. Netflix permite a sus empleados tener autonomía, propiedad y responsabilidad en su trabajo. Netflix también anima a sus empleados a tener comunicación abierta, colaboración y retroalimentación entre ellos. Netflix también fomenta una cultura de innovación, experimentación y aprendizaje entre sus empleados.
Es interesante ver esta experiencia del DevOps de uno de los principales impulsores y como se puede observar aquí tenemos herramientas, organización, cultura y PERSONAS. En Cenco estamos en ese camino, tenemos un proyecto interno de mejora de nuestra propia fábrica de software que lo miramos y seguimos como un proyecto más de los prioritarios. Comentábamos con Edu que esta es una historia muy inspiradora y esta buena compartirla y este mundo del Devops sigue, hoy esta GptOps en los inicios, ya hablaremos de esto…