SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
Microservices em Python:
Resiliência e Escalabilidade
Guilherme Vierno
About me
• Físico por formação
• Pythonista desde 2010
• Mineiro agora morando no Rio
• Desenvolvedor na
• Plataformas de publicação
Por que falar de
microservices?
Interesse ao longo do tempo
Fonte: google trends
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
Intro

Do Monolito aos Serviços
globo.com (Monolito)
pré micro-serviços
Request
Response
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
Monolito

Principais problemas
1. Baixa velocidade de entregas
• “Time de deploy” e “dia do deploy”
• Refatoração cada vez mais cara
2. Escalabilidade
• Ruim de medir uso de recursos por módulo
• Dificuldade em fazer cache eficiente
3. Resiliência
• Algumas subidas causando instabilidade geral
Separação em serviços
Migrando partes da

aplicação para

serviços isolados
Micro-serviços
Time 1
Time 3
Time 2
Time 4
IN
OUT
IN
OUT
Micro-serviços
Características comuns
• Velocidade de desenvolvimento
• Pequenos em tamanho e limitados por contexto
• Desenvolvidos autonomamente
• Escalabilidade
• Deploys individuais
• Resiliência
• Isolamento
• Automatização de processos (build, release,
monitoração…)
Python &
Microserviços &
Milhares de req/s &
Alta disponibilidade
Python &
Microserviços &
Escalabilidade &
Resiliência
1.Sistema eficiente de
cache
g1.globo.com/.*
/busca
/votar
/noticias
Renderizando uma matéria
Estilo
Conteúdo
Menu
Tenant
Semântica
Webmedia
GET /noticia/tiroteio-deixa-um-morto-e-feridos.ghtml
Cache distribuído
Cache distribuído
Cenário 1


A página já foi requisitada neste servidor
nos últimos 10 segundo
Cache distribuído
Cenário 2


Cache do Varnish expirou mas a matéria foi acessada
nos últimos 5 minutos e está fresca no redis
Cache distribuído
Cenário 3


A página não foi acessada nos últimos 5 minutos

ou não está no cache recente do redis
RENEW
Cache distribuído
serviço Tempo de cache
% das requisições
servidas
Expiração
Varnish 10s >80% Passiva
Redis 5min ~15% Ativa / LRU
MongoDB 5min - ∞ < 5% Ativa
2.Expectativa de falhas
Circuit Breaking
OUT
IN
Expectativa de falhas
• Cache + Stale (Fail-safe)
• Retry
• Backoff
3.Comunicação Leve e
assíncrona
• https://github.com/aio-libs/
• aioredis
• aiomysql
• aiopg
• toredis
• tornado-alf
Bibliotecas assíncronas
4.Monitoração
Healthcheck detalhado
{
"status": "failure",
"results": [
{
"output": "Connection Timeout",
"checker": "redis_connection",
"passed": false
}
]
}
Ferramentas
5.Automação
Facilidade de subir Apps
• Isolamento das apps
• Automação de Infra
• FaaS & PaaS & IaaS
• Autoscaling
• CI / CD
1. Cache distribuído
2. Expectativa de falhas
3. Comunicação leve e assíncrona
4. Monitoração
5. Automação
Recap
E por que Python?
• Prototipagem e desenvolvimento rápidos
• Facilidade de instrumentar continuous delivery /
DevOps / automações em geral
• Uso bem difundido de Microframeworks
• É bem fácil fazer comunicação leve entre apps
μservices em Python
Vantagens de usar Python
• Podemos combinar com outras linguagens
• Manutenção barata
• Uma boa hora de introduzir Python[3] na stack
μservices em Python
Mais coisas legais
• 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
Considerações Finais
• Monolith-first
• O momento certo é quando sentir a necessidade
• Atenção aos requisitos: Provisionamento de infra,
monitoração, automação…
• A maior mudança é cultural
Isso é tudo pessoal!
We’re hiring!
https://talentos.globo.com
Guilherme Vierno
vierno.com.br
Micro-serviços
Melhor velocidade das entregas
• Domínio do time sobre o serviço
• Deploy individual
• Automação e conteinerização
• Testes
Nem tudo são flores
• Complexidade de desenvolvimento/operacional
• Duplicação de dados
• Latência adicional
• Desuniformidade
• Refatoração cross-módulo

Más contenido relacionado

La actualidad más candente

RIP - Routing Information Protocol
RIP - Routing Information ProtocolRIP - Routing Information Protocol
RIP - Routing Information ProtocolJean Pimentel
 
