MicroServicios Definición
Los Microservicios es una forma de diseñar aplicaciones de tal forma que puedan ser utilizadas y desplegadas de forma independiente. Generalmente implementan una funcionalidad atómica del negocio, facilitan el despliegue automatizado, cuentan con inteligencia de endpoints y tiene un control descentralizado de lenguajes de programación y motores de base de datos.
Una arquitectura orientada a microservicios, consiste en un sistema distribuido que alberga pequeñas aplicaciones independientes, que se ejecutan y despliegan de forma individual, según las necesidades y que, a su vez, se comunican con la parte cliente o incluso entre ellas a través de sus API.
Este tipo de arquitecturas surge como dilema y trae una serie de ventajas respecto a las arquitecturas monolíticas. La principal es la posibilidad de crear sistemas basados en aplicaciones independientes de pocos recursos, que se despliegan de forma autónoma, que a su vez se pueden combinar, reutilizar o eliminar, sin que esa modificación afecte al resto de los componentes o servicios y sin que se produzca ninguna interrupción. Además la configuración individual nos permite tal flexibilidad, que incluso pueden estar escritos con diferentes lenguajes de programación.
No obstante, la contenerización es un enfoque de desarrollo de software en el que una aplicación o servicio, sus dependencias y su configuración se empaquetan juntos como una imagen de contenedor (o simplemente imagen para simplificar, cuando no haya ambigüedad). Una aplicación basada en contenedores se puede probar como una unidad y desplegar como una instancia de la imagen, en el sistema operativo que funciona como host.
Los contenedores también aíslan las aplicaciones de otras instaladas en un sistema operativo (SO) compartido. Las aplicaciones contenerizadas se ejecutan en un host de contenedores que, a su vez, se ejecuta sobre el sistema operativo (Linux o Windows). Por eso, los contenedores son significativamente más livianos que las imágenes de máquinas virtuales (VM).
En resumen, los contenedores ofrecen los beneficios de aislamiento, portabilidad, agilidad, escalabilidad y control, a lo largo de todo el ciclo de vida de las aplicaciones.
No hay comentarios:
Publicar un comentario