Primeiros passos com microsserviços

Os microsserviços são uma abordagem de arquitetura para desenvolver software moderno. Cada função, ou serviço principal representa um contexto comercial relacionado, criado e implementado de forma independente. Os microsserviços fornecem agilidade na criação e manutenção de aplicações e representam um contraste com a abordagem monolítica seguida no desenvolvimento de software legado. Hoje, a modernização de aplicações é sinônimo de microsserviços.

Ao aprender mais sobre microsserviços, você verá o contraste com arquiteturas monolíticas, considerações para adotar a arquitetura de microsserviços, mecanismos de comunicação, metodologia de implementação de 12 fatores, implementação em Kubernetes, persistência de dados, malha de serviço e práticas recomendadas para projetar microsserviços.

Benefícios dos microsserviços

  • Implementação simplificada

    Acelere o tempo de lançamento de novos recursos no mercado, permitindo a integração e a implementação contínuas com suporte a modelos de implementação blue-green para serviços.

  • Escale o desempenho sob demanda

    Escale contêineres de serviços ou plataformas de dados independentemente por serviço para atender à demanda desse recurso.

  • Alta disponibilidade por design

    Substitua ou desative os serviços independentes sem afetar a aplicação toda. As falhas de serviço individuais são tratadas com elegância pela degradação do serviço, em vez de travar a aplicação

Aprenda a criar um microsserviço na Oracle Cloud Infrastructure (OCI).

Vantagem do Oracle Converged Database

Um aspecto importante para microsserviços orientados por dados é a implementação da plataforma de gerenciamento de dados para implementar uma variedade de tipos de dados, oferecer suporte a vários bancos de dados em um contêiner e oferecer recursos de gerenciamento autônomo. O Oracle Autonomous Database na OCI oferece facilidade de implementação para a criação de microsserviços inteligentes orientados por dados.

Obtenha consistência de transações em aplicações baseadas em microsserviços

O Oracle Transaction Manager for Microservices (MicroTx) simplifica o desenvolvimento e as operações de aplicações, permitindo transações distribuídas para garantir a consistência entre microsserviços poliglotas implantados no Kubernetes e/ou em outros ambientes.

Plataforma aberta e completa para microsserviços

Para modernização de aplicativos, várias tecnologias precisam ser integradas para construir a base correta de microsserviços de várias nuvens. O Oracle LiveLabs dá a você acesso às ferramentas e tecnologias da Oracle para realizar uma ampla variedade de laboratórios e workshops. Esses workshops mostram como usar tecnologias abertas junto com a Oracle para construir arquiteturas mais simples que fornecem flexibilidade de implementação. Crie microsserviço no Oracle LiveLabs com componentes em nuvem e híbridos disponíveis na OCI, incluindo Autonomous Database, Helidon, Micronaut, MicroTx, WebLogic Server, Java, Docker, Kubernetes e Istio Service Mesh. Para começar sua jornada de microsserviços, existem vários laboratórios para ajudá-lo a modernizar seus aplicativos empresariais monolíticos ou simplificá-los se você já tiver iniciado esse caminho.

Tabela de plataformas abertas

Microsserviços orientados por dados com o Oracle Converged Database

Este Oracle LiveLab desenha um aplicativo móvel de distribuição de alimentos chamado GrabDish para destacar a simplicidade da arquitetura de dados, com uma pilha moderna de desenvolvimento. Ele contrasta a complexidade de bancos de dados de finalidades especiais tradicionalmente empregados como arquiteturas Lambda e Kappa no setor (com sistemas separados para sistemas relacionais, textuais, espaciais, gráficos e mensagens) com A simplicidade de criar microsserviço orientados por dados com o Oracle Converged Database. O laboratório é destinado a desenvolvedores e arquitetos para projetar novos microsserviços Isso também ajuda as DBAs A entenderem a atribuição do Oracle Database nos projetos de modernização de aplicativos. Autonomous Database, clusters Kubernetes com contêineres docker, Oracle Advanced Queuing e Transactional Event Queues e Helidon são usados para mostrar microsserviços Java, Node.js e Python que trabalham com dados relacionais, JSON, espaciais e gráficos, com um rastreamento e monitoramento configurados com Kiali, Jaeger, Prometheus e Grafana. Os padrões de microsserviços, como fornecimento de eventos, CQRS e SAGAs, são ilustrados.

Microsserviços orientados por dados com o Oracle Converged Database

Consistência de transação em microsserviços com o Oracle Transaction Manager for Microservices

À medida que a arquitetura de microsserviços está ganhando popularidade, os desenvolvedores geralmente se deparam com problemas associados à consistência dos dados, pois cada microsserviço geralmente tem seu próprio banco de dados ou outro recurso. O MicroTx fornece um microsserviço de coordenação de transações para manter a consistência no estado de vários bancos de dados que participam de uma transação. O MicroTx suporta vários protocolos de transação distribuídos, como XA, LRAs (long-running actions) e TCC (try-confirm/cancel). Ele suporta transações distribuídas em microsserviços poliglotas, como Java, node.js, C/C++ e PL/SQL. Neste LiveLab, os desenvolvedores podem aprender a obter consistência de dados em vários microsserviços usados em um aplicativo de amostra.

