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!

Upload: others

Post on 13-Oct-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

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