Está en la página 1de 5

Microservicios

La arquitectura de microservicios es un enfoque en el que una única aplicación


está formada por muchos servicios más pequeños, desplegables de forma
independiente y de acoplamiento ligero.

¿Qué son los microservicios?


Los microservicios (o la arquitectura de microservicios) son un enfoque de
arquitectura nativa en cloud en el que una única aplicación está formada por
muchos componentes o servicios más pequeños, desplegables de forma
independiente y de acoplamiento ligero. Estos servicios normalmente

• tienen su propia pila de tecnología, que incluye la base de datos y el


modelo de gestión de datos;
• se comunican entre si a través de una combinación de API REST,
transmisión de sucesos e intermediarios de mensajes, y
• se organizan por capacidad de negocio, donde la línea que separa los
servicios a menudo se denomina un contexto limitado.

Aunque gran parte de la discusión sobre los microservicios ha girado en torno a


las definiciones y las características arquitectónicas, su valor se entiende mejor a
través de unos beneficios empresariales y organizacionales bastante simples:

• El código se puede actualizar más fácilmente: se pueden añadir nuevas


características o funciones sin intervenir en toda la aplicación
• Los equipos pueden utilizar diferentes pilas y diferentes lenguajes de
programación para diferentes componentes.
• Los componentes se pueden escalar independientemente unos de otros, lo
que reduce el desperdicio y los costes asociados a tener que escalar
aplicaciones enteras porque una única característica esté soportando
demasiada carga.

Los microservicios también se pueden entender por lo que no son. Las dos
comparaciones que se realizan más a menudo con la arquitectura de
microservicios son la arquitectura monolítica y la arquitectura orientada a servicios
(SOA).

La diferencia entre los microservicios y la arquitectura monolítica es que los


microservicios forman una única aplicación a partir de muchos servicios más
pequeños y de acoplamiento ligero, a diferencia del enfoque monolítico de una
aplicación grande y de acoplamiento completo.
Las diferencias entre los microservicios y SOA pueden ser un poco menos claras.
Aunque se pueden establecer diferencias técnicas entre los microservicios y SOA,
especialmente en torno al rol del bus de servicio empresarial (ESB), es más fácil
considerar la diferencia de ámbito. SOA fue una iniciativa de toda la empresa para
estandarizar la forma en la que todos los servicios web de
una organización conversan y se integran entre sí, mientras que la arquitectura de
microservicios es específica de la aplicación.

Cómo benefician los microservicios a la organización


Es probable que los microservicios sean al menos tan conocidos entre los
ejecutivos y los líderes del proyecto como entre los desarrolladores. Esta es una
de las características más inusuales de los microservicios, porque el entusiasmo
por la arquitectura se reserva normalmente para los equipos de desarrollo de
software. La razón es que los microservicios reflejan mejor la forma en que
muchos líderes empresariales desean estructurar y ejecutar sus equipos y
procesos de desarrollo.

Desplegables de forma independiente

Tal vez la característica más importante de los microservicios es que como los
servicios son más pequeños e desplegables de manera independiente, ya no
requieren una Ley del Congreso para cambiar una línea de código o añadir una
nueva característica en una aplicación.

Los microservicios prometen a las organizaciones un antídoto contra la frustración


asociada con realizar pequeños cambios que requieren grandes cantidades de
tiempo. No se necesita un doctorado en informática para ver o entender el valor de
un enfoque que aumenta la velocidad y la agilidad.

En los patrones de arquitectura tradicionales de n niveles, una aplicación


normalmente comparte una pila común, con una gran base de datos relacional que
da soporte a toda la aplicación. Este enfoque tiene varios inconvenientes obvios:
el más importante es que cada componente de una aplicación debe compartir una
pila común, un modelo de datos y una base de datos, aunque haya una
herramienta mejor para el trabajo para determinados elementos. Esto perjudica a
la arquitectura y es frustrante para los desarrolladores, que son conscientes en
todo momento de que hay una forma mejor y más eficaz crear estos componentes.

Por el contrario, en un modelo de microservicios, los componentes se despliegan


de forma independiente y se comunican a través de una combinación de REST,
transmisión de sucesos e intermediarios de mensajes, lo que permite optimizar la
pila de cada servicio individual en ese servicio. La tecnología cambia todo el
tiempo, y es mucho más fácil y menos costoso que una aplicación formada por
múltiples servicios más pequeños evolucione con la tecnología a medida que este
avance.

Los microservicios habilitan y requieren DevOps


