Introducción a los microservicios

Los microservicios son un enfoque arquitectónico para desarrollar un software moderno. Cada función principal o servicio representa un contexto de negocio relacionado que se ha creado y desplegado de forma independiente. Los microservicios proporcionan agilidad en la creación y el mantenimiento de aplicaciones y representan un contraste con el enfoque monolítico seguido en el desarrollo de software antiguo. En la actualidad, la modernización de aplicaciones es sinónimo de microservicios.

Al obtener más información sobre microservicios, verás el contraste con arquitecturas monolíticas, consideraciones para la adopción de arquitectura de microservicios, mecanismos de comunicación, metodología de despliegue de 12 factores, despliegue en Kubernetes, persistencia de datos, malla de servicio y mejores prácticas para el diseño de microservicios.

Ventajas de los microservicios

  • Despliegue simplificado

    Acelera el tiempo de comercialización de nuevas funciones al permitir una integración continua y un despliegue continuo que admita modelos de despliegue azul/verde para servicios.

  • Ampliación del rendimiento a demanda

    Escala los contenedores de servicios o las plataformas de datos de forma independiente por servicio para satisfacer la demanda de esa función.

  • Alta disponibilidad por diseño

    Reemplaza o retira servicios independientes sin afectar a toda la aplicación, los fallos de servicio individuales se gestionan de forma controlada mediante un servicio degradado, en lugar de bloquear toda la aplicación.

Descubre cómo crear un microservicio en Oracle Cloud Infrastructure (OCI).

ventaja de Oracle Converged Database

Un aspecto importante para los microservicios basados en datos es el despliegue de la plataforma de gestión de datos para desplegar una variedad de tipos de datos, soportar varias bases de datos en un contenedor y ofrecer funciones de gestión autónomas. Oracle Autonomous Database en OCI facilita el despliegue para crear microservicios inteligentes basados en datos.

Consiga la coherencia de las transacciones entre las aplicaciones basadas en microservicios

Oracle Transaction Manager for Microservices (MicroTx) simplifica el desarrollo y las operaciones de aplicaciones al permitir transacciones distribuidas para garantizar la coherencia entre microservicios políglotas desplegados en Kubernetes y/u otros entornos.

Plataforma completa y abierta para microservicios

Para modernizar aplicaciones, se deben integrar varias tecnologías para crear la fundación adecuada de microservicios multinube. Oracle LiveLabs le proporciona acceso a las herramientas y tecnologías de Oracle para ejecutar una amplia variedad de prácticas y talleres. Estos talleres muestran cómo utilizar tecnologías abiertas junto con Oracle para crear arquitecturas más sencillas que proporcionen flexibilidad en el despliegue. Crear microservicios en Oracle LiveLabs con componentes híbridos y de nube disponibles en OCI, incluidos Autonomous Database, Helidon, Micronaut, MicroTx, WebLogic Server, Java, Docker, Kubernetes e Istio Service Mesh. Para comenzar su recorrido por los microservicios, hay varios laboratorios que lo ayudarán a modernizar sus aplicaciones empresariales monolíticas o a simplificarlas si ya ha iniciado este camino.

Tabla de plataformas abiertas

Microservicios basados en datos con Oracle Converged Database

Esta instancia de Oracle LiveLab crea una aplicación móvil de entrega del alimento denominada GrabDish para destacar la simplicidad de la arquitectura del datos, con un paquete del desarrollo moderno. Compara la complejidad de los sistemas de bases de datos especial empleadas tradicionalmente como arquitecturas Lambda y Kappa en la industria (es posible que sistemas independientes para sistemas relacionales, de texto, espaciales, de gráficos y de mensajería) y la sencillez de crear microservitos basados en datos con Oracle Converged Database. El laboratorio está diseñado para desarrolladores y arquitectos para diseñar nuevos microservicios También ayuda a los administradores de bases de datos a comprender el rol de Oracle Database en las tareas de modernización de aplicaciones. Autonomous Database, Kubernetes clusters with docker containers, Oracle Advanced Queuing and Transactional Event Queues, and Helidon are used to show Java, Node.js, and Python microservices working with relational, JSON, spatial, and graph data, with a tracing and monitoring set up with Kiali, Jaeger, Prometheus, and Grafana. Se ilustran los patrones de microservicios, como el abastecimiento de eventos, CQRS y SAGA.

Microservicios basados en datos con Oracle Converged Database

Consistencia de las transacciones en los microservicios con Oracle Transaction Manager for Microservices

A medida que la arquitectura de microservicios está ganando popularidad, los desarrolladores a menudo se enfrentan a problemas asociados a la consistencia de los datos, ya que cada microservicio suele tener su propia base de datos u otro recurso. MicroTx proporciona un microservicio de coordinación de transacciones para mantener la coherencia en el estado de varias bases de datos que participan en una transacción. MicroTx admite varios protocolos de transacciones distribuidas, como XA, acciones de larga ejecución (LRA) y try-confirm/cancel (TCC). Soporta transacciones distribuidas en microservicios políglotas, como Java, node.js, C/C++ y PL/SQL. En esta LiveLab, los desarrolladores pueden aprender a lograr la consistencia de los datos en varios microservicios utilizados en una aplicación de ejemplo.

