Primero fueron las aplicações en todas partes y para todo ; luego fueron los microservicios (y las tecnologías de contenedores que los posibilitan). ¿Cuál es la próxima innovación que ayudará a ofrecer una experiencia de usuario estelar a través de las aplicaciones? Malla de servicio.
El enfoque de microservicios se basa en componentes pequeños y de un solo propósito que se utilizan para formar aplicações más grandes y complejas. Se puede crear un microservicio para casi cualquier cosa y, como cada uno se centra en una única capacidad, son relativamente rápidos de desarrollar. Sin embargo, cuantas más capacidades desee, más complejo será coordinar los componentes del microservicio.
Las aplicações tradicionales (a veces llamadas aplicações monolíticas) son más lentas de desarrollar, pero tienen ventajas. Dado que un solo programa ejecuta muchas funciones independientes, la coordinación entre los componentes generalmente está integrada en el sistema. Sólo hay una única fuente de código, lo que hace que sea más fácil solucionar problemas y depurar las aplicaciones tradicionales.
Una malla de servicios es una capa transparente de infraestructura que facilita la comunicación entre microservicios . Esto brinda a las aplicaciones creadas con microservicios las mismas ventajas que una aplicación tradicional, como resiliencia, observabilidad y seguridad.
El cambio del monolito a los microservicios fue impulsado principalmente por la necesidad de que los equipos de aplicação fueran más ágiles y ejecutaran más rápidamente. Reducir una aplicação grande a muchos elementos pequeños permitió que los equipos individuales se especializaran. Esto les permitió iterar más rápido de lo que podían cuando tenían que preocuparse por cada aspecto del monolito.
Sin embargo, esta velocidad y agilidad tienen un precio: una mayor complejidad. Los microservicios simplifican el desarrollo, pero introducen nuevos desafíos, especialmente en torno a la protección y orquestación de múltiples componentes efímeros. La malla de servicios es una forma para que los desarrolladores descarguen la complejidad a medida que las aplicações habilitadas para microservicios escalan .
En un podcast reciente , Andrew Jenkins, cofundador y director de tecnología de Aspen Mesh , lo expresó de esta manera: "En un entorno de malla de servicios, el mayor cambio no está en lo que los desarrolladores de aplicaciones necesitan hacer, sino en todas las cosas que se espera que no hagan". Por ejemplo, el componente de seguridad de una malla de servicios proporciona autenticación y administra si una aplicação confía en otra. Cuando falla una solicitud, el operador de la plataforma tiene las herramientas para definir si el microservicio vuelve a intentarlo o se retira.
En este nuevo entorno, los desarrolladores pueden centrarse en llevar las solicitudes a la capa de malla de servicio. El operador de la plataforma, con acceso a herramientas que observan todas las comunicaciones entre microservicios, puede ofrecer al desarrollador de aplicaciones una gama completamente nueva de datos y métricas. “En una malla de servicios, solo tienes que arreglar esa rotura en un lugar y luego se arregla en todas partes. “Esa misma historia de consistencia aparece una y otra vez”, dice Jenkins.
Piense en la malla de servicios como una nueva y poderosa caja de herramientas. Hay herramientas para seguridad, procesamiento de transacciones, cifrado, motores de recomendación, rastreo distribuido… la lista continúa. Pero las herramientas poderosas no te ayudarán si no sabes cómo usarlas. Los primeros usuarios exitosos de la malla de servicios necesitan una práctica sólida de arquitectura de nube y un equipo de plataforma con experiencia en la definición de servicios de infraestructura para desarrolladores.
Muchas organizaciones ejecutan con éxito Kubernetes y otras tecnologías de contenedores sin una malla de servicios. Las implementaciones estándar de Kubernetes abordan muy bien los problemas de implementación integrados. Sin embargo, a gran escala, las aplicações de Kubernetes desarrollan problemas de tiempo de ejecución que no se abordan tan bien, como el cifrado, la interrupción de circuitos y el enrutamiento dinámico del tráfico. Soluciones como NGINX y otras soluciones de ingreso de contenedores llenan gran parte de este vacío al brindar medios para capturar, dar forma, controlar y visualizar el tráfico de red a medida que ingresa a una aplicação. Pero cuando los desarrolladores comienzan a llegar al límite de lo que esas herramientas pueden ofrecer, la malla de servicios promete un nuevo nivel de visibilidad de lo que los microservicios en contenedores pueden hacer.
En la actualidad, la malla de servicios sigue estando a la vanguardia. Para las organizaciones que ya están totalmente comprometidas con Kubernetes o que planean desarrollarse con Kubernetes, será más fácil implementar una malla de servicios de manera temprana que incorporarla más adelante. Si está escalando Kubernetes y desea minimizar la sobrecarga de administración, entonces necesita una malla de servicios.
Para las organizaciones con necesidades de seguridad complejas o que dependen en gran medida de aplicações derivadas de microservicios, una malla de servicios puede acelerar la implementación y el mantenimiento, reforzar la seguridad y ayudar a optimizar el consumo de recursos. Los entornos de malla de servicios aumentan la visibilidad y brindan datos de nivel micro y macro que pueden usarse para optimizar las aplicações.
La malla de servicios es el siguiente nivel de avance para los microservicios y las tecnologías de contenedores. Con la estrategia adecuada, puede ser una herramienta poderosa.