La arquitectura de microservicios se describe a menudo como optimizada para
DevOps y la integración continua/entrega continua (CI/CD) y, en el contexto de los
servicios pequeños que se pueden desplegar con frecuencia, es fácil de entender
por qué.
No obstante, otra forma de ver la relación entre los microservicios y DevOps es
que las arquitecturas de microservicios en realidad requieren DevOps para tener
éxito. Mientras que las aplicaciones monolíticas tienen una serie de
inconvenientes que se han descrito anteriormente en este artículo, tienen la
ventaja de no ser un sistema distribuido complejo con múltiples partes móviles y
pilas de tecnología independientes. Por su parte, teniendo en cuenta el gran
aumento de la complejidad, las partes móviles y las dependencias que implican los
microservicios, sería poco prudente adoptar el uso de microservicios sin una
inversión significativa en el despliegue, la supervisión y la automatización del ciclo
de vida.

Tecnologías y herramientas clave


Aunque casi cualquier herramienta o lenguaje moderno puede utilizarse en una
arquitectura de microservicios, hay varias herramientas básicas que se han
convertido en esenciales y que definen los límites de los microservicios:

Contenedores, Docker y Kubernetes

Uno de los elementos clave de un microservicio es que por lo general es bastante


pequeño. (No hay una cantidad arbitraria de código que determine si algo es o no
es un microservicio, pero "micro" está incluido por algo en el nombre).

Cuando Docker dio inicio a la era moderna de los contenedores en 2013, también
introdujo el modelo de cálculo que se asociaría más estrechamente con los
microservicios. Como los contenedores individuales no tienen la sobrecarga de su
propio sistema operativo, son más pequeños y más ligeros que las máquinas
virtuales tradicionales, y pueden activarse y desactivarse más rápidamente, lo que
les convierte en la solución perfecta para los servicios de peso más ligero y
pequeños que se encuentran en las arquitecturas de microservicios.
Con la proliferación de servicios y contenedores, la orquestación y la gestión de
grandes grupos de contenedores se convirtió rápidamente en uno de los retos
clave. Kubernetes, una plataforma de orquestación de contenedores de código
abierto, ha surgido como una de las soluciones de orquestación más populares
porque hace su trabajo muy bien.

Servicios de microservicios y cloud


Los microservicios no son necesariamente relevantes para cloud computing de
manera exclusiva, pero hay varias razones importantes por las que suelen ir
juntos, que van más allá de que los microservicios sean un estilo de arquitectura
reconocido para las nuevas aplicaciones y que el cloud sea un destino de
alojamiento popular para las nuevas aplicaciones.

Entre los principales beneficios de la arquitectura de microservicios se encuentran


las ventajas económicas y de uso asociadas con el despliegue y escalado
individual de componentes. Aunque estos beneficios también están presentes en
cierta medida en la infraestructura local, la combinación de componentes
pequeños y escalables de manera independiente con una infraestructura de pago
por uso según demanda es donde se encuentran la verdadera optimización de
costes.

En segundo lugar, otro de los principales beneficios, y quizás más importante, es


que cada componente individual puede adoptar la pila más adecuada para su
trabajo específico. La proliferación de pilas puede aumentar significativamente la
complejidad y generar una sobrecarga cuando gestiona su propia infraestructura,
pero el consumo de la pila de soporte como servicios en cloud puede minimizar
drásticamente los retos de gestión. Dicho de otra manera, aunque no es imposible
desplegar su propia infraestructura de microservicios, no se recomienda,
especialmente si está empezando.

Microservicios e IBM Cloud


Los microservicios permiten un desarrollo innovador a la velocidad de los negocios
actuales. Descubra cómo aprovechar la escalabilidad y la flexibilidad del cloud
desplegando microservicios independientes en entornos de cloud. Vea cómo
sería modernizar sus aplicaciones con ayuda de IBM.
• Se debe confiar en la iteración automática con ayuda de las herramientas
de desarrollo nativas de IBM Cloud para que sus equipos de desarrollo
puedan dedicarse a tareas más importantes.
• Obtenga más información sobre el entorno Kubernetes gestionado con una
introducción a Red Hat OpenShift on IBM Cloud o IBM Cloud Kubernetes
Service. Asimismo, consultar IBM Cloud Code Engine para obtener más
información sobre la informática sin servidor.
• Los microservicios consisten tanto en la organización y el proceso de
equipo como en la tecnología. Planifique estratégicamente el enfoque de
DevOps con la ayuda de IBM DevOps.

También podría gustarte