Opinión

Microservicios: nuevas tendencias en desarrollo de software

Mucho seguramente se ha escuchado sobre microservicios, sin embargo, la probabilidad de saber y entender ampliamente el concepto, sea tal vez baja. Hablar de Arquitectura de Microservicios es, básicamente, hacer referencia a un método de desarrollo de aplicaciones o sistemas de software, compuesto por servicios más pequeños que proporcionan una funcionalidad de negocio completa (microservicios).

Cada microservicio desempeña una función específica desplegada en forma aislada con su propia base de datos, pudiendo comunicarse con otros microservicios. En la vereda de en frente, se encuentran las soluciones monolíticas más tradicionales, donde todos los elementos funcionales están unidos en un programa o aplicación.

El uso de microservicios ha crecido considerablemente en los últimos años. Sin embargo, la falta de consenso en la definición de lo que es un microservicio y qué metodología adoptar en la migración de servicios tradicionales para este nuevo paradigma presenta varios desafíos a los equipos de IT. Con tiempo y recursos cada vez más escasos, disponibilizar los servicios de forma rápida se ha vuelto esencial para los equipos de IT.

CAT

Aunque los microservicios han surgido en la industria del software y ha sido el foco de los desarrolladores de software en la última década, en la academia hay varias líneas de investigación que precisan ser abordadas en esta temática. Por otra parte, una línea de investigación aún poco explorada es el uso de DevOps para la gestión de infraestructura, que tiene como objetivo establecer una cultura en los equipos de desarrollo de modo de construir y entregar software de manera rápida y confiable.

En esta línea, una práctica recomendada actualmente es la utilización de tecnologías de contenedores, por consumir pocos recursos, ser escalables y permitir una rápida migración entre infraestructuras heterogéneas. Contar con una integración bien definida del uso de la arquitectura de microservicios y la tecnología de contenedores permitiría entregar un ambiente de forma ágil y escalable. Este nuevo paradigma garantiza una plasticidad para atender demandas simples de las empresas como también dar soporte a demandas de escala global, como son las ciudades inteligentes. De esta forma, los investigadores y los equipos de IT podrán centrarse en que realmente importa: generar soluciones y valor para la sociedad y sus empresas de forma eficiente.

Los microservicios han tenido un crecimiento vinculado a la tecnología de contenedores. La contenerización es una tecnología para virtualizar aplicaciones de una manera ágil, resultando en un ahorro significativo en la administración de aplicaciones en la nube. Sin embargo, cómo construir, desplegar y orquestar contenedores, individualmente y en clusters, se ha convertido en un problema central. Cada contenedor funciona como un proceso aislado en el espacio usuario, utilizando menos recursos que una máquina virtual, siendo el proceso de inicio casi instantáneo. Como no existe la capa de virtualización de hardware, la sobrecarga de los contenedores es mínima.

Esta tecnología permite aislar y rastrear el uso de recursos, promoviendo un marcado aumento del rendimiento y optimización del uso del hardware. Para los desarrolladores esto representa una notable ventaja, ya que no tienen que preocuparse por cómo sería la máquina host de la aplicación, de modo que el contenedor puede ser fácilmente transferido a otros equipos, haciendo que la ganancia en productividad sea uno de los mayores atractivos para nuevos adoptantes de este modelo de desarrollo.

Sin embargo, toda esta disponibilidad de nuevas arquitecturas y de las tecnologías tiene un costo, y en el caso de los microservicios y contenedores, es la ausencia de un modelo estándar para la implementación de una infraestructura donde sea posible integrarlos, entregando un ambiente estable y ágil para los equipos. Por el lado de los microservicios, éstos son especificados usando estándares como OpenAPI o Swagger, mientras que desde la perspectiva de los contenedores, Docker se ha constituido como la tecnología dominante. Herramientas como Docker 1 juegan el rol de contenedores y funcionan como medios portátiles para empaquetar aplicaciones. En efecto, surge la necesidad de administrar dependencias entre contenedores de aplicaciones.

Herramientas como Kubernetes 2 es un caso de orquestación de contenedores. Kubernetes habilita una implementación basada en contenedores dentro de nubes de plataforma como servicio (PaaS). Puede proporcionar una aplicación nativa de la nube, y hasta un sistema distribuido y escalable horizontalmente compuesto de microservicios, con capacidades operativas tales como soporte de elasticidad y resiliencia.

¡MANTENGÁMONOS EN CONTACTO!

Nos encantaría que estuvieras al día de nuestras últimas noticias y ofertas 😎

Autorizo al Prensario y a los anunciantes a almacenar los datos solicitados y acepto que puedan enviarme comunicaciones de sus productos y servicios. *

¡No hacemos spam! Lee nuestra política de privacidad para obtener más información.

Mostrar más

Publicaciones relacionadas

Deja una respuesta

Botón volver arriba