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 abierta y completa para microservicios

Para la modernización de aplicaciones, se deben integrar varias tecnologías para crear la base 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. Crea microservicios en Oracle LiveLabs con componentes híbridos y en la 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 le ayudarán a modernizar sus aplicaciones empresariales monolíticas o a simplificarlas si ya ha comenzado este camino.

Tabla de plataformas abiertas

Microservicios basados en datos con Oracle Converged Database

Oracle LiveLab crea una aplicación de entrega de alimentos móvil denominada GrabDish para destacar la simplicidad de la arquitectura de datos, con un paquete de desarrollo moderno. Compara la complejidad de las bases de datos de uso especial empleadas tradicionalmente como arquitecturas Lambda y Kappa en la industria (con sistemas independientes para sistemas relacionales, de texto, espaciales, de gráficos y de mensajería) con la simplicidad de crear microservicios basados en datos con Oracle Converged Database. El laboratorio está diseñado para que los desarrolladores y arquitectos diseñen nuevos microservicios. También ayuda a los DBA a comprender el rol de Oracle Database en los proyectos de modernización de aplicaciones. Los clusters de Autonomous Database, Kubernetes con contenedores docker, Oracle Advanced Queuing, Transactional Event Queues y Helidon se utilizan para mostrar microservicios de Java, Node.js y Python que funcionan con datos relacionales, JSON, espaciales y de gráficos, con un rastreo y supervisión configurados con Kiali, Jaeger, Prometheus y Grafana. Se ilustran los patrones de microservicio, 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 suelen tener problemas asociados con 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 soporta 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

Creación de bloques

Plataforma abierta y completa para microservicios

Para la modernización de aplicaciones, se deben integrar varias tecnologías para crear la base 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. 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 microservicio

Sin servidor: no se necesita ningún estado persistente en un almacén de datos, las tareas se ejecutan en el estilo de inicio y olvido. Por ejemplo, funciones lambda y gateways de API.

Basado en API: los microservicios se comunican mediante el uso de API de REST, por ejemplo, un gateway de API. Cada microservicio tiene una definición de API.

Microservicio: el acoplamiento se logra mediante mensajes asíncronos a través de colas o software de transmisión, por ejemplo, con Oracle Advanced Queuing o Apache Kafka.

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

Flujo de trabajo automatizado: tareas que se ejecutan como un flujo de trabajo automatizado de manera sencilla (sin ninguna persona en el bucle), por ejemplo, con Apache Airflow y Argo (CNCF).

Controlada por los datos: la arquitectura de datos impulsa el consumo de datos en la aplicación para las operaciones y la toma de decisiones, generalmente con un almacén persistente, por ejemplo, Oracle Converged Database o con bases de datos de propósito especial.

Nativa en la nube: una aplicación se ha desarrollado completamente para la nube, por ejemplo, con componentes de CNCF y servicios OCI.

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

Varios microservicios en la nube: microservicios que funcionan en al menos dos nubes públicas y una nube privada, por ejemplo, con Kubernetes/malla de servicio para orquestar en varias nubes (para proporcionar mitigación de riesgos y evitar la dependencia de una nube pública).

Retos de los microservicios

Mientras que los microservicios son sinónimos de la modernización de aplicaciones y son el camino a seguir para el desarrollo de todas las aplicaciones, hay algunas consideraciones que hacen que el viaje a 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 hay que desplegar miles de microservicios 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 transición a los microservicios ha mejorado las ventajas prometidas.
  • La implantación de transacciones entre los límites de los microservicios ha supuesto un reto con las transacciones XA (limitación síncrona y de rendimiento en algunos casos). Los SAGA síncronos han demostrado tener un mayor rendimiento y solidez, que se están simplificando aún más con el soporte en la convergencia de Oracle Database.
  • 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 la observabilidad no solo son importantes 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 microservicios. 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

Esta página ha sido traducida por una máquina.

Chatbot de Oracle
Disconnected