Distributed Transaction in Microservice
Distributed Transaction in MicroserviceDistributed Transaction in Microservice
Distributed Transaction in MicroserviceNghia Minh
 
Desenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos BásicosDesenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos BásicosFabio Moura Pereira
 
Projeto de monitoria 2016.2 e 2017.1
Projeto de monitoria 2016.2 e 2017.1Projeto de monitoria 2016.2 e 2017.1
Projeto de monitoria 2016.2 e 2017.1Felipe Pontes
 
Barramento do Sistema - Arquitetura e Organização de Computadores
Barramento do Sistema - Arquitetura e Organização de ComputadoresBarramento do Sistema - Arquitetura e Organização de Computadores
Barramento do Sistema - Arquitetura e Organização de ComputadoresWellington Oliveira
 
Kinh nghiệm triển khai Microservices tại Sapo.vn
Kinh nghiệm triển khai Microservices tại Sapo.vnKinh nghiệm triển khai Microservices tại Sapo.vn
Kinh nghiệm triển khai Microservices tại Sapo.vnDotnet Open Group
 
Understanding Juju Charms
Understanding  Juju CharmsUnderstanding  Juju Charms
Understanding Juju CharmsDemis Gomes
 
2019 06-12-aws taipei summit-dev day-essential capabilities behind microservices
2019 06-12-aws taipei summit-dev day-essential capabilities behind microservices2019 06-12-aws taipei summit-dev day-essential capabilities behind microservices
2019 06-12-aws taipei summit-dev day-essential capabilities behind microservicesKim Kao
 
Arquiteturas usando Pipes and Filters
Arquiteturas usando Pipes and FiltersArquiteturas usando Pipes and Filters
Arquiteturas usando Pipes and FiltersSergio Crespo
 
Event-Driven Workflow: Monitoring and Orchestrating Your Microservices Landsc...
Event-Driven Workflow: Monitoring and Orchestrating Your Microservices Landsc...Event-Driven Workflow: Monitoring and Orchestrating Your Microservices Landsc...
Event-Driven Workflow: Monitoring and Orchestrating Your Microservices Landsc...confluent
 
Node.Js: Basics Concepts and Introduction
Node.Js: Basics Concepts and Introduction Node.Js: Basics Concepts and Introduction
Node.Js: Basics Concepts and Introduction Kanika Gera
 
Python izmantošana skolā.
Python izmantošana skolā.Python izmantošana skolā.
Python izmantošana skolā.kalvis
 
Gestão de Projetos de TI em Empresas
Gestão de Projetos de TI em EmpresasGestão de Projetos de TI em Empresas
Gestão de Projetos de TI em EmpresasCamilo Almendra
 
Roteamento em Rede de Sensores Sem Fio (RSSF)
Roteamento em Rede de Sensores Sem Fio (RSSF)Roteamento em Rede de Sensores Sem Fio (RSSF)
Roteamento em Rede de Sensores Sem Fio (RSSF)Estêvão Bissoli Saleme
 

La actualidad más candente (20)

RIP - Routing Information Protocol
RIP - Routing Information ProtocolRIP - Routing Information Protocol
RIP - Routing Information Protocol
 
Jornada da Inovacao
Jornada da InovacaoJornada da Inovacao
Jornada da Inovacao
 
Distributed Transaction in Microservice
Distributed Transaction in MicroserviceDistributed Transaction in Microservice
Distributed Transaction in Microservice
 
Desenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos BásicosDesenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos Básicos
 
Projeto de monitoria 2016.2 e 2017.1
Projeto de monitoria 2016.2 e 2017.1Projeto de monitoria 2016.2 e 2017.1
Projeto de monitoria 2016.2 e 2017.1
 
Apresentação sobre ipv6
Apresentação sobre ipv6Apresentação sobre ipv6
Apresentação sobre ipv6
 
Barramento do Sistema - Arquitetura e Organização de Computadores
Barramento do Sistema - Arquitetura e Organização de ComputadoresBarramento do Sistema - Arquitetura e Organização de Computadores
Barramento do Sistema - Arquitetura e Organização de Computadores
 
Capitulo 02 sommerville
Capitulo 02 sommervilleCapitulo 02 sommerville
Capitulo 02 sommerville
 
Kinh nghiệm triển khai Microservices tại Sapo.vn
Kinh nghiệm triển khai Microservices tại Sapo.vnKinh nghiệm triển khai Microservices tại Sapo.vn
Kinh nghiệm triển khai Microservices tại Sapo.vn
 
Módulo 1 de PSI
Módulo 1 de PSIMódulo 1 de PSI
Módulo 1 de PSI
 
