Arquitetura de Micro Serviços

Postado por DBC Company Em: Capacitação, Desenvolvimento, Tecnologia Sem comentarios

Olá pessoal, vamos fazer uma introdução a arquitetura de micro serviços, as vantagens e desvantagens do seu uso. Boa leitura.

O que é um micro-serviço?

Micro serviços são uma abordagem arquitetônica e organizacional do desenvolvimento de software na qual o software consiste em pequenos serviços independentes que se comunicam usando APIs bem definidas. Esses serviços pertencem a pequenas equipes autossuficientes.

Micro serviços é uma maneira particular de desenvolver aplicações de maneira que cada módulo do software é um serviço standalone cujo deploy e escala acontecem de maneira independentes da “aplicação principal”.As arquiteturas de micro serviços também agilizam o desenvolvimento de aplicativos, habilitando a inovação e acelerando o tempo de introdução de novos recursos no mercado.

Por que utilizar micro serviços?

Apesar do seu nome autoexplicativo, é importante estudarmos os reais impactos que uma arquitetura composta por diferentes módulos conversando via lightweight como HTTP pode causar na forma como programamos e nos resultados que obtemos com software. Vamos citar algumas vantagens e desvantagens (sim, porque no mundo dos micro serviços nem tudo são flores) de se utilizar este tipo de arquitetura.

 Vantagens

Escalabilidade:

Quando quebramos uma aplicação monolítica e grande em várias pequenas, possivelmente escalá-las de forma separada. Escolhendo pela necessidade qual serviço precisa de mais recursos de hardware. Uma aplicação monolítica seria necessário escalá-la por inteiro, aumentando consideravelmente o custo.

Múltiplas tecnologias:

Não é necessário desenvolver os micros serviços todos na mesma linguagem de programação, de acordo com a necessidade pode-se utilizar a linguagem necessária para uma determinada característica do micro serviço.

Equipes autossuficientes:

Cada equipe pode assumir um ou mais micro serviços, tendo autonomia na escolha da linguagem de programação, como dito acima, e também a forma como vai gerenciar o desenvolvimento/sustentação do micro serviço.

Desvantagens

Performance:

Bibliotecas rodam no mesmo processo da aplicação, usam memória compartilhada, etc. Serviços dependem de canais de comunicação, como HTTP, para conseguirem tratar e responder as requisições.

Disponibilidade dos serviços:

A coordenação entre os contratos de serviço deve ser muito bem planejadas e desenvolvidas para que os consumidores consigam “conversar” com os serviços de maneira que eles esperam, bem como receber as respostas que estão preparados.

Monolito x Micro Serviços

Como foi visto, existem vantagens e desvantagens em se usar a arquitetura de micro serviços, para saber se vale a pena partir para a arquitetura de micro serviços você tem que entender um pouco sobre a situação do seu projeto, pois transformar um monolito em micro serviço pode ser complicado se você não tiver ao menos como mensurar o quanto o seu processo de CI/CD está automatizado. Se não houver nem o processo, esta é uma tarefa que tem de ser consolidada antes mesmo de se cogitar a arquitetura de micro serviços.

É importante saber se a equipe que realizará o desenvolvimento está preparada, pois impactará também no modo como as pessoas trabalham.

Minha Experiência

Minha experiência aqui na DBC em trabalhar com micro serviços tem sido muito positiva. A divisão correta de cada serviço é muito importante para o sucesso e a equipe que faço parte pensa muito nisso, acabamos correndo na frente da maioria dos futuros problemas e evitamos dores de cabeça. Por isso, identifique as responsabilidades muito bem antes de dividir.

Fique ligado aqui no Blog e nas  redes sociais que em breve eu volto para compartilhar um pouco mais do meu trabalho e aprofundar esse tema.

 

Por Cristiano do Nascimento, Desenvolvedor de Sistemas na DBC Company.

cristiano.nascimento@dbccompany.com.br

23 Likes