
Arquitetura de Micro Serviços
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
Quer saber mais? Fique ligado que logo tem artigo novo no Blog DBC.
E quer fazer parte do nosso time? #VemPraDBC
Confira nossas vagas em: https://dbc.compleo.com.br/
#DBCCompany #ConstruindoUmFuturoDigital #VagasTi