Understanding Juju Charms
Understanding  Juju CharmsUnderstanding  Juju Charms
Understanding Juju Charms
 
HTML/CSS Patterns
HTML/CSS PatternsHTML/CSS Patterns
HTML/CSS Patterns
 
Tecnologias Atuais de Redes - Aula 3 - VPN [Apostila]
Tecnologias Atuais de Redes - Aula 3 - VPN [Apostila]Tecnologias Atuais de Redes - Aula 3 - VPN [Apostila]
Tecnologias Atuais de Redes - Aula 3 - VPN [Apostila]
 
2019 06-12-aws taipei summit-dev day-essential capabilities behind microservices
2019 06-12-aws taipei summit-dev day-essential capabilities behind microservices2019 06-12-aws taipei summit-dev day-essential capabilities behind microservices
2019 06-12-aws taipei summit-dev day-essential capabilities behind microservices
 
Arquiteturas usando Pipes and Filters
Arquiteturas usando Pipes and FiltersArquiteturas usando Pipes and Filters
Arquiteturas usando Pipes and Filters
 
Event-Driven Workflow: Monitoring and Orchestrating Your Microservices Landsc...
Event-Driven Workflow: Monitoring and Orchestrating Your Microservices Landsc...Event-Driven Workflow: Monitoring and Orchestrating Your Microservices Landsc...
Event-Driven Workflow: Monitoring and Orchestrating Your Microservices Landsc...
 
Node.Js: Basics Concepts and Introduction
Node.Js: Basics Concepts and Introduction Node.Js: Basics Concepts and Introduction
Node.Js: Basics Concepts and Introduction
 
Python izmantošana skolā.
Python izmantošana skolā.Python izmantošana skolā.
Python izmantošana skolā.
 
Gestão de Projetos de TI em Empresas
Gestão de Projetos de TI em EmpresasGestão de Projetos de TI em Empresas
Gestão de Projetos de TI em Empresas
 
Roteamento em Rede de Sensores Sem Fio (RSSF)
Roteamento em Rede de Sensores Sem Fio (RSSF)Roteamento em Rede de Sensores Sem Fio (RSSF)
Roteamento em Rede de Sensores Sem Fio (RSSF)
 

Similar a Microservices Python Resiliência Escalabilidade

Microservices em Python: desafios e soluções
Microservices em Python: desafios e soluçõesMicroservices em Python: desafios e soluções
Microservices em Python: desafios e soluçõesGuilherme Vierno
 
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)Tiago Marchetti Dolphine
 
Microservices reativos e a experiência do iFood
Microservices reativos e a experiência do iFoodMicroservices reativos e a experiência do iFood
Microservices reativos e a experiência do iFoodDevCamp Campinas
 
Um método para o desenvolvimento de software baseado em microsserviços
Um método para o desenvolvimento de software baseado em microsserviçosUm método para o desenvolvimento de software baseado em microsserviços
Um método para o desenvolvimento de software baseado em microsserviçosThiago Pereira
 
Introdução a Microservices com Node.JS
Introdução  a Microservices com Node.JSIntrodução  a Microservices com Node.JS
Introdução a Microservices com Node.JSEduardo Nunes Pereira
 
QCon SP 2017 - Reactive Microservices e a experiência do iFood
QCon SP 2017 - Reactive Microservices e a experiência do iFoodQCon SP 2017 - Reactive Microservices e a experiência do iFood
QCon SP 2017 - Reactive Microservices e a experiência do iFoodTiago Marchetti Dolphine
 
Arquitetura de Microserviços
Arquitetura de MicroserviçosArquitetura de Microserviços
Arquitetura de MicroserviçosNorberto Enomoto
 
QCon SP 2016 - WebAPIs e delivery: Matando a fome de 1 milhão de pedidos men...
QCon SP 2016 -  WebAPIs e delivery: Matando a fome de 1 milhão de pedidos men...QCon SP 2016 -  WebAPIs e delivery: Matando a fome de 1 milhão de pedidos men...
QCon SP 2016 - WebAPIs e delivery: Matando a fome de 1 milhão de pedidos men...Tiago Marchetti Dolphine
 
Internet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começouInternet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começouJose Wilker
 
GUJavaSC - Combinando Micro-serviços com Práticas DevOps
GUJavaSC - Combinando Micro-serviços com Práticas DevOpsGUJavaSC - Combinando Micro-serviços com Práticas DevOps
GUJavaSC - Combinando Micro-serviços com Práticas DevOpsRodrigo Cândido da Silva
 
