¿Qué es la Arquitectura de microservicios?
Son una forma de desarrollo de software o programación y al mismo tiempo un estilo
de arquitectura donde cada microservicio es propietario de una tarea simple y se
comunica con los clientes o con otros microservicios mediante mecanismos de
comunicación sencillos, como las solicitudes de la API de REST. Este enfoque de
desarrollo de software valora el nivel de detalle, la sencillez y la capacidad para
compartir un proceso similar en varias aplicaciones. Es un elemento fundamental
de la optimización del desarrollo de aplicaciones hacia un modelo nativo de la nube.
Las arquitecturas de microservicios hacen que las aplicaciones sean más fáciles de
escalar y más rápidas de desarrollar. Esto permite la innovación y acelera el tiempo
de comercialización de las nuevas características.
Las características de los microservicios son:
❖ La aplicación está compuesta por servicios débilmente acoplados. Cada
servicio soporta una sola tarea de negocio.
❖ Los microservicios definen las API que exponen su funcionalidad a cualquier
cliente. Los clientes pueden ser incluso otras aplicaciones.
❖ Para comunicarse entre sí, los microservicios de una aplicación utilizan el
modelo de comunicación de solicitud-respuesta. La implantación habitual
utiliza llamadas a la API de REST basadas en el protocolo HTTP.
❖ Cada microservicio se puede desarrollar con un lenguaje de programación y
un marco que mejor se adapte al problema que está diseñado para resolver
el microservicio.
❖ Descentralizado: Cada microservicio puede utilizar su propia base de datos.
❖ Cada microservicio se despliega de forma independiente, sin que esto afecte
a los otros microservicios de la aplicación.
, ❖ Los microservicios son sencillos, enfocados e independientes. De este modo,
la aplicación es más fácil de mantener.
❖ La funcionalidad de la aplicación se distribuye entre varios servicios. Si un
microservicio falla, la funcionalidad que ofrecen los otros microservicios
seguirá estando disponible.
❖ Cada microservicio se puede ampliar independientemente de los demás
servicios.
Campo de aplicación en la actualidad
• La tecnología de contenedores: responde a las capacidades de
orquestación (componentes de un software que deben relacionarse entre sí
para actuar como un todo robusto que realice la funciones para las que ha
sido creado). De hecho, los contenedores están diseñados para ejecutar
cualquier funcionalidad en base a pequeñas piezas. Con la “contenerización”
unida a los microservicios, se hace más fácil administrar y actualizar cada
uno de los servicios que se integran en una aplicación software.
Docker ha sido la tecnología de contenedores más empleada durante los
últimos tiempos, ya que permitía aislar los contenedores por procesos y
servicios de forma efectiva.
• tecnologías de código abierto (Kubernetes): son más eficientes en
escenarios más complejos. Kubernetes actualiza de forma constante los
contenedores e implementa el equilibrio de carga. Está ganando terreno