Microservices - Código Fonte TV

Uma forma de desenvolver sistemas onde cada pedaço pode ser pensado, desenvolvido e disponibilizado de forma independente.

(similaridades com SOA: Service Oriented Archtechture)

Microsserviços devem ser considerados, principalmente nestas situações

Percebe-se que há uma forte relação com outras práticas como:

Pois é o que possibilita a implantação (deploy) dos microsserviços de maneira independente.

desafios

Cada pedacinho do sistema (ou seja, o microsserviço em si) torna-se mais simples. Mas o sistema como um todo fica mais complexo.

Uma boa gestão e orquestração dos microsserviços se torna mandatório para o bom andamento do sistema. Também podemos chamar isso de governança.

Desenvolvimento e testes exigem uma abordagem diferente. Refatorar entre os limites de serviços se torna bastante complicado. Testar uma aplicação com muitas dependências de serviço é bastante desafiador.

"Estudos indicam" que a resolução de problemas ficam cerca de 73% mais complicadas.

Como a comunicação entre os microsserviços se dá através de um gateway de API com chamadas HTTP, a latência e o congestionamento são uma realidade. Principalmente se houverem chamadas encadeadas.

Outro desafio: maior necessidade de storage.

boas práticas