Arquitetura de microsserviço - Aprenda, crie e implante microsserviços



Este blog explica a arquitetura de microsserviço em detalhes. Ele também inclui os prós e contras e um estudo de caso que explica a arquitetura do UBER.

Arquitetura de microsserviço:

Do meu , você deve ter um conhecimento básico da arquitetura de microsserviços.Mas, sendo um profissional com exigirá mais do que apenas o básico. Neste blog, você vai se aprofundar nos conceitos arquitetônicos e implementá-los usando um estudo de caso do UBER.

Neste blog, você aprenderá sobre o seguinte:





  • Definição de arquitetura de microsserviço
  • Principais conceitos da arquitetura de microsserviço
  • Prós e contras da arquitetura de microsserviços
  • UBER - Estudo de Caso

Você pode consultar o , para compreender os fundamentos e benefícios dos microsserviços.

Só será justo se eu der a definição de microsserviços.



Definição de microsserviços

Como tal, não há uma definição adequada de microsserviços, também conhecida como arquitetura de microsserviços, mas você pode dizer que é uma estrutura que consiste em pequenos serviços implantáveis ​​individualmente que realizam operações diferentes.

Os microsserviços se concentram em um único domínio de negócios que pode ser implementado como serviços implantáveis ​​totalmente independentes e implementá-los em diferentes pilhas de tecnologia.

Diferenças entre arquitetura monolítica e microsserviços - Arquitetura de microsserviços - Edureka



Figura 1: Diferença entre arquitetura monolítica e de microsserviço - Arquitetura de microsserviço

Consulte o diagrama acima para entender a diferença entre a arquitetura monolítica e a de microsserviço.Para uma melhor compreensão das diferenças entre as duas arquiteturas, você pode consultar meu blog anterior

Para que você entenda melhor, deixe-me contar alguns conceitos-chave da arquitetura de microsserviço.

Principais conceitos da arquitetura de microsserviço

Antes de começar a construir seus próprios aplicativos usando microsserviços, você precisa ter clareza sobre o escopo e as funcionalidades de seu aplicativo.

A seguir estão algumas diretrizes a serem seguidas ao discutir microsserviços.

Diretrizes ao projetar microsserviços

  • Como desenvolvedor, ao decidir construir um aplicativo separe os domínios e seja claro com as funcionalidades.
  • Cada microsserviço projetado deve se concentrar apenas em um serviço do aplicativo.
  • Certifique-se de ter projetado o aplicativo de forma que cada serviço possa ser implementado individualmente.
  • Certifique-se de que a comunicação entre microsserviços seja feita por meio de um servidor sem estado.
  • Cada serviço pode ser refatorado em serviços menores, com seus próprios microsserviços.

Agora que você leu as diretrizes básicas ao projetar microsserviços, vamos entender a arquitetura dos microsserviços.

Como funciona a arquitetura de microsserviço?

Uma arquitetura de microsserviço (MSA) típica deve consistir nos seguintes componentes:

  1. Clientes
  2. Provedores de identidade
  3. API de gateway
  4. Formatos de mensagens
  5. Bancos de dados
  6. Conteúdo Estático
  7. Gestão
  8. Descoberta de serviço

Consulte o diagrama abaixo.

Figura 2: Arquitetura de microsserviços - Arquitetura de microsserviços

Eu sei que a arquitetura parece um pouco complexa, mas vamosEusimplifique para você.

converter string data para data

1. Clientes

A arquitetura começa com diferentes tipos de clientes, de diferentes dispositivos, tentando executar vários recursos de gerenciamento, como pesquisa, construção, configuração etc.

2. Provedores de identidade

Essas solicitações dos clientes são então repassadas aos provedores de identidade que autenticam as solicitações dos clientes e as comunicam ao API Gateway. As solicitações são então comunicadas aos serviços internos por meio de um gateway de API bem definido.

3. Gateway API

Uma vez que os clientes não chamam os serviços diretamente, o API Gateway atua como um ponto de entrada para os clientes encaminharem solicitações aos microsserviços apropriados.

As vantagens de usar um gateway de API incluem:

  • Todos os serviços podem ser atualizados sem que o cliente saiba.
  • Os serviços também podem usar protocolos de mensagens não amigáveis ​​à web.
  • O API Gateway pode executar funções transversais, como fornecer segurança, balanceamento de carga etc.

Após receber as solicitações dos clientes, a arquitetura interna consiste em microsserviços que se comunicam por meio de mensagens para tratar das solicitações dos clientes.

4. Formatos de mensagens

Existem dois tipos de mensagens por meio das quais eles se comunicam:

  • Mensagens síncronas: Na situação em que os clientes esperam pelas respostas de um serviço, os microsserviços costumam usar REST (transferência de estado representacional) uma vez que depende de um servidor-cliente sem estado e do Protocolo HTTP . Este protocolo é utilizado por se tratar de um ambiente distribuído em que cada funcionalidade é representada com um recurso para realizar operações
  • Mensagens assíncronas: Na situação em que os clientes não esperam pelas respostas de um serviço, os microsserviços geralmente tendem a usar protocolos como AMQP, STOMP, MQTT . Esses protocolos são usados ​​neste tipo de comunicação, uma vez que a natureza das mensagens é definida e essas mensagens devem ser interoperáveis ​​entre as implementações.

A próxima pergunta que pode vir à sua mente é como os aplicativos que usam microsserviços gerenciam seus dados.

melhor software para programação java

5. Tratamento de dados

Bem, cada microsserviço possui um banco de dados privado para capturar seus dados e implementar a respectiva funcionalidade de negócios. Além disso, os bancos de dados de microsserviços são atualizados apenas por meio de sua API de serviço. Consulte o diagrama abaixo:

