Todos tenemos días malos. Todas las empresas han pasado por algún tipo de interrupción debido a un despliegue defectuoso de la base de datos. Incluso las mejores, con personal altamente capacitado, mejores prácticas de clase mundial y procesos bien pensados, cometen errores. El 17 de mayo, Salesforce.com tuvo un mal día.
La compañía implementó un script de cambio de base de datos defectuoso que rompió la configuración de permisos en producción y dio a los usuarios acceso de lectura y escritura a datos restringidos. Esto abrió la puerta para que un empleado no autorizado robara o manipulara los datos de la empresa. Como resultado, Salesforce tuvo que cerrar gran parte de su infraestructura para encontrar y solucionar adecuadamente el problema. La interrupción duró 15 horas y 8 minutos. Según la fórmula de costo de tiempo de inactividad de Gartner ($5,600 por minuto), esta interrupción costó aproximadamente $5 millones. Además, dado que muchas empresas dependen de Salesforce, fue una interrupción muy visible y vergonzosa. (Solo echa un vistazo a #SalesforceDown y #permissiongeddon en las redes sociales).
Salesforce tuvo que cerrar todo debido a la forma en que funcionan las bases de datos. No es tan fácil como cerrar una sola aplicación. Quién sabe cuántos empleados de Salesforce trabajaron como locos para cerrar toda la base de datos, encontrar el script de base de datos ofensivo y restaurar todo, todo por un solo script de cambio. No es una forma divertida de pasar un fin de semana.
¿Qué nos dice esto? Históricamente, los clientes de Salesforce han experimentado muy pocas interrupciones en el servicio. El día de la interrupción, muchos clientes leales estaban tuiteando sobre lo sólido que ha sido el servicio, y eso es impresionante. Dicho esto, esta interrupción debería ser una llamada de atención para que los usuarios se den cuenta de su dependencia de su plataforma, que se ha convertido en una parte más integral de cómo hacemos negocios. He escuchado anécdotas de oficinas enteras que no pudieron completar el trabajo ese viernes. Las reacciones de los clientes muestran que claramente tienen todo bajo control en Salesforce. Lo que muestra esta interrupción es menos sobre las deficiencias de esta empresa en particular; sino más bien que todos tenemos puntos ciegos, sin importar cuán sólido sea el proceso de prueba.
Lecciones para los profesionales de TI:
No olvides la base de datos. Desafortunadamente, este problema es demasiado común. Hay innumerables casos de un script de cambio de base de datos que se ejecuta en producción y causa problemas inesperados. Esto indica que la base de datos a menudo se olvida en el ciclo de prueba y lanzamiento de software. A menos que las empresas comiencen a considerar seriamente la base de datos en cuanto a la gestión de cambios, cosas como esta seguirán sucediendo.
Automatiza todo. Los esfuerzos manuales fallan. Los humanos cometen errores. Empresas como Salesforce que manejan datos sensibles de los clientes no deberían ponerlos en Internet a menos que hayan automatizado todos los aspectos del sistema, incluida la base de datos. Las empresas necesitan un proceso de DataOps sólido, que incluya datos similares a la producción y automatice la validación de los cambios en la base de datos.
En resumen, esta interrupción de Salesforce nos recuerda la importancia de la gestión adecuada de las bases de datos en las empresas. No debemos subestimar el impacto que un error en la base de datos puede tener en la operación de toda la infraestructura. Es fundamental considerar la base de datos en el proceso de prueba y lanzamiento de software, y automatizar tanto como sea posible para minimizar los errores humanos. Aprender de esta experiencia nos ayudará a fortalecer nuestras prácticas y evitar futuras interrupciones costosas.