Microservices em Produção: e agora? - QConSP · A única pessoa que conhecia esse sistema saiu da...
Transcript of Microservices em Produção: e agora? - QConSP · A única pessoa que conhecia esse sistema saiu da...
No incio era só um monolito.
Contratamos 20 novos engenheiros, porque não conseguimos entregar nada?
Primeiros microserviços
Extraímos todos esses Microservices, porque não conseguimos entregar nada?
10.000s requisições por segundo
100s de Microservices
Scala, Ruby, Go entre outras
400+ Pessoas
100s de serviços
Mais de 50% dos funcionários remotos.
~ 1 Milhão de desenvolvedores na plataforma
~ Meio milhão de desenvolvedores ativos
Lei de Conway (1968)
Organizações <-> Sistemas dessas organizações.
Problemas organizacionais
?
?
A única pessoa que conhecia esse sistema saiu da empresa, agora ele ficou sem
dono.Vitor Pellegrino, um milhão de vezes.
Como saber quais serviços não tem donos e informações básicas sobre estes sistemas?
https://martinfowler.com/bliki/HumaneRegistry.html
Diretorio de servicos
Diretório de serviços nos ajuda a identificar fronteiras entre times e sistemas
Como conciliar necessidades de negócio com pagar débito técnico?
O que é bom o suficiente?
Cada um tinha uma ideia diferente
Produto e Engenharia não conseguiam conversar de maneira objetiva.
Modelos de maturidade
Foque no seu contexto, mas não invente um do zero.
A diferença entre os níveis é muito importante.
Modelos de maturidade nos ajudam a quantificar investimentos em arquitetura
Problemas técnicos
Arquiteturas modernas de microserviços
Lógica de negócio
Arquiteturas modernas de microserviços
Lógica de negócio
Logging
Arquiteturas modernas de microserviços
Lógica de negócio
Logging
Telemetria
Arquiteturas modernas de microserviços
Lógica de negócio
Logging
Rastreamento distribuído
Telemetria
Arquiteturas modernas de microserviços
Lógica de negócio
Logging
Rastreamento distribuído
Telemetria
Tolerância a falhas
Arquiteturas modernas de microserviços
Lógica de negócio
Logging
Rastreamento distribuído
Telemetria
Transporte
Tolerância a falhas
Lógica de negócio
Logging
Rastreamento distribuído
Tolerância a falhas
Transporte
Lógica de negócio
Logging
Rastreamento distribuído
Tolerância a falhas
Transporte
Lógica de negócio
Logging
Rastreamento distribuído
Tolerância a falhas
Transporte
Lógica de negócio
Logging
Rastreamento distribuído
Tolerância a falhas
Transporte
TelemetriaTelemetria
TelemetriaTelemetria
Como fazer para implementar isso em todos os meus serviços?
Bibliotecas compartilhadas?
TL;DR Atualizar 100 aplicações ao mesmo tempo não é tão legal
Quem mantém as bibliotecas as vezes não mantém as aplicações
Qual é a alternativa?
Lógica de negócio
Logging
Rastreamento distribuído
Telemetria
Transporte
Tolerância a falhas
Service Meshes
Service meshes são tipicamente compostas por dois tipos de componentes distintos
Plano de dados
Plano de controle
Pilot Mixer Auth
Separação mais forte entre questões de aplicação e infraestrutura
Consistência entre serviços como trabalho da plataforma.
Considerações finais
Ferramentas são uma parte da solução, mas não a solução inteira.
Micro serviços são uma forma de pensar uma organização.
Fazer a coisa certa tem que ser simples por default.
Obrigado!Vitor Pellegrino
@pellegrino [email protected]
?Vitor Pellegrino
@pellegrino [email protected]
Referencias● Excelente modelo de maturidade da thoughtworks
https://info.thoughtworks.com/agile-maturity-model-applied-building-
and-releasing-software.html
● Framework de sincronização de dados da Netflix.
https://github.com/Netflix/Scumblr
● Github owners files
https://blog.github.com/2017-07-06-introducing-code-owners/
● Humane Registry
https://martinfowler.com/bliki/HumaneRegistry.html
● Istio
https://istio.io
● Envoy
https://www.envoyproxy.io/
Referencias