uma suíte de serviços, cada um rodando em seu próprio processo e se comunicando através de mecanismos leves. Estes serviços são construídos em torno de recursos de negócio e publicados em produção de maneira independente através de processos de deploys automatizados. Existe um gerenciamento centralizado mínimo destes serviços, que podem ser escritos em diferentes linguagens e usarem diferentes tecnologias para armazenamento de dados.
Produtos e não projetos; ◉ Governança descentralizada; ◉ Gerenciamento de dados descentralizados; ◉ Automatização de infra-estrutura; ◉ Design para falhas; ◉ Design evolucionário. 12
Familiaridade com o negócio da aplicação; ◉ Cultura DevOps; ◉ Monitoramento básico; ◉ Rápido provisionamento; ◉ Possibilidade de deploy automatizados; ◉ Estar pronto para perder produtividade agora e ganhar futuramente. 22
forma independente? 2. Alguma parte precisa de uma escalabilidade ou tecnologia diferente das demais? 3. As partes representam diferentes casos de negócio ou domínio? 4. As abordagens de arquitetura distribuída não resolvem o meu problema? 26
os filmes; ◉ Filmes devem mostrar títulos e links de notícias relacionadas. ◉ As informações apresentadas em um serviço sobre o outro serviço pode ser customizada. 55
Produtos e não projetos; ◉ Governança descentralizada; ◉ Gerenciamento de dados descentralizados; ◉ Automatização de infra-estrutura; ◉ Design para falhas; ◉ Design evolucionário. 58
o banco de dados, o outro serviço é afetado; ◉ Ninguém garante que um serviço não vai alterar o dado do outro serviço; ◉ A escalabilidade afeta todos os serviços. 60
Produtos e não projetos; ◉ Governança descentralizada; ◉ Gerenciamento de dados descentralizados; ◉ Automatização de infra-estrutura; ◉ Design para falhas; ◉ Design evolucionário. 63
Produtos e não projetos; ◉ Governança descentralizada; ◉ Gerenciamento de dados descentralizados; ◉ Automatização de infra-estrutura; ◉ Design para falhas; ◉ Design evolucionário. 68
monolito, talvez seja capaz de criar bons microsserviços; - Refatorar algo que é pequeno é mais fácil; - Ao começar com monolito é provável que as partes fiquem muito acopladas. Microsserviços - É difícil testar ideias de forma rápida; - Não consegue priorizar velocidade; - Dificuldade em definir limites de serviços no começo