SlideShare uma empresa Scribd logo
1 de 44
Baixar para ler offline
Arquitetura
Serverless para
Machine
Learning
Felipe Pereira
Felipe Pereira
https://www.linkedin.com/in/pereira-felipe/
https://github.com/pereiralabs/
● Professor
● Desenvolvedor
● DBA
● Arquiteto de Dados
● Data Engineer
● Data Scientist
A Jornada
Arquitetura do Sistema
Serviço de Machine Learning
Interface Avaliação e
Controle de Fluxo
Execução Retorno
Serviço de Machine Learning
Interface
Avaliação e
Controle de Fluxo
Execução Retorno
-REST
-Pub/Sub
-Lambda
-Airflow
-Step Functions
-Lambda
-Spark/EMR
-Sagemaker
-REST
-Pub/Sub
Entrada de
Dados
● API Gateway
● SNS + SQS
API Gateway
API Gateway
Swagger
SNS + SQS
SNS
SQS
Pricing
API Gateway:
● Free tier:
○ 1M API Calls
○ 12 meses
● Preço normal:
○
SNS:
● Requests:
○ 1M requests (free tier)
○ $0.50 / 1M
● Deliveries:
○ SQS/Lambda: grátis e sem limites
○ HTTP: Free tier (100K) | $0.60 / 1M
Workflow ● Airflow
● Step Functions
Airflow
Airflow
Airflow
Step Functions
Step Functions
Pricing
Airflow:
● Databases:
○ SQLite (padrão)
○ MySQL (recomendado)
○ PostgreSQL (com psycop2)
● Server
○ HTTP
● Pricing:
○ Como é instalado on-premise, depende de
como as tasks serão executadas. Tasks
pesadas, rodando localmente, precisarão de
mais recursos. O Airflow em si é leve,
podendo ser executado em EC2s menores.
Step Functions:
● Free tier:
○ 4.000 state transitions / mês
○ Sem limitação de 12 meses
● Preço normal:
○ $0.025 / 1K state transitions
Processamento
e
Predição
● Lambda + SciKit
● EMR
● Sagemaker
Lambda
Slide concedido por Felipe Santos - https://www.linkedin.com/in/felipe-santos-77854123/
Multi-threaded Data Science
EMR
EMR
Sagemaker
Sagemaker
Sagemaker
Pricing
Architecture Environment EC2 Type
Hours per
day
Hours per week
$ / Hour
(3 instances)
Monthly cost
EMR with
Lambda
Development 3 x r5.2xlarge 8 40 16,89 $ 2.972,64
Train 3 x r5.2xlarge 0 0 16,89 0
Predict Lambda 1 7 0,176 $ 5,28
Total 9 47 $ 2.977,92
Architecture Environment EC2 Type
Hours per
day
Hours per week $ / Hour Monthly cost
AWS
Sagemaker
Development ml.t2.xlarge 8 40 2,42 $ 425,92
Train
ml.m4.10xlarg
e
2 10 9,80 $ 431,20
Predict ml.m4.xlarge 24 168 7,28 $ 5.241,60
Total 34 7 7,28 $ 6.098,72
Architecture Environment EC2 Type
Hours per
day
Hours per week
$ / Hour
(c/ EBS)
Monthly cost
Lambda with
Scikit-Learn
Development r5.4xlarge 8 40 6,008 $ 1.057,40
Train 3 x r5.2xlarge 0 0 5,63 0
Predict Lambda 1 7 0
Total 9 47 $ 1.057,40
Pricing
Retorno de
Resultados
● REST
● SNS/SQS
● Banco de dados
Retorno de Resultados
REST ou SNS/SQS
API Gateway:
● Payload de 10 MB (por request)
● https://docs.aws.amazon.com/apigateway/latest/d
eveloperguide/limits.html
SNS/SQS:
● Payload de 256 KB (por mensagem)
● https://docs.aws.amazon.com/sns/latest/dg/sns-la
rge-payload-raw-message-delivery.html
(REST ou SNS/SQS) + Banco de Dados
Positivo:
● Retorna apenas uma flag de status
● Resultado no DB
● “Payload infinito”
Negativo:
● Acoplamento maior dos serviços
Model Health
Model Health
● Model Health (Acurácia, Precision, Recall, F1-Score, etc)
● Como calcular?
Model Health
● Model Health (Acurácia, Precision, Recall, F1-Score, etc)
● Como calcular?
Model Health
● Model Health (Acurácia, Precision, Recall, F1-Score, etc)
● Como calcular?
Visão de Produto
Produto
● Modelo de Machine Learning
● Data Pipeline (Ingestão, Transformação, Predição, Retorno)
● Case Management
● Feedback para o modelo (False Positive e False Negative)
● Integração com sistemas/serviços
Pessoas e Papéis
Pessoas e Papéis
● Product Owner - Backlog
● Data Engineer - Data Pipeline
● Data Scientist - ML Model
● Quality Assurance Analyst - Test
● DevOps - Deploy
Considerações Finais
● Planejamento de custos DENTRO da nuvem
○ Diferentes possibilidades
○ Diferentes preços
○ Diferentes arquiteturas
● Planejamento de custos ENTRE nuvens
○ Como isto influencia o projeto
○ Como isto influencia a empresa
○ Como isto influencia o cliente
● AWS Well Architected
○ https://aws.amazon.com/architecture/well-architected/
○
Obrigado!
https://www.linkedin.com/in/pereira-felipe/
https://github.com/pereiralabs/

