Antes de começarmos a “pensar microsserviços”, precisamos compreender dois princípios importantes: o primeiro chamado “Lei de Conway”; e o segundo, “Lei de Conway Reversa”.
A primeira “Lei de Conway” nos traça um perfil importante sobre a estrutura e organização de uma empresa: “A arquitetura de um sistema será determinada pelas estruturas de comunicação e organizacionais da empresa”; já a segunda, a qual melhor se encaixa na arquitetura de microsserviços, nos diz: “A estrutura organizacional de uma empresa é determinada pela arquitetura de seu produto”.
Se hoje seus produtos se baseiam na arquitetura organizacional de sua empresa, com microsserviços sua empresa passará a se basear na arquitetura dos microsserviços.
Assim, com o tempo, aquele produto ou aqueles produtos que se servem dessa arquitetura, ditarão como e para onde os negócios da empresa estão indo.
A adoção de microserviços também apresenta desafios, como a complexidade adicional na gestão de várias partes do sistema e a necessidade de definir corretamente as interfaces entre os serviços.
Em geral, a escolha de usar microserviços ou uma arquitetura monolítica depende das necessidades e objetivos específicos de um projeto de desenvolvimento de software.
Cada microserviço é um componente isolado e autônomo que executa uma função específica dentro do aplicativo e se comunica com outros microserviços por meio de interfaces bem definidas, como APIs (Application Programming Interfaces).
A ideia por trás dos microserviços é decompor um sistema de software complexo em partes menores e mais gerenciáveis, o que oferece várias vantagens, incluindo:
– Escalabilidade
– Manutenção mais fácil
– Desenvolvimento ágil
– Resiliência
– Tecnologia diversificada