Consistencia de las transacciones en los microservicios con Oracle Transaction Manager for Microservices

Bloques de creación

Plataforma abierta y completa para microservicios

Para realizar la modernización de aplicaciones, se deben integrar varias tecnologías para crear la adecuada base de microservicios multinubes. Oracle LiveLabs le proporciona acceso a las herramientas y tecnologías de Oracle para ejecutar una amplia variedad de prácticas y talleres. Estos talleres muestran cómo utilizar tecnologías abiertas junto con Oracle para crear arquitecturas más sencillas que proporcionen flexibilidad en el despliegue. Crea microservicios en Oracle LiveLabs con componentes híbridos y en la nube disponibles en OCI, Autonomous Database, Helidon, Micronaut, Weblogic, Java, Docker, Kubernetes e Istio Service Mesh, en una pila de plataforma de microservicios molesta. Hay varios laboratorios para ayudarte a modernizar las aplicaciones empresariales monolíticas para comenzar tu recorrido por los microservicios, o bien simplificarlo si ya estás siguiendo este camino.

Términos de microservicios

Sin servidor: no es necesario ningún estado persistente en un almacén de datos, las tareas se ejecutan sobre la marcha, se disparan y se olvidan de estilo. Por ejemplo, funciones lambda y gateways de API.

Controlado por API: los microservicios se comunican entre sí mediante las API de REST, por ejemplo, un gateway de API. Cada microservicio tiene una definición de API.

Microservicios asíncronos: el acoplamiento se logra mediante mensajes asíncronos a través de colas o software Apache Kafka o Oracle Advanced Queuing.

Acciones de flujo de trabajo: los flujos de negocio (con humanos en el bucle) también representan transacciones de larga ejecución, por ejemplo, con marcos BPMN, como el flujo Camunda, Zeebe o temporal.io.

Flujo de trabajo automatizada: tareas que se ejecutan como un flujo de trabajo simple de manera automatizada (sin ningún humano en el bucle), por ejemplo con Apache Airflow y Argo (CNCF).

Impulsada por los Datos: la arquitectura de los datos impulsa al consumo de los datos en la aplicación para los procesos y para la adopción de decisiones, generalmente con un almacén persistente, por ejemplo, la Base de Datos Convergente de Oracle o con bases de Datos de propósito especial.

nativo en la nube: aplicación desarrollada completamente para la nube, por ejemplo, con componentes CNCF y servicios OCI.

Microservicios de nube híbrida: microservicios que funcionan en el centro de datos del cliente (nube privada) y en una nube pública, por ejemplo, con malla de servicios/Kubernetes para orquestar en una nube privada y pública (casos de uso de repartición de la nube).

microservicios en la nube múltiples: microservicios que trabajan en al menos dos nubes públicas y una nube privada, por ejemplo, con Kubernetes/malla de servicio para organizar varias nubes (para mitigar los peligros y prevenir la dependencia de una nube pública).

Desafíos en microservicios

Si bien los microservicio son sinónimos de la modernización de aplicaciones, y es el camino a seguir para el desarrollo de todas estas aplicaciones, hay algunas consideraciones que hacen que el recorrido hacia las arquitecturas de microservicios Sea más eficiente.

  • Selección del número de microservicios independientes para una aplicación. Un despliegue de microservicios se vuelve complejo cuando miles de microservicios tienen que desplegarse y se espera que funcionen en armonía cuando el contexto de cada servicio es muy pequeño. La experiencia indica que cuando se identifican entre 20 y 50 microservicios con los contextos delimitados adecuados, la transicion a estos microservicios ha ayudado a mejorar las ventajas prometidas.
  • La implementación de transacciones a través de los límites de los microservicios ha sido un desafío con las transacciones XA (sincrónicas y limitantes de rendimiento en algunos casos). Los SAGA síncronos han demostrado ser robustos y de mayor rendimiento, que se están simplificando aún más con soporte en la Oracle Database convergente.
  • La necesidad de un acoplamiento flexible entre microservicios plantea un desafío al utilizar servicios de API de REST síncronos, y los sistemas de mensajería/colocación hacen que esta comunicación sea asíncrona y más escalable al desplegar aplicaciones en un entorno de nube híbrida.
  • El rastreo y observabilidad no solo es importante en el Nivel de Aplicación o en el Nivel Medio, sino también en el Nivel de Datos, para un despliegue integral y soporte de arquitecturas de microservicio. Las herramientas y las integraciones analíticas están empezando a abordar este importante aspecto de los despliegues híbridos.

Casos de éxito de clientes de microservicio