Mais conteúdo relacionado

Semelhante a Serverless ML Arquitetura

Oracle e SQL Server na prática mitos, semelhanças e diferenças
Oracle e SQL Server na prática mitos, semelhanças e diferençasOracle e SQL Server na prática mitos, semelhanças e diferenças
Oracle e SQL Server na prática mitos, semelhanças e diferençasLeonardo Pedroso Costa
 
Apache traffic server uma alternativa ao squid para web caches - fisl 14
Apache traffic server  uma alternativa ao squid para web caches - fisl 14Apache traffic server  uma alternativa ao squid para web caches - fisl 14
Apache traffic server uma alternativa ao squid para web caches - fisl 14Heitor Ganzeli
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
 
Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infosimples
 
Rio Cloud Computing Meetup 25/01/2017 - Lançamentos do AWS re:Invent 2016
Rio Cloud Computing Meetup 25/01/2017 - Lançamentos do AWS re:Invent 2016Rio Cloud Computing Meetup 25/01/2017 - Lançamentos do AWS re:Invent 2016
Rio Cloud Computing Meetup 25/01/2017 - Lançamentos do AWS re:Invent 2016Filipe Barretto
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaConstruindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaAmazon Web Services LATAM
 
GraphQL na GetNinjas (2017-09-20)
GraphQL na GetNinjas (2017-09-20)GraphQL na GetNinjas (2017-09-20)
GraphQL na GetNinjas (2017-09-20)Bruno Soares
 
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...Amazon Web Services LATAM
 
Workshop Hands-On APIX 2018 - Trilha Básica
Workshop Hands-On APIX 2018 - Trilha BásicaWorkshop Hands-On APIX 2018 - Trilha Básica
Workshop Hands-On APIX 2018 - Trilha BásicaSensedia
 
Data center MCSBRC2010-slides.pdf
Data center MCSBRC2010-slides.pdfData center MCSBRC2010-slides.pdf
Data center MCSBRC2010-slides.pdfssuser1198af
 
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)Fabiano Weimar
 
Docker SP - Orquestrando docker via Marathon e Mesos na Konker
Docker SP - Orquestrando docker via Marathon e Mesos na KonkerDocker SP - Orquestrando docker via Marathon e Mesos na Konker
Docker SP - Orquestrando docker via Marathon e Mesos na KonkerAndré Rocha
 
Desvendando a Plataforma de Serviços Windows Azure
Desvendando a Plataforma de Serviços Windows AzureDesvendando a Plataforma de Serviços Windows Azure
Desvendando a Plataforma de Serviços Windows AzureLucasRomao
 
Function as a Service: IT forum expo 2017
Function as a Service: IT forum expo 2017Function as a Service: IT forum expo 2017
Function as a Service: IT forum expo 2017Igor Rosa Macedo
 
Qconsp 2016 escalando uma plataforma de e-mail transacional- aprendizado da...
Qconsp 2016   escalando uma plataforma de e-mail transacional- aprendizado da...Qconsp 2016   escalando uma plataforma de e-mail transacional- aprendizado da...
Qconsp 2016 escalando uma plataforma de e-mail transacional- aprendizado da...fabio perrella
 
Escalando uma plataforma de e-mail transacional- aprendizado das trincheiras
Escalando uma plataforma de e-mail transacional- aprendizado das trincheirasEscalando uma plataforma de e-mail transacional- aprendizado das trincheiras
Escalando uma plataforma de e-mail transacional- aprendizado das trincheirasCelso Crivelaro
 
Aplicações de tempo real com Meteor.js
Aplicações de tempo real com Meteor.jsAplicações de tempo real com Meteor.js
Aplicações de tempo real com Meteor.jsRafael Sales
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaConstruindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaAmazon Web Services LATAM
 
REST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdfREST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdfBrunoAlbuquerque864673
 

Semelhante a Serverless ML Arquitetura (20)

Oracle e SQL Server na prática mitos, semelhanças e diferenças
Oracle e SQL Server na prática mitos, semelhanças e diferençasOracle e SQL Server na prática mitos, semelhanças e diferenças
Oracle e SQL Server na prática mitos, semelhanças e diferenças
 
Apache traffic server uma alternativa ao squid para web caches - fisl 14
Apache traffic server  uma alternativa ao squid para web caches - fisl 14Apache traffic server  uma alternativa ao squid para web caches - fisl 14
Apache traffic server uma alternativa ao squid para web caches - fisl 14
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis Paulino
 
Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)
 
