La manía por los contenedores continúa sin cesar. Pero eso podría no significar lo que usted piensa en términos de aplicações y arquitecturas.
Sigue existiendo una tendencia a equiparar los contenedores con los microservicios. Y por equiparar quiero decir "usar indistintamente".
Esta es una suposición errónea.
Verá, hoy en día un porcentaje significativo de contenedores se utilizan para implementar… aplicações existentes. Como se señala en Container Journal, una encuesta de IDC descubrió que menos de la mitad (46%) de los contenedores se utilizaban para nuevas aplicações. El resto ejecutaba aplicações existentes. (Fuente: Una encuesta de IDC descubre que los contenedores impulsan aplicaciones de misión crítica ) ¿La explicación a menudo citada para esta extraña combinación? Modernización.
Hay numerosos estudios e investigaciones que indican que la cantidad de aplicações "nuevas" que se crean como nativas de la nube aún es relativamente pequeña: menos de 1 de cada 5, según la investigación de Cap Gemini. Una investigación reciente de Diamanti descubrió que el 31% de los líderes de TI buscaban contenedores específicamente con el propósito de modernizar aplicações heredadas. Esto no es ninguna sorpresa. Estamos en una era de TI multigeneracional, que admite cinco generaciones diferentes de arquitecturas de aplicação .
Así que existen todas estas aplicaciones tradicionales (y aún hay más por venir) que pueden terminar implementándose en contenedores.
Sostengo que esto es algo bueno, porque los contenedores y la tecnología relacionada, como las mallas de servicio, realmente pueden ayudar en los esfuerzos de modernización.
La observabilidad, si no está familiarizado, comprende tres pilares generalmente aceptados, como detalla Cindy Sridharan en " Observabilidad de sistemas distribuidos ":
No falta contenido sobre este tema, incluidos los desafíos inherentes a los grandes datos operativos generados por los registros y la emisión de telemetría, por lo que no lo cubriré aquí. Basta decir que se necesitan los tres para aprovechar todo el potencial de la observabilidad.
Baste decir también que en este último punto – los rastros – las aplicações existentes y heredadas están en desventaja. Verá, la mayoría no estaban instrumentados para emitir la telemetría necesaria para rastrear una transacción en su recorrido desde su origen hasta su cumplimiento. Los registros de eventos y las métricas son mucho más fáciles de generar y obtener independientemente de la arquitectura y el entorno de la aplicação . Estas son opciones estándar en casi todas las plataformas web y de aplicação . ¿Pero la instrumentación? Eso generalmente implica código integrado o agentes con visibilidad del tráfico en tiempo real.
Esta es una de las cosas que una malla de servicios puede proporcionar.
Si recuerdas, una malla de servicios se compone principalmente de servidores proxy sidecar dentro de un entorno de orquestación de contenedores. Estos proxies básicamente procesan toda la comunicación (entrante y saliente) de un contenedor. Al hacerlo, estos servidores proxy escalan los servicios pero también proporcionan un lugar perfecto para instrumentar el tráfico con el fin de permitir una observabilidad completa. Pueden enriquecer los mensajes que atraviesan el entorno de contenedores para incluir etiquetas detalladas y otros metadatos que permiten a los sistemas rastrear y correlacionar el tráfico entre múltiples sistemas y servicios.
Lo mejor de todo es que pueden lograrlo con muy pocas modificaciones de la aplicação . En algunos casos, como el de las aplicaciones Java, existen opciones basadas en configuración para inyectar las capacidades adecuadas sin modificar el código.
La capacidad de emitir rastros de aplicações existentes es una capacidad clave en la búsqueda de la verdadera observabilidad. Si las aplicações existentes se implementarán en contenedores, considere cómo una malla de servicios puede ayudar a modernizarlas.