TDC Floripa 2016 - Decolando seus micro-serviços na Spring Cloud
TDC Floripa 2016 - Decolando seus micro-serviços na Spring CloudTDC Floripa 2016 - Decolando seus micro-serviços na Spring Cloud
TDC Floripa 2016 - Decolando seus micro-serviços na Spring CloudRodrigo Cândido da Silva
 
Vantagens e desvantagens de uma arquitetura microservices
Vantagens e desvantagens de uma arquitetura microservicesVantagens e desvantagens de uma arquitetura microservices
Vantagens e desvantagens de uma arquitetura microservicesFábio Rosato
 
Ruby on Rails 100% na cloud com heroku e outros serviços
Ruby on Rails 100% na cloud com heroku e outros serviçosRuby on Rails 100% na cloud com heroku e outros serviços
Ruby on Rails 100% na cloud com heroku e outros serviçosBruno Ghisi
 

Similar a Microservices Python Resiliência Escalabilidade (20)

Microservices em Python: desafios e soluções
Microservices em Python: desafios e soluçõesMicroservices em Python: desafios e soluções
Microservices em Python: desafios e soluções
 
DevTalk 08/2019
DevTalk 08/2019DevTalk 08/2019
DevTalk 08/2019
 
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
 
Devcamp 2017 Microservices Reativos
Devcamp 2017   Microservices ReativosDevcamp 2017   Microservices Reativos
Devcamp 2017 Microservices Reativos
 
Microservices reativos e a experiência do iFood
Microservices reativos e a experiência do iFoodMicroservices reativos e a experiência do iFood
Microservices reativos e a experiência do iFood
 
Um método para o desenvolvimento de software baseado em microsserviços
Um método para o desenvolvimento de software baseado em microsserviçosUm método para o desenvolvimento de software baseado em microsserviços
Um método para o desenvolvimento de software baseado em microsserviços
 
Introdução a Microservices com Node.JS
Introdução  a Microservices com Node.JSIntrodução  a Microservices com Node.JS
Introdução a Microservices com Node.JS
 
QCon SP 2017 - Reactive Microservices e a experiência do iFood
QCon SP 2017 - Reactive Microservices e a experiência do iFoodQCon SP 2017 - Reactive Microservices e a experiência do iFood
QCon SP 2017 - Reactive Microservices e a experiência do iFood
 
Arquitetura de Microserviços
Arquitetura de MicroserviçosArquitetura de Microserviços
Arquitetura de Microserviços
 
QCon SP 2016 - WebAPIs e delivery: Matando a fome de 1 milhão de pedidos men...
QCon SP 2016 -  WebAPIs e delivery: Matando a fome de 1 milhão de pedidos men...QCon SP 2016 -  WebAPIs e delivery: Matando a fome de 1 milhão de pedidos men...
QCon SP 2016 - WebAPIs e delivery: Matando a fome de 1 milhão de pedidos men...
 
Internet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começouInternet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começou
 
GUJavaSC - Combinando Micro-serviços com Práticas DevOps
GUJavaSC - Combinando Micro-serviços com Práticas DevOpsGUJavaSC - Combinando Micro-serviços com Práticas DevOps
GUJavaSC - Combinando Micro-serviços com Práticas DevOps
 
TDC Floripa 2016 - Decolando seus micro-serviços na Spring Cloud
TDC Floripa 2016 - Decolando seus micro-serviços na Spring CloudTDC Floripa 2016 - Decolando seus micro-serviços na Spring Cloud
TDC Floripa 2016 - Decolando seus micro-serviços na Spring Cloud
 
Web Tools Pt Br
Web Tools Pt BrWeb Tools Pt Br
Web Tools Pt Br
 
Microservices
MicroservicesMicroservices
Microservices
 
Containers and microservices orchestration
Containers and microservices orchestrationContainers and microservices orchestration
Containers and microservices orchestration
 
Web tools pt-br
Web tools pt-brWeb tools pt-br
Web tools pt-br
 
Vantagens e desvantagens de uma arquitetura microservices
Vantagens e desvantagens de uma arquitetura microservicesVantagens e desvantagens de uma arquitetura microservices
Vantagens e desvantagens de uma arquitetura microservices
 
Api todo list
Api todo listApi todo list
Api todo list
 
Ruby on Rails 100% na cloud com heroku e outros serviços
Ruby on Rails 100% na cloud com heroku e outros serviçosRuby on Rails 100% na cloud com heroku e outros serviços
Ruby on Rails 100% na cloud com heroku e outros serviços
 

Microservices Python Resiliência Escalabilidade