Héctor Takami*
Las expectativas que tenemos como consumidores digitales, así como la demanda de los servicios que utilizamos, se han disparado —y esto tanto de manera previa como en época de pandemia—.
Los usuarios queremos experiencias digitales sin complicaciones, punto. De ahí que se estime que, para seguir el ritmo de estas demandas, las organizaciones deberán invertir este año alrededor de $1.78 billones de dólares para su transformación digital, en comparación a los 1.31 billones de dólares invertidos en 2020.
Este acelerado ritmo de evolución en los negocios ha ejercido una presión cada vez mayor sobre los equipos de desarrollo y operaciones (DevOps, por sus siglas en inglés), para que avancen más rápido sin comprometer la calidad en la entrega de servicios.
Ahora se espera que construyan y lancen pequeñas actualizaciones progresivas de las aplicaciones varias veces al día cuando, hace tan sólo unos años atrás, era más probable que los equipos entregaran una actualización significativa por trimestre.
Con esta presión, incluso las grandes empresas que ejemplifican los más altos estándares de experiencia digital no siempre ejecutan el lanzamiento de apps y software de la mejor forma.
La caída que tuvo Facebook en octubre de 2021, que dejó a los usuarios sin poder acceder a sus servicios durante seis horas, es un ejemplo de cómo incluso un pequeño cambio en la configuración de la infraestructura digital puede generar caos.
Para que las organizaciones innoven sin impactar de forma negativa en la experiencia de los usuarios, necesitan prácticas modernas e inteligentes en el desarrollo y la entrega de servicios digitales. Esto puede reducir el riesgo de errores inesperados, mejorar la calidad del código y aliviar la carga a los equipos de DevOps.
Comprometer la calidad por la velocidad
Los ciclos de innovación se han vuelto más rápidos. Un estudio reciente propio indica que las organizaciones esperan que la frecuencia de sus lanzamientos de software aumente 58% para 2023. Pero a muchas les resultará imposible o altamente complicado mantener el ritmo, ya que los equipos de DevOps tienen dificultades con sus cargas de trabajo actuales.
Se han invertido incontables horas en el desarrollo de actualizaciones para cientos de variaciones de dispositivos, aplicaciones y sistemas operativos; a medida que crece la complejidad de las TI, las demandas de tiempo para los equipos de DevOps aumentarán aún más.
Sin embargo, escribir el código es sólo la mitad de la batalla. Las pruebas manuales, que consumen mucho tiempo, las cadenas de herramientas cada vez más fragmentadas y la explosión de datos resultante del cambio a la nube han añadido fricción al proceso de desarrollo.
Con tanto qué hacer y sin recursos adicionales, la presión sobre los equipos de DevOps puede obligarlos a sacrificar la calidad del código. Como resultado, es más probable que los errores de codificación se filtren en la red, poniendo en peligro los servicios digitales y las experiencias de los usuarios.
Hasta los pequeños cambios representan un riesgo
Aunado a lo anterior, puede ser difícil comprender el verdadero impacto de una nueva versión de software hasta que se pone en marcha; y lo que es peor, a menudo es difícil revertir el cambio en caso de que genere problemas, y volver a una versión anterior y estable de la aplicación.
Gran parte de este reto se debe a la complejidad de los actuales entornos multicloud. Los servicios digitales están formados por cientos de millones de líneas de código y miles de millones de dependencias, que abarcan múltiples plataformas y diferentes tipos de infraestructura.
Esta interconexión dificulta a los equipos de DevOps la comprensión de las consecuencias de los cambios que realizan, por pequeños que parezcan.
También ha creado una sobrecarga de alertas, ya que las herramientas de monitoreo de la nube capturan volumen, velocidad y una variedad de datos que superan la capacidad humana de gestión. A menudo, es imposible para los equipos de DevOps encontrar rápidamente la única línea de código que ha desencadenado un problema.
Un enfoque más automatizado e inteligente
Para evitar que el código de mala calidad llegue a la producción y para garantizar experiencias de usuario fluidas, las organizaciones necesitan un enfoque más inteligente del desarrollo de software.
Esto comienza con la aplicación de la automatización continua a las tareas repetibles, lo que libera a los equipos de DevOps para trabajar en actividades de mayor valor. En primer lugar, las organizaciones deben establecer filtros de calidad automatizados que midan las nuevas compilaciones con respecto a los objetivos de nivel de servicio (SLO, por sus siglas en inglés) para los indicadores clave de rendimiento, como el tiempo de respuesta o el rendimiento. Esto significa que los nuevos cambios de código no pueden ponerse en marcha a menos que cumplan con la línea base mínima para la experiencia del usuario, lo que evita un impacto negativo e inesperado.
En caso de que algo vaya mal, las organizaciones pueden mejorar el tiempo de resolución aprovechando las capacidades de observación unificadas de extremo a extremo. Este nivel de monitoreo proporciona a los equipos de DevOps información a nivel de código sobre todas las compilaciones de software, aplicaciones y servicios en cualquier plataforma en la nube, tanto si están en desarrollo como en los escenarios en los cuales ya se ha desplegado.
La combinación de esta observabilidad con AIOps (uso de la Inteligencia Artificial en las operaciones) puede llevar esos conocimientos un paso más allá, al priorizar automáticamente los problemas según su impacto en el negocio. Esto permite a los equipos de DevOps identificar rápidamente las alertas más urgentes y resolverlas, antes de que los usuarios experimenten un problema.
La mejora de las prácticas de desarrollo a través de AIOps, la automatización y la observabilidad pueden aliviar significativamente la presión sobre los equipos de DevOps y ayudarles a mantener el ritmo de la transformación digital. A medida que las organizaciones continúan lanzando software más rápido, es cada vez más importante integrar una visión continua y automática en todo su entorno de servicios digitales, para acelerar la transformación y ofrecer experiencias de software más fluidas.