Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
What to Upload to SlideShare
What to Upload to SlideShare
Loading in …3
×
1 of 23

Microservices em Python: desafios e soluções

0

Share

Download to read offline

Introdução de Microserviços e uso deles com Python

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Microservices em Python: desafios e soluções

  1. 1. Microservices e Python Desafios e soluções Guilherme Vierno
  2. 2. About me • Físico por formação • Pythonista desde 2010 • Mineiro agora morando no Rio • Desenvolvedor na • Plataformas de publicação
  3. 3. Por que falar de microservices? Interesse ao longo do tempo Fonte: google trends
  4. 4. Por que falar de microservices? • Tendência do mercado • Implementado nos líderes de tecnologia do mundo (Amazon, eBay, Netflix, Apple…) • Resolve bem problemas de desenvolvimento em larga escala
  5. 5. Intro: Um pouco de história
  6. 6. globo.com (Monolito) pré micro-serviços IN OUT
  7. 7. globo.com (Monolito) pré micro-serviços • Um grande projeto em Django • ∞ linhas de código e milhares de testes • Banco MySQL superinflado • Vários times desenvolvendo o mesmo codebase
  8. 8. Monolito
 Principais problemas 1. Baixa velocidade de entregas • Existe um “time de deploy” e “dia do deploy” • Dificuldade de refatorar / imprevisibilidade 2. Escalabilidade • Ruim de medir uso de recursos por módulo • Dificuldade de fazer cache dos dados 3. Resiliência • Novos releases deixando todo o sistema instável
  9. 9. Separação em serviços Migrando partes da
 aplicação para
 serviços isolados
  10. 10. Micro-serviços
  11. 11. Micro-serviços Time 1 Time 3 Time 2 Time 4 IN OUT IN OUT
  12. 12. Micro-serviços Velocidade das entregas • Domínio do time sobre o serviço • Deploy individual • Automação e conteinerização • Testes
  13. 13. DB centralizado Micro-serviços Escalabilidade Monolito
  14. 14. Micro-serviços Escalabilidade
  15. 15. Micro-serviços Resiliência OUT IN
  16. 16. Micro-serviços Características comuns • Pequenos em tamanho • Limitados por contexto • Desenvolvidos autonomamente • Deploys independentes • Descentralizado • Automatização de processos (build, release, monitoração…)
  17. 17. Nem tudo são flores • Complexidade de desenvolvimento/operacional • Duplicação de dados • Latência adicional • Desuniformidade • Refatoração cross-módulo
  18. 18. Python
  19. 19. • Prototipagem e desenvolvimento rápidos • Facilidade de instrumentar continuous delivery / DevOps • Uso bem difundido de Microframeworks μservices em Python Vantagens de usar Python
  20. 20. • Poder combinar com outras linguagens • Manutenção barata • Uma boa hora de introduzir Python[3] na stack μservices em Python Vantagens de usar Python
  21. 21. • Tornado: Network I/O não bloqueante • Flask: Zero ao deploy em pouco tempo • Django: Tastypie, django rest framework, channels • Nameko: Feito para microservices • aiohttp: asyncio nativo com network μservices em Python Frameworks
  22. 22. Considerações Finais • A maior mudança é cultural • Monolith-first • O momento certo é quando sentir a necessidade • Atenção aos requisitos: Provisionamento de infra, monitoração, automação…
  23. 23. We’re hiring! talentos.globo.com Guilherme Vierno

×