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 completa e aberta para microsserviços

Para a modernização da aplicação, várias tecnologias precisam ser integradas para construir a base certa de microsserviços em 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ços no Oracle LiveLabs com componentes de nuvem e híbridos disponíveis na OCI, incluindo Autonomous Database, Helidon, Micronaut, MicroTx, WebLogic Server, Java, Docker, Kubernetes e Istio Service Mesh. Para você começar sua jornada com os 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 cria um aplicativo de entrega de comida móvel chamado GrabDish para destacar a simplicidade da arquitetura de dados com uma pilha de desenvolvimento moderna. Ele contrasta a complexidade dos bancos de dados para fins especiais tradicionalmente empregados como arquiteturas Lambda e Kappa na indústria (com sistemas separados para sistemas relacionais, de texto, espaciais, gráficos e de mensagens) com a simplicidade de criar microsserviços baseados em dados com o Oracle Converged Database. O laboratório é voltado para desenvolvedores e arquitetos para projetar novos microsserviços. Também ajuda os DBAs a entender a função do Oracle Database em projetos de modernização de aplicações. Autonomous Database, clusters de 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 trabalhando com dados relacionais, JSON, espaciais e gráficos, com rastreamento e monitoramento configurado com Kiali, Jaeger, Prometheus e Grafana. Padrões de microsserviços, como fonte de eventos, CQRS e SAGAs, são ilustrados.

Microsserviços orientados por dados com o Oracle Converged Database

Consistência de transações entre microsserviços com o Oracle Transaction Manager for Microservices

À medida que a arquitetura de microsserviços está ganhando popularidade, os desenvolvedores geralmente enfrentam problemas associados à consistência de dados, pois cada microsserviço geralmente tem seu próprio banco de dados ou outro recurso. 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 entre 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ções entre microsserviços com o Oracle Transaction Manager for Microservices

Blocos de criação

Plataforma completa e aberta para microsserviços

Para a modernização da aplicação, várias tecnologias precisam ser integradas para construir a base certa 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

Serverless - Nenhum estado persistente é necessário em um armazenamento de dados, as tarefas são executadas no estilo fly-fire e esqueça. Por exemplo, funções lambda e gateways de API.

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

Microsserviços sincronizados - O acoplamento fraco é obtido com mensagens assíncronas por meio de filas ou software de streaming, por exemplo, com Oracle Advanced Queuing ou Apache Kafka.

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

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

Orientado por dados - A arquitetura de dados direciona o consumo de dados no aplicativo para operações e tomada de decisão, geralmente com um armazenamento persistente, por exemplo, Oracle Converged Database ou com bancos de dados para fins 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ços para orquestrar entre uma nuvem privada e a nuvem pública (casos de uso de bursting na nuvem).

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

Desafios dos microsserviços

Embora os microsserviços sejam sinônimos de modernização de aplicações e sejam o caminho a seguir para todo o desenvolvimento de aplicações, existem algumas considerações que tornam a jornada para as arquiteturas de microsserviços mais eficiente.

  • Escolhendo o número de microsserviços independentes para um aplicativo. Uma implantação de microsserviços torna-se 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 microservices são identificados com os contextos delimitados corretos, a transição para microservices oferece 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 limitadoras de desempenho em alguns casos). Os SAGAs síncronos mostraram um desempenho mais alto e robusto, que estão sendo 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.
  • Rastreamento e observabilidade não são importantes apenas na camada de aplicação ou camada média, mas também na camada de dados, para uma implementação completa de ponta a ponta e suporte de arquiteturas de microsserviços. 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

Esta página foi traduzida automaticamente.

Oracle Chatbot
Disconnected