El desafío de garantizar la experiencia usuaria en aplicativos cuando todo es código
La adopción de nuevas tecnologías en infraestructuras informáticas, arquitecturas y soluciones en la nube han crecido sin precedentes en los últimos años, aumentando así la complejidad de su gestión y optimización.
Vivimos en una era tecnológica en la que disponemos de una gran variedad de recursos, como contenedores, plataformas como servicio (PaaS), máquinas virtuales, server-less, APIs, entre tantos otros. Y si a esto le agregamos los crecientes requisitos financieros, de disponibilidad, rendimiento e innovación de hoy en día, es un hecho que las aplicaciones deben estar distribuidas geográficamente y en entornos dinámicos que cambian constantemente. Simplemente no es posible aprovisionarlas, actualizarlas, monitorearlas y decomisarlas basándonos sólo en los procesos manuales. Y esto es aún más evidente cuando sabemos que la complejidad de la infraestructura a la que se enfrentan las empresas crece de manera exponencial.
Como efecto de esta evolución, la observabilidad aplicativa y de infraestructura se ha tornado crítica, al punto de pasar a ser un factor determinante en los tiempos de respuesta ante fallas. Si a esto le sumamos los nuevos paradigmas de gobierno y gestión para estas nuevas tecnologías, el análisis y resolución de problemas de rendimiento y seguridad, se tornan un dolor de cabeza que cuesta tiempo y dinero a las organizaciones.
Para hacer frente a ese desafío, las compañías han puesto una especial atención en la observabilidad para infraestructura, específicamente en la infraestructura como código o IaC. Este enfoque permite a los desarrolladores definir e implementar automáticamente aquellos componentes de infraestructura necesarios para ejecutar las aplicaciones mientras las desarrollan, lo que aumenta significativamente la agilidad. Así los equipos pueden automatizar estas tareas y destinar más tiempo (y atención) en resolver problemas más críticos para el negocio.
La Infraestructura como código (IaC) nos permite gestionar y aprovisionar infraestructura a través de código, en lugar de procesos manuales. Con IaC, se crean archivos de configuración que contienen las especificaciones de infraestructura, lo que facilita la edición y distribución de configuraciones, para simplificar las operaciones de TI, generar consistencia y brindar visibilidad.
Al invertir en observabilidad para la infraestructura como código, las organizaciones facilitan la previsión y prevención de incidentes, y, al mismo tiempo, promueven la calidad y la agilidad de los procesos en equipos DevOps.
También se logra reducir el tiempo de progresión, detección y resolución de incidentes, ya que los desarrolladores trabajan en estrecha colaboración con equipos de operaciones centralizados, garantizando el control y la incorporación de la observabilidad durante todo el desarrollo, así como el cumplimiento y la seguridad de las aplicaciones.
Todo como Código
El concepto de que todo puede ser manejado como código (EaC por sus siglas en inglés) es un concepto que lleva algún tiempo con la aparición de IaC. Todo como código (EaC) se puede describir como una metodología o práctica que amplía la idea de cómo las aplicaciones se tratan como código y aplica estos conceptos a todos los demás componentes de TI, como sistemas operativos, configuraciones de red y canalizaciones.
Es importante tener en cuenta que esta metodología cubre una amplia variedad de herramientas, muchas de las cuales son de código abierto, incluida la infraestructura como código, la gestión de la configuración, las operaciones, la seguridad y las políticas, que pueden aprovecharse para transformarse en Todo como Código. Tratar estos diferentes procesos como código asegurará que se sigan las mejores prácticas. Algunas de las herramientas más populares, tal como se enumeran, se pueden dividir en las siguientes categorías:
Terraform, AWS Cloud Formation, Azure Resource Manager, Google Cloud Deployment Manager
SaltStack, Ansible, Chef, Puppet
Dcoker, cri-o, Open Containers Initiave (OCI)
Kubernetes, Docker Swarm, OpenShift, Rancher
Jenkins, UrbanCode, Octopus Deply, Travis CI, GitLab CI, Bamboo, Concourse CI
Istio, VMware NSX, Envoy, Cisco Application Centric Infrastructure (ACI)
Estas herramientas facilitan el camino de transición al modelo de Todo como Código. Pero para alcanzar esto, es necesario además un cambio de mentalidad cultural de operación entre equipos. Una vez que los equipos estén a bordo y listos para seguir estos principios, los procesos de operaciones pueden llevarse al siguiente nivel de eficiencia. Esto permitirá que comiencen a preocuparse por otras cosas que aún no han sido resueltas por las herramientas ya disponibles en la organización.
Qué beneficios trae EaC a los equipos de TI
Los principios del uso de Everything as Code tienen una gran cantidad de beneficios, que incluyen:
Conocimiento y comprensión clara del entorno: una visión completa de la infraestructura, configuraciones y políticas sin la necesidad de depender de documentos o diagramas de red actualizados manualmente.
Monitoreo automatizado: la aplicación de la metodología Everything as Code al monitoreo dará como resultado la capacidad de implementar y actualizar automáticamente componentes como el agente de monitoreo de Dynatrace OneAgent y ActiveGate sin necesidad de ninguna intervención manual.
Infraestructura bajo demanda: la capacidad de implementar infraestructura cuando sea necesario. Esta infraestructura se puede integrar en una canalización de DevOps para construir y destruir entornos dinámicamente a medida que se ejecuta la canalización.
Centralización del manejo del código basado en Git – GitOps: este modelo proporciona un puente para el desarrollo y la producción donde Git es la fuente de la verdad; todo el código puede analizarse en busca de posibles errores (linting), compararse, probarse y validarse, brindando a los equipos más visibilidad, una mayor colaboración y una mejor experiencia general. Dado que el código ahora está controlado por versiones, las reversiones deberían ser fáciles de aplicar.
Coherencia: las migraciones, las implementaciones y los cambios de configuración deben ser simples y fáciles de replicar. La configuración de la implementación en un proveedor de nube específico o en un entorno dará como resultado la misma configuración que si la misma implementación estuviera dirigida a un proveedor de nube diferente o a otro entorno.
Dynatrace mismo es un ejemplo de adopción exitosa de EaC. Comenzando con su propia cultura y procesos, en los que utilizan una amplia variedad de herramientas que permiten a los equipos mantener lo más codificado posible. Dynatrace pasó de administrar cinco instancias EC2 en 2011 a alrededor de 1000 en 2017. Estaba claro que, para tener éxito en un mundo digital cambiante, Dynatrace necesitaba hacer la transición al uso de código para sus operaciones en lugar de hacerlo manualmente.
Muchos de estos principios se basan en la gestión autónoma de la nube (ACM), que es una metodología construida en torno a Todo como Código. Se centra en la transformación de DevOps a NoOps, así como en la automatización y el aprovechamiento del código para implementaciones automatizadas y gestión de configuración de OneAgent, ActiveGate y Managed Clusters.
Pero en TSOFT no sólo llegamos hasta el monitoreo automatizado, también abordamos las herramientas para codificar puertas de calidad o “Quality Gates” de rendimiento automatizadas en los pipelines aplicativos utilizando el componente Keptn Pitometer.
Keptn permite definir, construir y evaluar los SLOs para las pruebas de rendimiento de forma automatizada. De esta manera, se reduce el tiempo de evaluación de resultados drásticamente, sumando, además, la posibilidad de integrarse con plataformas de automatización de despliegue.
Recientemente, Dynatrace agregó compatibilidad con OpenTelemetry a su tecnología PurePath 4, que es su cuarta y última generación de rastreo distribuido automático e inteligente.
El agente OneAgent de Dynatrace captura automáticamente los eventos de PurePath y analiza las transacciones de principio a fin en cada nivel de la pila de tecnología de su aplicación sin cambios en el código, desde el navegador hasta el código y el nivel de la base de datos.
La adición de OpenTelemetry es especialmente útil para las organizaciones que buscan incorporar telemetría en sus aplicaciones, ya que sus datos enriquecerán automáticamente los datos de rastreo distribuidos de PurePath.
A medida que los desarrolladores adquieren responsabilidades a través de prácticas como GitOps y SRE, su capacidad para configurar la observabilidad y mantenerla actualizada con los requisitos en evolución se convierte en la piedra angular de las organizaciones exitosas.
Las configuraciones, como los paneles, las reglas de alerta y las definiciones de objetivos de nivel de servicio, se crean por separado y, a menudo, de forma manual. Cualquier acción que se requiera implementar se vuelve más difícil de hacer a escala cuando se hace manualmente. Se necesita más tiempo para llevarla a cabo, se deben realizar grandes esfuerzos para garantizar un resultado consistente y, por lo general, termina costando mucho más tiempo y dinero. La automatización nos brinda la capacidad de establecer un nivel predecible de calidad a escala con recursos limitados.
En TSOFT entendemos cuán crítico puede ser el monitoreo y cómo los cambios en su configuración pueden causar problemas importantes, especialmente en entornos de producción. Queríamos llevar esto un paso más allá y aplicar la metodología Everything as Code también a las configuraciones del monitoreo. Por esta razón, trabajamos junto a Dynatrace y su API de configuración que permite a los usuarios de Dynatrace administrar su configuración de monitoreo.
¿Quieres obtener más información sobre nuestro portafolio de Innovación Digital y sus servicios?
Contacta a:
Pablo Paciullo
Head of Smart Operations
LinkedIn