Você está na página 1de 36

Microservices em Python

Como estamos construindo a maior plataforma


Agro do mundo para gestão animal!
Isaac Felisberto de Souza
Engenheiro de Software

Há 20 anos no mundo de
desenvolvimento de
software

50+ só na área de tecnologia!


1 MICROSERVICES

2 PYTHON
VEREMOS
HOJE! 3 PLATAFORMA AGRINESS

4 PYTHON NA PLATAFORMA AGRINESS


MICROSERVICES
O QUE É MICROSERVICES?
Figura postada por
Martin Fowler (2014)

Modelo de arquitetura distribuída com soluções


compostas por pequenos serviços independentes
onde cada um possui uma função ou responsabilidade
bem definida.
Figura do site
da RedHat
COMO O MERCADO TEM
ADOTADO E EVOLUÍDO?
Nos primeiros anos...
➔ Redução acoplamento entre serviços;
MAS
➔ Ferramentas de orquestração;
NOS DIAS DE
HOJE… ➔ Ferramentas de monitoramento;
➔ Facilidade de implantação;
COMEÇAMOS A ➔ Facilidade na geração e uso de logs;
GANHAR ➔ Melhores padrões de comunicação;
MATURIDADE NO ➔ Adaptação dos frameworks;
USO DE ➔ Outras ferramentas em geral (mensageria,
MICROSERVICES api gateway, cache, persistência de dados)
FUTURO
TENDÊNCIA DE ADOÇÃO CADA VEZ MAIOR!

MUITOS
CONTEXTOS SOLUÇÕES
SOLUÇÕES DE ESCALÁVEIS
GRANDE PORTE FaaS
MÚLTIPLOS
PRODUTOS CONTEXTO
DE CLOUD
PYTHON
COMO É VISTO NO MERCADO?
UMA ÓTIMA OPÇÃO PARA:

MUNDO
ACADÊMICO SCRAPING
ANÁLISE DE
DADOS DEVOPS
MACHINE
LEARN
PARA MICROSERVICES,
PYTHON É BOM?
Pequenos
API’s Autenticação
serviços

➔ Django RestFramework ➔ REST ➔ OAuth


➔ Flask ➔ GraphQL ➔ JWT
➔ Falcon ➔ Json ➔ OpenID
➔ Tornado ➔ XML ➔ Saml
➔ Bottle ➔ Swagger

SIM! ORM
Processos
assíncronos e WebHooks
mensageria

➔ SQLALchemy ➔ Celery ➔ Thorn


➔ Django ORM ➔ RabbitMQ ➔ dj-webhooks
➔ Peewee ➔ ActiveMQ ➔ django-rest-hooks
➔ Kafka ➔ PyWebHooks
➔ Durian
PLATAFORMA
AGRINESS
O QUE É
Solução focada em gestão animal,
que visa proporcionar a produtores e cooperativas
uma gestão em tempo real
através de soluções web, mobile, IoT
e integrações de dados com soluções ERPs.
EVOLUÇÃO
De um software em Delphi até uma Arquitetura com microservices em PYTHON!
PRODUTORES COOPERATIVAS TÉCNICOS SISTEMAS DE
TERCEIROS

DADOS

PLATAFORMA AGRINESS

Agriness Agriness S4 Agriness Agriness CORP Agriness PRESENCE


T4 M4, P4

INTEGRAÇÃO
DE DADOS

DADOS DADOS OUTRAS DADOS


SUÍNOS LEITE ESPÉCIES CONSOLIDADOS
325+ 1.000+ 10+
clientes usuários países

ALGUNS
NÚMEROS
1.500+ 1.5mi+ 12+
eventos de requests deploys
animais por dia por dia por dia
COMPOSIÇÃO DE SERVIÇOS DA
PLATAFORMA ATUALMENTE
AMADURECIMENTO DA
ARQUITETURA
PYTHON NA
PLATAFORMA
AGRINESS
PYTHON É A STACK PRINCIPAL
PRINCIPAIS FRAMEWORKS E FERRAMENTAS

FLASK
GUNICORN CELERY DJANGO DJANGO
ORM

DJANGO REST
BLACK
FRAMEWORK
COVERAGE

PYTEST ROBOT
FLAKE8
BOAS PRÁTICAS:

➔ SERVIÇOS MAIS INDEPENDENTES


POSSÍVEL
ALGUNS
➔ SERVIÇOS ORIENTADOS A
APRENDIZADOS EVENTOS

➔ PUBLICAÇÃO AS API’S ATRAVÉS


DE UM API GATEWAY
NÃO BASTA APENAS
CRIAR SERVIÇOS ➔ ATENÇÃO AO EXCESSO DE
REQUISIÇÕES
PEQUENOS
➔ UMA BASE É ACESSADA POR UM
ÚNICO MICROSERVICE
Integração Deploy Cloud
Contínua Contínuo Provider

MICROSERVICES
TAMBÉM
REQUER... Documentação Comunicação
Monitoramento
de API’s entre pessoas
DESAFIOS!
TESTES
DEPENDÊNCIAS
ENTRE
ESCALAR
MICROSERVICES
VERSIONAMENTO

PADRONIZAÇÃO
CONSISTÊNCIA MENOR
DADOS COMPLEXIDADE
Mas…
Python
Python não escala. aguenta!!!
Python não é
enterprise.
Obrigado! Isaac Felisberto de Souza
isaacsouza@gmail.com

linkedin.com/in/isaacfsouza

Dúvidas?

Você também pode gostar