Quebrei minhas aplicações em microserviços
e agora?
Bianca Rosa
lead dev @ stone
- Python
- Go
- Lua
- JS
- PythOnRio / Gophers RJ
- Pyladies / WWG
Padarias do Seu Joaquim
- Funcionalidade 1: Estoque
- Funcionalidade 2: Cadastro de Funcionários
- Funcionalidade 3: Pagamento
- Funcionalidade 4: Cadastro de Clientes no Site
- Funcionalidade 5: Assinatura
- Funcionalidade 6: Pedidos Online
- Funcionalidade 7: Faturamento das Padarias
e assim nasce um monolito
É fácil de alterar alguma dessas coisas sem afetar as outras?
É fácil escalar?
É fácil de alterar corrigir problemas com rapidez?
Alguém precisa manter e criar novas funcionalidades.
Vamos usar microserviços!
- Eu li um artigo que...
- Eu tenho um amigo que....
- No blog do Martin Fowler.....
- Saiu um livro muito bom......
... e nunca mais vamos ter problemas!
- A linguagem correta pra resolver o problema correto.
- Aplicações menores e modulares.
- Deploys independentes.
Beleza, vamos para produção!!!!
- 1 pipeline de CI vs N pipelines de CI
- 1 stack vs N stacks
- 1 deploy vs N deploys
Não suba microserviços se você não tem...
- Provisionamento rápido
- Monitoramento Básico
- Deploy rápido
- Cultura DevOps
Mas não era pra ser mais fácil?
Segredo: ninguém disse que seria.
SUBIMOS!
MELHOR TIME! MELHOR STACK! TÁ TUDO LINDO!
- Logs
- Alertas - Definição de Falha
Fronteiras
BoundedContext
Defina-as bem.
Não expor outros times a como você organiza sua arquitetura de serviços é essencial. Exponha interfaces claras.
Reusabilidade
É melhor deixar um time da mesma empresa usar meu microserviço ou ajudar a pessoa a subir o dela?
Complexidade de Desenvolvimento
Cuidado com stacks complexas
Boilerplate
- Exemplos
- Mínimo Viável
- Code style