Microservicios
Microservicios
Microservicios
RESUMEN EJECUTIVO
La arquitectura de microservicios es un nuevo estilo arquitectónico para crear servicios de
VENTAJAS
bajo acoplamiento pero autónomos. Las nuevas tendencias en tecnología, como DevOps, la
• Desarrollo y mantenimiento plataforma como servicio (PaaS), los contenedores, así como los métodos de integración
más sencillos y distribución continuas (CI/CD), permiten a las organizaciones crear y gestionar estos
sistemas modulares a una escala sin precedentes que supera los enfoques anteriores, como
• Implementación más rápida
la arquitectura orientada al servicio (SOA). Sin embargo, las organizaciones que refactorizan
e independiente las aplicaciones monolíticas en microservicios experimentan una gran diversidad de grados de
• Escalabilidad indepen-diente éxito. La clave para utilizar los microservicios con eficacia es disponer de unos conocimientos
de los componentes de
amplios acerca de cómo y por qué las organizaciones deben usar los microservicios para la
aplicación
creación de aplicaciones.
es.redhat.com
¿ESTÁ PREPARADO SOLUCIÓN INNOVADORA PARA UNA TI FLEXIBLE Y RECEPTIVA
PARA UTILIZAR LOS
MICROSERVICIOS? IMPLEMENTACIÓN MÁS RÁPIDA
Los microservicios tienen un alcance menor, que viene determinado por un enfoque centrado en
Pregúntese si su organización
los límites de dominio y un modelo de dominio coherente; además requieren menos código. Las
ha hecho lo siguiente:
estrategias de implementación, que incluyen archivos centrados, autónomos y CI/CD (a menudo
empaquetados como contenedores de Linux) permiten implementaciones más rápidas y fiables.
• ¿Ha creado una aplicación Como resultado, el ciclo de vida de desarrollo de software se acelera en términos generales.
monolítica bien estructurada? Las funciones y correcciones de errores nuevas, así como los parches de seguridad totalmente
probados, también se publican con mayor rapidez.
• ¿Ha determinado qué
necesidades cubrirán los CONTROL MODULAR
microservicios? Con los microservicios, se puede escalar cada servicio de forma independiente para adaptarse
a los aumentos temporales o estacionales de tráfico, realizar procesamiento por lotes y dar
• ¿Ha realineado los equipos en respuesta a otras necesidades del negocio. Un aislamiento de fallos mejorado reduce los
torno a los microservicios? problemas de servicio, tales como las fugas de memoria o las conexiones de base de datos
abiertas, para que solo afecten al servicio específico. La escalabilidad de los microservicios
• ¿Ha adoptado mejores
complementa la flexibilidad de los servicios de nube, lo que le permite mejorar el servicio, sin
prácticas en DevOps y CI/CD? interrupción, y a la vez manejar más clientes de forma simultánea.
• ¿Ha identificado límites
MÁS OPCIONES
de negocio dentro de la
aplicación? Los métodos organizativos y las soluciones de tecnología de código abierto están liderando el
mercado de los microservicios. En consecuencia, los microservicios reducen la dependencia de
• ¿Ha implementado procesos un proveedor y eliminan el compromiso con la tecnología a largo plazo, de modo que puede elegir
y herramientas para la las herramientas que necesita para alcanzar los objetivos de negocio y de la TI.
gestión y orquestación de
los microservicios?
CREACIÓN DE UNA BASE SÓLIDA PARA LOS MICROSERVICIOS
Para lograr el éxito con los microservicios, las organizaciones deben crear primero una base
sólida para su arquitectura monolítica. La modularidad, los límites de dominio y la teoría de
sistemas distribuidos fundamentales se deben considerar y establecer para aprovechar todas las
ventajas de los microservicios.
Además, los microservicios ofrecen mayores ventajas con los sistemas más complejos. Aunque
cada servicio es totalmente independiente, se deben cumplir ciertas necesidades operativas que
incluyen capacidades tales como:
• DevOps
• PaaS
• Contenedores o VM inmutables
• Detección, registro y replicación de servicios
• Alertas y supervisión proactivas
Dado que el cumplimiento de dichos requisitos puede suponer una inversión considerable sin un
retorno inmediato, quizás el uso de los microservicios no sea rentable para todos los equipos
o proyectos. La evaluación de un enfoque centrado en una arquitectura monolítica garantiza
que la creación de aplicaciones siga principios de diseño sólidos y que los límites de dominio
estén correctamente definidos, lo que facilita una transición gradual hacia una arquitectura
de microservicios si se necesita para la escalabilidad. Por ejemplo, incluso una aplicación de
compras básica debe contener lo siguiente:
• Separación de responsabilidades.
• Gran cohesión y acoplamiento bajo mediante interfaces para programas de aplicación (API)
bien definidas.
• Interfaces, API e implementaciones separadas, de acuerdo con la Ley de Demeter o principio
de menor conocimiento.
• Diseño basado en dominios que agrupa los objetos relacionados.
tecnología. Los equipos 2. Encontrarel componente que sufre la mayoría de los cambios solicitados (como las
flexibles con una actualizaciones de reglas de negocio asociadas a los cálculos de precios o cambios
regulatorios) o al que se aplican parches a menudo para solucionar vulnerabilidades de
estructura organizativa
seguridad.
horizontal, habilidades
3. Despuésde definir los microservicios básicos basados en dominios, perfeccionar las api que
interdisciplinares
sirven para que los servicios interactúen. Componer estas api utilizando patrones de diseño
y autonomía son basados en eventos, secciones, cadenas, proxies y agregadores, entre otros.
esenciales.
EQUIPOS CUALIFICADOS Y ALINEADOS
Las organizaciones logran el éxito con los microservicios debido a su estructura organizativa,
no a su tecnología. Los equipos flexibles con una estructura organizativa horizontal, habilidades
interdisciplinares y autonomía son esenciales.
Establecer una práctica de DevOps antes del paso a los microservicios puede mitigar o prevenir
estos problemas al determinar las estrategias de comunicación por adelantado. Esto permite
evitar la creación de una SOA con fallos en lugar de una arquitectura de microservicios eficaz.
• Herramientas de resistencia y conmutación por error, incluidas las bibliotecas como Hystrix y
Ribbon.
• Herramientas de supervisión del servicio, alertas y eventos, como la pila ELK (ElasticSearch,
LogStash y Kibana).
GESTIÓN DE DATOS
Otra consideración importante para la transición a los microservicios es la gestión de los
datos. A diferencia de la SOA, los microservicios no comparten los datos. En su lugar, cada
microservicio posee una persistencia políglota y un almacén de datos físicos independientes,
lo que permite ejecutar una amplia variedad de motores de bases de datos dentro de cada
microservicio. Como resultado, los almacenes de datos se pueden elegir en función del
servicio, en lugar de almacenar todos los datos en un sistema de gestión de bases de datos
relacionales (RDBMS) corporativo.
Sin embargo, mantener numerosas copias de una base de datos empresarial puede aumentar
la complejidad y los costos de licencias. Además, puede que sea necesario alinear los
almacenes de datos para mantener la coherencia. Las herramientas genéricas de extracción,
transformación y carga (ETL) o de virtualización de datos pueden contribuir a la normalización
de datos. Event Sourcing es un conocido patrón de diseño que ayuda a alinear los almacenes
de datos para adaptarse a los cambios retroactivos.
CONCLUSIÓN
La arquitectura de microservicios puede ofrecer muchas ventajas a las organizaciones:
desde una escalabilidad independiente de diversos componentes de aplicaciones, hasta
un desarrollo y un mantenimiento del software más rápidos y sencillos. No obstante, los
microservicios no siempre benefician a todos los equipos o proyectos, y pueden suponer una
inversión considerable sin un retorno inmediato. La transición hacia los microservicios debe
ser un proceso gradual, y la refactorización de ciertas partes de las aplicaciones existentes
(sin llegar a una transición total) también puede reportar beneficios. Para lograr el éxito con
los microservicios, las organizaciones deben crear primero una aplicación bien diseñada
de acuerdo con los estándares de la plataforma existente y, a continuación, refactorizar la
aplicación en un conjunto de microservicios en función de las necesidades de su negocio.
Con las personas, las herramientas y los procesos adecuados, los microservicios pueden
acelerar el desarrollo y la implementación, facilitar el mantenimiento, mejorar la escalabilidad
y ofrecer mayor libertad frente al compromiso con la tecnología a largo plazo.
es.redhat.com Copyright © 2016 Red Hat, Inc. Red Hat, Red Hat Enterprise Linux, el logotipo Shadowman y JBoss son marcas comerciales de
INC0336100_0216 Red Hat, Inc. registradas en Estados Unidos y en otros países. Linux® es la marca comercial registrada de Linus Torvalds en los
Estados Unidos y en otros países.