Figura 3: Representação de dados de manipulação de microsserviços - Arquitetura de microsserviços

Os serviços fornecidos por microsserviços são transportados para qualquer serviço remoto que suporte a comunicação entre processos para diferentes pilhas de tecnologia.

6. Conteúdo Estático

Depois que os microsserviços se comunicam entre si, eles implantam o conteúdo estático em um serviço de armazenamento baseado em nuvem que pode entregá-los diretamente aos clientes via Redes de distribuição de conteúdo (CDNs) .

Além dos componentes acima, existem alguns outros componentes que aparecem em uma arquitetura típica de microsserviços:

7. Gestão

Este componente é responsável por balancear os serviços nos nós e identificar falhas.

8. Descoberta de serviço

Atua como um guia para microsserviços para encontrar a rota de comunicação entre eles, pois mantém uma lista de serviços nos quais os nós estão localizados.

o que é o método tostring em java

Inscreva-se em nosso canal do youtube para obter novas atualizações ..!

Agora, vamos examinar os prós e os contras dessa arquitetura para entender melhor quando usá-la.

Prós e contras da arquitetura de microsserviços

Consulte a tabela abaixo.

Prós da arquitetura de microsserviço Contras do microsserviço Arquitetura
Liberdade para usar diferentes tecnologiasAumenta os desafios de solução de problemas
Cada microsserviço se concentra em uma única capacidade de negóciosAumenta o atraso devido a chamadas remotas
Suporta unidades individuais implantáveisAumento dos esforços para configuração e outras operações
Permite lançamentos de software frequentesDifícil de manter a segurança da transação
Garante a segurança de cada serviçoResistente para rastrear dados em vários limites de serviço
Vários serviços são desenvolvidos e implantados paralelamenteDifícil de mover o código entre serviços

Vamos entender mais sobre microsserviços comparando a arquitetura anterior do UBER com a atual.

ESTUDO DE CASO UBER

Arquitetura Anterior do UBER

Como muitas startups, o UBER começou sua jornada com uma arquitetura monolítica construída para uma única oferta em uma única cidade. Ter uma base de código parecia limpo na época e resolvia os principais problemas de negócios do UBER. No entanto, conforme o UBER começou a se expandir em todo o mundo, eles enfrentaram rigorosamente vários problemas com relação à escalabilidade e integração contínua.

Figura 4: Arquitetura Monolítica de UBER - Arquitetura de Microsserviço

O diagrama acima representa a arquitetura anterior do UBER.

  • Uma API REST está presente com a qual o passageiro e o motorista se conectam.
  • Três adaptadores diferentes são usados ​​com API dentro deles, para realizar ações como faturamento, pagamentos, envio de e-mails / mensagens que vemos quando reservamos um táxi.
  • Um banco de dados MySQL para armazenar todos os seus dados.

Então, se você observar aqui todos os recursos como gerenciamento de passageiros, faturamento, recursos de notificação, pagamentos, gerenciamento de viagens e gerenciamento de motorista foram compostos em uma única estrutura.

Declaração do Problema

Enquanto o UBER começou a se expandir em todo o mundo, esse tipo de estrutura apresentou vários desafios. A seguir estão alguns dos principais desafios

  • Todos os recursos tiveram que ser reconstruídos, implantados e testados repetidamente para atualizar um único recurso.
  • Consertar bugs tornou-se extremamente difícil em um único repositório, pois os desenvolvedores tiveram que alterar o código repetidas vezes.
  • O dimensionamento dos recursos simultaneamente com a introdução de novos recursos em todo o mundo era bastante difícil de ser realizado em conjunto.

Solução

Para evitar tais problemas, o UBER decidiu mudar sua arquitetura e seguir outras empresas de hipercrescimento como Amazon, Netflix, Twitter e muitas outras. Portanto, o UBER decidiu quebrar sua arquitetura monolítica em várias bases de código para formar uma arquitetura de microsserviço.

Consulte o diagrama abaixo para ver a arquitetura de microsserviço do UBER.

Figura 5: Arquitetura de microsserviço do UBER - Arquitetura de microsserviço

  • A principal mudança que observamos aqui é a introdução do API Gateway, por meio do qual todos os motoristas e passageiros são conectados. A partir do API Gateway, todos os pontos internos são conectados, como gerenciamento de passageiros, gerenciamento de motorista, gerenciamento de viagem e outros.
  • As unidades são unidades destacáveis ​​individuais separadas que executam funcionalidades separadas.
    • Por exemplo: se você deseja alterar algo nos microsserviços de faturamento, basta implantar apenas microsserviços de faturamento e não precisa implantar os outros.
  • Todos os recursos agora foram dimensionados individualmente, ou seja, a interdependência entre cada um e todos os recursos foi removida.
    • Por exemplo, todos nós sabemos que o número de pessoas que procuram táxis é comparativamente maior do que as pessoas que realmente reservam um táxi e fazem pagamentos. Isso nos leva a inferir que o número de processos trabalhando no microsserviço de gerenciamento de passageiros é maior do que o número de processos trabalhando em pagamentos.

Nissocaminho, UBER beneficiado pela mudançaEstáarquitetura monolítica a microsserviços.

Espero que você tenha gostado de ler este post sobre Arquitetura de Microsserviço.Eu estarei criando mais blogs, que conterão a prática também.
Interessado em aprender mais sobre microsserviços?

Se você deseja aprender microsserviços e criar seus próprios aplicativos, confira nosso que vem com treinamento ao vivo conduzido por instrutor e experiência em projetos da vida real. Este treinamento o ajudará a entender os microsserviços em profundidade e a obter domínio sobre o assunto.

Tem alguma questão para nós? Mencione isso na seção de comentários de ” Arquitetura de microsserviço ”E eu voltarei para você.