Arquitetura de Micro Serviços não é uma bala de prata, esta é uma introdução comparando com Arquittura Monolítica. Como também as vantagens e desvantagens de usá-las.
mostra a interface do usuário, acessa os dados, processa as compras dos clientes, imprime notas fiscais, lança mísseis e qualquer outra coisa que a aplicação precise fazer.” Rod Stephens - Beginning Software Engineering
rapidamente o protótipo ou produto final • Fácil de atualizar versão ◦ basta atualizar o diretório específico da aplicação e reiniciar o serviço • Fácil de escalar ◦ basta subir novas instâncias com o mesmo artefato atrás de balanceador de carga • Padronização ◦ Uniformidade da stack/linguagem de programação no desenvolvimento
rapidamente uma aplicação • Os novos membros da equipe devem-se tornar rapidamente produtivos • A aplicação deve ser fácil de entender e modificar • Testar as tecnologias emergentes (Frameworks, linguagem de programação, etc. )
muito grande são difíceis de manter • Intimida pessoas que entram na equipe a desenvolver rapidamente • O medo em mexer no código diminui a velocidade de entrega e também a qualidade do código • Continuous Deployment, escalabilidade e confiabilidade tornam-se cada vez mais complexas e demoradas
forma de desenvolver uma aplicação como uma suíte de pequenos serviços, cada qual rodando em seu próprio processo (...). Esses serviços são construídos ao redor de capacidades de negócio e são implantados independentemente com processos automatizados. (...) Podem ser escritos em diferentes linguagens e usar tecnologias diferentes de armazenamento de dados” James Lewis e Martin Fowler
bugs e monitoramento • Aumento da coordenação e comunicação entre equipes para evolução do que existe ou novos serviços • Torna mais difícil testes de integração
bugs e monitoramento • Aumento da coordenação e comunicação entre equipes para evolução do que existe ou novos serviços • Torna mais difícil testes de integração • Mais difícil contratação de pessoas. Mais habilidade são requeridas
serviço de “mensageria” para comunicação entre os Micro Serviços • Cada Micro Serviço tem sua própria instância de banco de dados • Múltiplas versões da aplicação rodando ao mesmo tempo • Uso de um gerenciador de segredos “Secrets”