Fabio Saenz, director regional para Dynatrace en Colombia, Centroamérica y el Caribe, propone un enfoque más automático e inteligente para el desarrollo de software con el objetivo de que las organizaciones puedan alcanzar el éxito digital en esta era de transformación vertiginosa.
Es innegable que la demanda de servicios digitales se está disparando, junto con las expectativas de los usuarios.
Los consumidores quieren experiencias conectadas sin complicaciones, y se espera que las organizaciones inviertan alrededor de 1,78 billones de dólares en 2022 para la transformación digital en comparación con los 1,31 billones de dólares en 2020 para seguir el ritmo de estas demandas.
Este acelerado ritmo de transformación ha ejercido una presión cada vez mayor sobre los equipos de DevOps (acrónimo en inglés de las palabras development – desarrollo y operations– operaciones), para que avancen más rápido sin comprometer la calidad. 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, era más probable que los equipos entregaran una actualización significativa por trimestre.
Con esta creciente presión, incluso las grandes empresas que ejemplifican los más altos estándares de experiencia digital no siempre ejecutan de la forma necesaria.
La interrupción de Facebook, que en octubre 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. Esto puede reducir el riesgo de errores inesperados, mejorar la calidad del código y aliviar la carga de los equipos de DevOps.
Comprometer la calidad por la velocidad
Los ciclos de innovación se han vuelto más rápidos. Un reciente estudio de Dynatrace indica que las organizaciones esperan que la frecuencia de sus lanzamientos de software aumente un 58% para 2023. Pero a muchas les resultará imposible o altamente complicado mantener el ritmo, ya que los equipos de DevOps tienen dificultades con las cargas de trabajo existentes. 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 (Tecnologías de la Información), las demandas de tiempo de 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 que 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.
Incluso los pequeños cambios representan un riesgo
Además, 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 (el 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.
Aliviar la presión y llevar al éxito
La mejora de las prácticas de desarrollo a través de AIOps, la automatización y la observación 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.