Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima...

36
Microservices em Python Como estamos construindo a maior plataforma Agro do mundo para gestão animal!

Transcript of Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima...

Page 1: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

Microservices em Python

Como estamos construindo a maior plataforma Agro do mundo para gestão animal!

Page 2: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

Isaac Felisberto de SouzaEngenheiro de Software

Há 20 anos no mundo de desenvolvimento de

software

50+ só na área de tecnologia!

Page 3: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

VEREMOS HOJE!

MICROSERVICES1

PYTHON2

PLATAFORMA AGRINESS3

PYTHON NA PLATAFORMA AGRINESS4

Page 4: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

MICROSERVICES

Page 5: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

O QUE É MICROSERVICES?

Page 6: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

Modelo de arquitetura distribuída com soluçõescompostas por pequenos serviços independentes onde cada um possui uma função ou responsabilidade bem definida.

Figura postada porMartin Fowler (2014)

Page 7: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

Figura do site da RedHat

Page 8: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

COMO O MERCADO TEM ADOTADO E EVOLUÍDO?

Page 9: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

Nos primeiros anos...

Page 10: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

MAS NOS DIAS DE

HOJE…

COMEÇAMOS A GANHAR

MATURIDADE NO USO DE

MICROSERVICES

➔ Redução acoplamento entre serviços;

➔ Ferramentas de orquestração;

➔ Ferramentas de monitoramento;

➔ Facilidade de implantação;

➔ Facilidade na geração e uso de logs;

➔ Melhores padrões de comunicação;

➔ Adaptação dos frameworks;

➔ Outras ferramentas em geral (mensageria, api gateway, cache, persistência de dados)

Page 11: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

FUTURO

Page 12: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

TENDÊNCIA DE ADOÇÃO CADA VEZ MAIOR!

SOLUÇÕES DE GRANDE PORTE

MUITOSCONTEXTOS

MÚLTIPLOS PRODUTOS

SOLUÇÕES ESCALÁVEIS

CONTEXTO DE CLOUD

FaaS

Page 13: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

PYTHON

Page 14: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

COMO É VISTO NO MERCADO?

Page 15: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

UMA ÓTIMA OPÇÃO PARA:

ANÁLISE DE DADOS

MUNDO ACADÊMICO

MACHINE LEARN

SCRAPING

DEVOPS

Page 16: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

PARA MICROSERVICES, PYTHON É BOM?

Page 17: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

SIM!

➔ Django RestFramework➔ Flask➔ Falcon➔ Tornado➔ Bottle

Pequenos serviços

➔ REST➔ GraphQL➔ Json➔ XML➔ Swagger

API’s

➔ Celery➔ RabbitMQ➔ ActiveMQ➔ Kafka

Processos assíncronos e mensageria

➔ SQLALchemy➔ Django ORM➔ Peewee

ORM

➔ OAuth➔ JWT➔ OpenID➔ Saml

Autenticação

➔ Thorn➔ dj-webhooks➔ django-rest-hooks➔ PyWebHooks➔ Durian

WebHooks

Page 18: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

PLATAFORMA AGRINESS

Page 19: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

O QUE É

Page 20: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

Solução focada em gestão animal, que visa proporcionar a produtores e cooperativas uma gestão em tempo realatravés de soluções web, mobile, IoTe integrações de dados com soluções ERPs.

Page 21: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

EVOLUÇÃO

Page 22: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

PLATAFORMA AGRINESS

PRODUTORES

DADOSCONSOLIDADOS

DADOSSUÍNOS

DADOSLEITE

INTEGRAÇÃO DE DADOS

Agriness S4 Agriness CORP

OUTRASESPÉCIES

Agriness PRESENCEAgriness M4, P4

Agriness T4

SISTEMAS DE TERCEIROS

DADOS

De um software em Delphi até uma Arquitetura com microservices em PYTHON!

TÉCNICOSCOOPERATIVAS

Page 23: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

ALGUNS NÚMEROS

325+ clientes

1.000+ usuários

10+ países

1.5mi+ requests por dia

1.500+ eventos de animais por dia

12+ deploys por dia

Page 24: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

COMPOSIÇÃO DE SERVIÇOS DA PLATAFORMA ATUALMENTE

Page 25: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...
Page 26: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

AMADURECIMENTO DA ARQUITETURA

Page 27: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...
Page 28: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

PYTHON NA PLATAFORMA

AGRINESS

Page 29: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

PYTHON É A STACK PRINCIPAL

Page 30: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...
Page 31: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

COVERAGEBLACK

ROBOTPYTEST

FLASK

PRINCIPAIS FRAMEWORKS E FERRAMENTAS

DJANGO ORM

CELERY

DJANGO REST FRAMEWORK

FLAKE8

DJANGOGUNICORN

Page 32: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

ALGUNS APRENDIZADOS

NÃO BASTA APENAS CRIAR SERVIÇOS PEQUENOS

BOAS PRÁTICAS:

➔ SERVIÇOS MAIS INDEPENDENTES POSSÍVEL

➔ SERVIÇOS ORIENTADOS A EVENTOS

➔ PUBLICAÇÃO AS API’S ATRAVÉS DE UM API GATEWAY

➔ ATENÇÃO AO EXCESSO DE REQUISIÇÕES

➔ UMA BASE É ACESSADA POR UM ÚNICO MICROSERVICE

Page 33: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

MICROSERVICES TAMBÉM REQUER...

Integração Contínua

Deploy Contínuo

Documentaçãode API’sMonitoramento

Cloud Provider

Comunicaçãoentre pessoas

Page 34: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

MENOR COMPLEXIDADE

TESTES

DESAFIOS!

DEPENDÊNCIASENTRE

MICROSERVICES

PADRONIZAÇÃOCONSISTÊNCIA

DADOS

ESCALAR

VERSIONAMENTO

Page 35: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

Mas…

Python não escala.

Python não é enterprise.

Python aguenta!!!

Page 36: Microservices em Python - thedevconf.s3-sa-east-1 ...... · como É visto no mercado? uma Ótima opÇÃo para: anÁlise de dados mundo acadÊmico machine learn scraping devops. ...

Obrigado!

Dúvidas?

Isaac Felisberto de [email protected]

linkedin.com/in/isaacfsouza