Rio Cloud Computing Meetup 25/01/2017 - Lançamentos do AWS re:Invent 2016
Rio Cloud Computing Meetup 25/01/2017 - Lançamentos do AWS re:Invent 2016Rio Cloud Computing Meetup 25/01/2017 - Lançamentos do AWS re:Invent 2016
Rio Cloud Computing Meetup 25/01/2017 - Lançamentos do AWS re:Invent 2016
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaConstruindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS Lambda
 
GraphQL na GetNinjas (2017-09-20)
GraphQL na GetNinjas (2017-09-20)GraphQL na GetNinjas (2017-09-20)
GraphQL na GetNinjas (2017-09-20)
 
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
 
Workshop Hands-On APIX 2018 - Trilha Básica
Workshop Hands-On APIX 2018 - Trilha BásicaWorkshop Hands-On APIX 2018 - Trilha Básica
Workshop Hands-On APIX 2018 - Trilha Básica
 
Data center MCSBRC2010-slides.pdf
Data center MCSBRC2010-slides.pdfData center MCSBRC2010-slides.pdf
Data center MCSBRC2010-slides.pdf
 
De 1 a 1.000.00 de usuários
De 1 a 1.000.00 de usuáriosDe 1 a 1.000.00 de usuários
De 1 a 1.000.00 de usuários
 
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
 
Docker SP - Orquestrando docker via Marathon e Mesos na Konker
Docker SP - Orquestrando docker via Marathon e Mesos na KonkerDocker SP - Orquestrando docker via Marathon e Mesos na Konker
Docker SP - Orquestrando docker via Marathon e Mesos na Konker
 
Desvendando a Plataforma de Serviços Windows Azure
Desvendando a Plataforma de Serviços Windows AzureDesvendando a Plataforma de Serviços Windows Azure
Desvendando a Plataforma de Serviços Windows Azure
 
Function as a Service: IT forum expo 2017
Function as a Service: IT forum expo 2017Function as a Service: IT forum expo 2017
Function as a Service: IT forum expo 2017
 
Qconsp 2016 escalando uma plataforma de e-mail transacional- aprendizado da...
Qconsp 2016   escalando uma plataforma de e-mail transacional- aprendizado da...Qconsp 2016   escalando uma plataforma de e-mail transacional- aprendizado da...
Qconsp 2016 escalando uma plataforma de e-mail transacional- aprendizado da...
 
Escalando uma plataforma de e-mail transacional- aprendizado das trincheiras
Escalando uma plataforma de e-mail transacional- aprendizado das trincheirasEscalando uma plataforma de e-mail transacional- aprendizado das trincheiras
Escalando uma plataforma de e-mail transacional- aprendizado das trincheiras
 
Aplicações de tempo real com Meteor.js
Aplicações de tempo real com Meteor.jsAplicações de tempo real com Meteor.js
Aplicações de tempo real com Meteor.js
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaConstruindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS Lambda
 
REST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdfREST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdf
 

Mais de Felipe Santos

Como falar em público?
Como falar em público?Como falar em público?
Como falar em público?Felipe Santos
 
Como escolher qual banco de dados utilizar?
Como escolher qual banco de dados utilizar?Como escolher qual banco de dados utilizar?
Como escolher qual banco de dados utilizar?Felipe Santos
 
Agile DBA. Meu DBA não é ágil, e agora?
Agile DBA. Meu DBA não é ágil, e agora?Agile DBA. Meu DBA não é ágil, e agora?
Agile DBA. Meu DBA não é ágil, e agora?Felipe Santos
 
Palestra Google Cloud Spanner
Palestra Google Cloud SpannerPalestra Google Cloud Spanner
Palestra Google Cloud SpannerFelipe Santos
 
PgDay Campinas 2016 - PgBouncer
PgDay Campinas 2016 - PgBouncerPgDay Campinas 2016 - PgBouncer
PgDay Campinas 2016 - PgBouncerFelipe Santos
 
Automatização de Infraestrutura com Jenkins
Automatização de Infraestrutura com JenkinsAutomatização de Infraestrutura com Jenkins
Automatização de Infraestrutura com JenkinsFelipe Santos
 

Mais de Felipe Santos (6)

Como falar em público?
Como falar em público?Como falar em público?
Como falar em público?
 
Como escolher qual banco de dados utilizar?
Como escolher qual banco de dados utilizar?Como escolher qual banco de dados utilizar?
Como escolher qual banco de dados utilizar?
 
Agile DBA. Meu DBA não é ágil, e agora?
Agile DBA. Meu DBA não é ágil, e agora?Agile DBA. Meu DBA não é ágil, e agora?
Agile DBA. Meu DBA não é ágil, e agora?
 
Palestra Google Cloud Spanner
Palestra Google Cloud SpannerPalestra Google Cloud Spanner
Palestra Google Cloud Spanner
 
PgDay Campinas 2016 - PgBouncer
PgDay Campinas 2016 - PgBouncerPgDay Campinas 2016 - PgBouncer
PgDay Campinas 2016 - PgBouncer
 
Automatização de Infraestrutura com Jenkins
Automatização de Infraestrutura com JenkinsAutomatização de Infraestrutura com Jenkins
Automatização de Infraestrutura com Jenkins
 

Serverless ML Arquitetura