Consistência de transação em microsserviços com o Oracle Transaction Manager for Microservices

Blocos de construção

Plataforma completa e aberta para microsserviços

Para modernização de aplicações, várias tecnologias precisam ser integradas para construir a base correta de microsserviços multicloud. O Oracle LiveLabs dá a você acesso às ferramentas e tecnologias da Oracle para realizar uma ampla variedade de laboratórios e workshops. Esses workshops mostram como usar tecnologias abertas junto com a Oracle para construir arquiteturas mais simples que fornecem flexibilidade de implementação. Crie microsserviços no Oracle LiveLabs com componentes de nuvem e híbridos disponíveis na OCI, Autonomous Database, Helidon, Micronaut, Weblogic, Java, Docker, Kubernetes e Istio Service Mesh, em uma pilha de plataforma de microsserviços completa. Existem vários laboratórios para ajudá-lo a modernizar as aplicações empresariais monolíticos para você começar sua jornada com os microsserviços ou para simplificá-la se você já estiver seguindo esse caminho.

Termos de microsserviços

Sem Servidor - Nenhum estado persistente necessário em um armazenamento de dados; as tarefas são executadas em tempo real—disparam e esquecem o estilo. Por exemplo, funções lambda e gateways de API.

Acionados por API - Os microsserviços se comunicam entre si usando APIs REST, por exemplo, um gateway de API. Cada microsserviço tem uma definição de API.

Microsserviços assíncronos - O acoplamento solto é obtido com mensagens assíncronas por meio das filas ou do software streaming; por exemplo, com o Oracle Advanced Queuing ou Apache Kafka.

Ações de workflow - Os fluxos de negócios (com humanos no loop) também representam transações de longa execução, por exemplo, com frameworks BPMN, como Camunda, Zeebe ou fluxo temporal.io.

Fluxo de trabalho automatizado - Tarefas que são executadas como um workflow simples, de maneira automatizada (sem humano no loop). Por exemplo, com o Apache Airflow e o Argo (CNCF).

Direcionado a dados - A arquitetura de dados impulsiona o consumo de dados no aplicativo para operações e tomadas de decisões, geralmente com um armazenamento persistente, por exemplo, Oracle Converged Database ou com bancos de dados de finalidades especiais.

Nativo da nuvem - Um aplicativo desenvolvido inteiramente para a nuvem, por exemplo, com componentes CNCF e serviços OCI.

Microsserviços de nuvem híbrida - Microsserviços que funcionam em todo o data center do cliente (nuvem privada) e uma nuvem pública, por exemplo, com Kubernetes/malha de serviço para orquestrar em uma nuvem privada e nuvem pública (casos de uso de bursting na nuvem).

Microsserviços multinuvem - Microsserviços que funcionam em pelo menos duas nuvens públicas e uma nuvem privada, por exemplo, com malha de Kubernetes/serviços para orquestrar em várias nuvens (para fornecer mitigação de risco e evitar um bloqueio a uma nuvem pública).

Desafios de microsserviços

Embora Microsserviços sejam sinônimos de modernização de aplicativos e seja o caminho a seguir para todo o desenvolvimento de aplicativos, há algumas considerações que tornam a jornada para arquiteturas de microsserviço mais eficiente.

  • Escolhendo o número de microsserviços independentes para um aplicativo. Uma implantação de microsserviços se torna complexa quando milhares de microsserviços precisam ser implantados e espera-se que funcionem em harmonia quando o contexto de cada serviço é muito pequeno. A experiência indica que quando 20 a 50 microsserviços são identificados com os contextos delimitados certos, a transação para microsserviços entregou melhor as vantagens prometidas.
  • A implementação de transações entre os limites de microsserviços tem sido um desafio com as transações XA (síncronas e limitação de desempenho em alguns casos). Os SAGAs síncronos mostraram um desempenho mais alto e robustos, que estão sendo ainda mais simplificados com suporte no Oracle Database convergente.
  • A necessidade de acoplamento fraco entre microsserviços representa um desafio com o uso de serviços API REST síncronos, e os sistemas de mensagens/filas tornam essa comunicação assíncrona e mais escalonável na implementação de aplicações em um ambiente de nuvem híbrida.
  • O rastreamento e a observabilidade não só são importantes na faixa do aplicativo ou da camada intermediária, como também na faixa de dados, para uma implantação e suporte holísticos de ponta-a-ponta de arquiteturas de microsserviço. Ferramentas e integrações analíticas estão apenas começando a abordar esse aspecto importante para implementações híbridas.

Casos de sucesso de clientes de microsserviços