A arquitetura de Micro serviços é muito usada no desenvolvimento de programas de softwares. Em contraponto a Monolítica, tem como característica desmembrar aplicações em componentes mínimos e independentes.

Antes de desenvolver sobre a arquitetura de Micro Serviços, é importante entender a arquitetura Monolítica.

arquitetura_monolítica

As aplicações monolíticas são desenvolvidas geralmente para atenderem um só local, uma característica muito comum são as camadas sobrepostas com responsabilidades distintas, quando é preciso realizar ajustes todo o sistema precisa ser atualizado no servidor onde está a produção.

É indicado usar essa arquitetura quando: seu time não tem experiência com microsserviços, quando seu projeto for de curto prazo de entrega e não pode gastar tempo com automatização de deploy e orquestração dos serviços. Ou na criação de um produto com nível alto de incerteza.

A arquitetura de Micro Serviços

micro_serviços

Já em microsserviços a aplicação é distribuída em diversos subaplicações independentes por isso "serviços", cada "serviço passa a ser responsável por uma funcionalidade ou módulo da aplicação.

Condições da arquitetura de micro serviços

O requisito da Escalabilidade.

Quando prazo não é muito apertado.

Se a Independência e velocidade de liberação dos serviços fundamentais.

O time é experiente e capacitado a desenvolver em várias linguagens.

A aplicação precisa ser altamente eficiente em uma das partes mais do que em outras.

Ter um DevOps altamente capacitado.

Conclusão

Com a computação em nuvem, a arquitetura de microserviços está em pauta a todo momento, mas nem sempre é a solução ideal, depende de muitos outros fatores como o custo do projeto, o tempo necessário para implantação, a cultura e engajamento da equipe são questões determinantes ao sucesso de um projeto, é preciso entender bem o seu projeto acima de tudo.