O que é arquitetura de microsserviços?
A arquitetura de microsserviços existe para trazer mais eficiência para o desenvolvimento, a implantação e, especialmente, a operação de sistemas e de softwares. O objetivo da arquitetura de microsserviços é tornar sistemas mais flexíveis e escalonáveis.
Diferentemente do que as pessoas imaginam, a arquitetura de microsserviços não se refere ao tamanho dos serviços que fazem parte dela, mas sim à própria arquitetura. Ou seja, a arquitetura de microsserviços se refere mais a como o sistema é pensado e construído.
Neste artigo, você vai ler mais sobre:
Entendendo containers e arquitetura de microsserviços
Para entender os microsserviços, você deve saber o que é um container. Sendo o mais direto possível, um container é um ambiente isolado e independente.
Um container pode ser um pacote completo, consistindo de um aplicativo e todas as suas partes, como bibliotecas e arquivos de configuração. Ou ele pode ser um pacote simples, usado somente para empacotar as partes. Esta é uma escolha, na verdade, que depende do projeto e do desenvolvedor.
Então, sim, é possível existirem múltiplos containers dentro de um sistema operando aplicativos e processos isoladamente.
Como a arquitetura de microsserviços funciona
A arquitetura de microsserviços funciona baseada nos containers. Para construir um sistema, o time de desenvolvimento trabalha com um conjunto de serviços. No modelo de arquitetura de microsserviços, cada serviço é implantado de maneira independente dentro de um container.
Basicamente, de modo prático, a arquitetura de microsserviços aloca cada função do sistema dentro de um container. A partir daí, ela distribui o uso dos serviços de acordo com a demanda.
Por que usar arquitetura de microsserviços?
Para responder à pergunta “por que usar arquitetura de microsserviços?”, nós usaremos a Gatefy como exemplo. Aqui nós usamos a arquitetura de microsserviços para a segurança de e-mail, no nosso software de Secure Email Gateway.
Imagine uma companhia que tem três servidores. Dê uma olhada na imagem abaixo para entender melhor.
Neste caso, dois dos servidores tem uma aplicação de banco de dados (DB). Os bancos de dados são idênticos, redundantes. A Gatefy Cluster Engine (GCE) é a responsável por atender às demandas do software. É ela que vai definir qual DB será usado.
Por exemplo, se muitos usuários estiverem usando o banco de dados do servidor 1, a GCE responderá a novas solicitações redirecionando-as para o servidor 3, de modo que o sistema permaneça rápido e eficiente.
Da mesma forma, vamos imaginar que houve uma tempestade e o servidor 1 caiu. Imediatamente, a GCE passará toda a demanda para o servidor 3.
Agora você tem uma visão mais clara da razão pela qual nós usamos a arquitetura de microsserviços em nossos produtos. Ela permite que a Gatefy e os nossos clientes tenham:
• Disponibilidade. Não é necessário parar todo o seu sistema para mudar ou incluir um aplicativo ou serviço.
• Redundância. Os serviços estarão sempre disponíveis porque é fácil e rápido alterar ou incluir uma aplicação.
• Agilidade. Os containers trabalham rápido. O upload de seus aplicativos se torna uma questão de poucos segundos.
• Escalabilidade e flexibilidade. Os containers permitem que você crie as suas aplicações do jeito que você quiser.
• Simplicidade. A arquitetura de microsserviços reduz a complexidade e diminui o tempo gasto com implantação e alterações do sistema.