A partir de los cambios realizados en el software de Facebook, se reveló el secreto que tienen para mantener una plataforma para miles de millones de usuarios.
Los miles de millones de usuarios de Facebook tal vez no hayan notado ningún cambio. Pero en el último año, la red social ha revisado su software para que pueda estrenar nuevas características de manera más rápida y así ahorrarles tiempo a sus ingenieros.
Los arreglos, tanto grandes como pequeños, ayudan a mantener el sitio funcionando sin problemas, incluso durante grandes picos de tráfico durante eventos importantes como el huracán Harvey. También ayudan a la compañía a agregar nuevas características como el streaming de video y de mensajería, sin tantos problemas técnicos.
Para ayudar con estos proyectos, Facebook usó técnicas de desarrollo de software usadas típicamente por startups que representan una fracción de su tamaño, dijo Chuck Rossi, quien supervisa los grandes proyectos de lanzamiento de software en la compañía. Cuando se unió a Facebook por primera vez hace casi 10 años, después de estar en Google (GOOG), VMware (VMW) e IBM (IBM), vio cómo los “chicos locos”, como él les dice, construyeron el sitio y su infraestructura como nunca lo había visto antes.
En lugar de crear software en etapas largas y prolongadas, como la mayoría de las grandes compañías, el pequeño equipo de Facebook escribió código en pedazos más pequeños para acomodar el crecimiento de la compañía. Este enfoque ágil de desarrollo, como es conocido en la industria de la tecnología, puede ser más caótico, pero se traduce en poder estrenar características más rápidamente de lo normal.
“¿Entro y aplico mis 20 años de experiencia aquí y los obligo a ir por un estándar industrial más conocido, o nos vamos con lo que estos chicos crearon?”, dijo Rossi. “Elegí lo segundo”.
Los desarrolladores tendrían acceso al código fuente completo de la empresa y “manipular” fragmentos del mismo para sus respectivos proyectos, agregó. Los cambios que le hicieron al software se implementarían una vez al día.
Sin embargo, cuantos más programadores contrató Facebook, más frecuentemente querían modificar el código, a menudo desde oficinas tan distantes como Tel Aviv y Dublín. Coordinar la actividad fue difícil debido a la naturaleza global de su trabajo.
Finalmente, los ingenieros aumentaron la productividad hasta hacer casi mil cambios al código tres veces al día. Además, habría una gran actualización semanal para cambios que se suponía iban a ocurrir a principios de la semana, pero por alguna razón no fue así.
El proceso de lanzar software en horas determinadas comenzó a frenar las cosas, lo cual no es bueno para un servicio que se sigue expandiendo. Con el tiempo, la codificación de Facebook comenzó a parecerse a las prácticas de desarrollo de empresas más grandes y con mayor antigüedad, y no a aquella startup de moda que Facebook fue alguna vez.A partir de abril de 2016, Facebook comenzó gradualmente a ajustar su software con mayor frecuencia, terminando así con cualquier justificación para programar sus lanzamientos. En su lugar, Facebook desarrolló un sistema que llama Gatekeeper, que implica el despliegue de cientos de cambios cada par de horas.
Usando herramientas personalizadas, los programadores de Facebook pueden revisar automáticamente errores en su nuevo software antes de implementar sus cambios. Un retraso automático en generar todos los cambios en todo el servicio le da a los empleados tiempo para detectar cualquier falla, como una pestaña que desaparece, para que puedan activar un switch de emergencia para evitar que el código llegue a los usuarios.
Una vez que el código está listo, solo sale para el 2 % de los usuarios de Facebook. Si todo sale bien, entonces se lanza para todo el mundo.
Rossi reconoce que el nuevo sistema de Facebook de verificación y comprobación no es revolucionario, considerando que la mayoría de las startups de rápido crecimiento tienen sistemas similares que aseguran que el software se construya rápidamente sin errores catastróficos. Google y Amazon probablemente tienen sistemas similares.
Sin embargo, el hecho de que Facebook tuviera que revisar cómo se construye el software es notable, y Rossi dijo que “fue un poco solitario y de miedo”, porque no había mucho precedente para una empresa tan grande como Facebook para hacer un cambio de ese tamaño solo en un año.
Durante un periodo de tres días en abril, todo el proceso de software de Facebook se trasladó al nuevo sistema, “y nadie se dio cuenta”, concluyó.