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.
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.
Escala los contenedores de servicios o las plataformas de datos de forma independiente por servicio para satisfacer la demanda de esa función.
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).
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.
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.
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.
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.
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.
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.
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).
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.