La arquitectura de microservicios (normalmente abreviada como "microservicios") es un estilo de arquitectura para desarrollar aplicaciones. Gracias a los microservicios, una aplicación grande puede separarse en partes independientes más pequeñas, cada una con su propio dominio de responsabilidad. Para servir una única solicitud de usuario, una aplicación basada en microservicios puede llamar a muchos microservicios internos con los que preparar su respuesta.
Los contenedores son un ejemplo notable de arquitectura de microservicios, ya que te permiten concentrarte en el desarrollo de los servicios sin tener que preocuparte por las dependencias. La computación sin servidor es otra estrategia habitual que permite a los equipos ejecutar microservicios sin gestionar servidores ni infraestructura, y escalar automáticamente las funciones en respuesta a la demanda.
Descubre cómo Google Kubernetes Engine (GKE) y Cloud Run pueden ayudarte a crear aplicaciones basadas en microservicios mediante contenedores.
¿Empezamos? Los nuevos clientes reciben 300 USD en crédito gratis para invertirlos en Google Cloud.
Una arquitectura de microservicios es un tipo de arquitectura de aplicaciones en la que se desarrolla la aplicación como un conjunto de servicios. Este modelo proporciona el framework para desarrollar, desplegar y mantener diagramas y servicios de arquitectura de microservicios de forma independiente.
Dentro de una arquitectura de microservicios, cada microservicio es un servicio único creado para desempeñar una función de la aplicación y gestionar tareas independientes. Cada microservicio se comunica con los otros servicios a través interfaces sencillas para resolver problemas empresariales.
Las aplicaciones monolíticas tradicionales se crean como una sola unidad unificada. Todos los componentes están estrechamente relacionados y comparten recursos y datos. Esto puede dificultar la ampliación, el despliegue y el mantenimiento de la aplicación, sobre todo a medida que aumenta su complejidad. Por el contrario, la arquitectura de microservicios descompone una aplicación en un conjunto de servicios pequeños e independientes. Cada microservicio es independiente, con su propio código, datos y dependencias. Este enfoque ofrece varias ventajas potenciales:
Para las aplicaciones que aún no son lo suficientemente grandes o complejas como para justificar una arquitectura de microservicios totalmente distribuida, el "monolito modular" es una opción potente. Este enfoque mantiene una única unidad de despliegue de la aplicación (un monolito), pero separa estrictamente el código base de la aplicación en módulos internos muy cohesivos y con bajo acoplamiento en función del dominio empresarial. Esto ofrece las ventajas organizativas de los microservicios (límites claros, desarrollo independiente) sin la sobrecarga total de gestionar un sistema distribuido.
Muchas empresas de distintos sectores han adoptado la arquitectura de microservicios para abordar retos empresariales específicos y fomentar la innovación. Aquí tienes algunos ejemplos:
Normalmente, los microservicios se usan para acelerar el desarrollo de aplicaciones. Las arquitecturas de microservicios se basan en Java, sobre todo las de Spring Boot. Es habitual comparar las arquitecturas de microservicios con las orientadas a servicios. Ambas tienen el mismo objetivo, que consiste en dividir las aplicaciones monolíticas en componentes más pequeños, pero utilizan estrategias distintas. Estos son algunos ejemplos de arquitecturas de microservicios:
Migración de sitios web
Es posible migrar un sitio web complejo que esté alojado en una plataforma monolítica a una plataforma de microservicios basada en la nube y en contenedores.
Contenido multimedia
Gracias a la arquitectura de microservicios, se pueden almacenar recursos de vídeo e imágenes en sistemas de almacenamiento de objetos escalables y servirlos directamente en aplicaciones web o móviles.
Transacciones y facturas
El procesamiento de pagos y la gestión de pedidos pueden separarse como unidades de servicios independientes. De este modo, los pagos se seguirán aceptando aunque haya problemas con la facturación.
Procesamiento de datos
Adoptar una plataforma de microservicios puede ampliar la compatibilidad con la nube de los servicios de procesamiento de datos modulares ya disponibles.
Para gestionar la complejidad y optimizar el rendimiento de los sistemas distribuidos, los arquitectos de hoy en día se basan en varios patrones de diseño básicos.
Service Mesh
Arquitectura basada en eventos (EDA)
Empieza a crear en Google Cloud con 300 USD en crédito y más de 20 productos sin coste.