SlideShare uma empresa Scribd logo
1 de 66
Baixar para ler offline
RODANDO UMA API COM
DJANGO REST FRAMEWORK
NO GOOGLE CLOUD
Alvaro Viebrantz
Google Developer Expert for IoT and Product Engineer at Leverege
aviebrantz.com
@alvaroviebrantz
O que vamos ver hoje ?
Como
podemos rodar
Python em
Nuvem ?
Caso de uso
em IoT
Construção e
Deploy
3
Disponibilidade Escalabilidade Manutenção
Gastar Menos
4
COMO PODEMOS RODAR
PYTHON EM NUVEM ?
6
IaaS
Infrastructure as a Service
PaaS
Platform as a Service
SaaS
Software as a Service
ProvedorVocê
7
IaaS
Infrastructure as a Service
On Premise
PaaS
Platform as a Service
SaaS
Software as a Service
•Escalabilidade
•Load Balancer
•Aplicação
•Dados
•Runtime
•Middleware
•SO
•Virtualização
•Servidores
•Storage
•Redes
•Escalabilidade
•Load Balancer
•Aplicação
•Dados
•Runtime
•Middleware
•SO
•Virtualização
•Servidores
•Storage
•Redes
•Escalabilidade
•Load Balancer
•Aplicação
•Dados
•Runtime
•Middleware
•SO
•Virtualização
•Servidores
•Storage
•Redes
•Aplicação
•Dados
•Runtime
•Middleware
•SO
•Virtualização
•Servidores
•Storage
•Redes
Gerenciado por você
Gerenciado magicamente
8
IaaS - Infraestrutura como serviço
Requer mais configurações e gestão
• Basicamente uma maquina virtual na nuvem
• Google Cloud Compute Engine e AWS EC2
• Abrange também armazenamento e redes
• Não é tão simples de escalar automaticamente
9
PaaS - Plataforma como serviço
Bem rápido e fácil de começar
• Ambiente já pré configurado com a linguagem
que você quer
• Google App Engine e AWS Elastic Beanstalk
• Algumas vezes tem restrição de ambiente, não
podendo instalar muitas coisas extras e sem
permissão de escritas em sistema de arquivos
• Possui alguns serviços extras como Logs,
Cache, Filas de Tarefas, etc
app.yaml
10
IaaS
Infrastructure as a Service
CaaS
Container/Cluster as a
Service
PaaS
Platform as a Service
FaaS/Serverless
Function as a Service
ProvedorVocê
11
CaaS - Containers como Serviço
Orquestração de containers
• Kubernetes como serviço
• Google Kubernetes Engine
• Manter containers manualmente não faz muito
sentido
• Escalar nós no cluster e containers para cada
instância da aplicação
• Maior controle sobre sua infraestrutura e
escalabilidade
12
Cloud Functions
Ambiente Serverless no Google
• Serveless computing
• Funções auto escaláveis
• As funções podem ser executadas
baseadas em eventos
• Filas de Mensageria
• Arquivos
• HTTP
• Cobrança por chamada de função
NODEJS
PYTHON
GOLANG
13
Cloud Run
Melhor dos dois mundos
• Facilidade de uso do serverless
• Flexibilidade dos Containers
• Acesso via HTTP e gRPC
• Pode rodar de varias formas
• Ambiente todo gerenciado - Cloud Run
Managed
• Seu próprio Cluster Kubernetes
• Cloud Run for GKE e for Anthos
14
Cloud Functions vs Cloud Run
Por que escolher um ou outro ?
• Cloud Run processa mais de uma chamada por
instância
• Cloud Functions inicia uma nova instância para cada
chamada
• Problemas com Cold Boot
• Com framework maiores, isso pode ser um
problema
• Com Django é melhor usar Cloud Run por conta
disso
VAMOS VER ISSO
NA PRÁTICA
NO CONTEXTO DE IOT
MONITORAMENTO
DE TANQUES EM
UMA FAZENDA
17
Monitoramento de Tanques
Nosso projeto a ser construido
• Registro de Fazendas, Tanques e Sensores
• Manipulação/CRUD dos modelos base
• Via API Rest e Interface de Administração
• API para recepção de telemetria
• Dados armazenados no BigQuery
• Visualização dos dados
18
Arquitetura do Projeto
CRIANDO PROJETO
DJANGO REST FRAMEWORK
Criando projeto
models.py
Modelagem
Rest APIs base
admin.py
Administração
Rest APIs base
Administração
CRIANDO INFRA NO
GOOGLE CLOUD
Criando projeto
Cloud SQL
Criando banco de dados
Cloud SQL
Criando banco de dados
CONECTANDO AO
BANCO DE DADOS SQL
Cloud SQL Proxy
Permite acesso ao banco localmente
Configurando acesso no projeto
Como usar o Cloud SQL com Django
Rodar migrações e criar usuário
Necessária toda vez que mudanças ocorrerem
PUBLICAR O PROJETO
NO CLOUD RUN
Gerar Imagem do nosso Container
Usar o Cloud Build para fazer isso remotamente
Gerar Imagem do nosso Container
Usar o Cloud Build para fazer isso remotamente
Gerar Imagem do nosso Container
Usar o Cloud Build para fazer isso remotamente
Subir o container no Cloud Run
Deploy facil e com escalabilidade automatica
Subir o container no Cloud Run
Deploy fácil e com escalabilidade automatica
DEMO #1
APIS DE TELEMETRIA
COM BIGQUERY
DATA WAREHOUSE DE BAIXO CUSTO
APPEND ONLY - DADOS IMUTÁVEIS
INTERFACE SQL
FREE TIER - 1TB ANALISADO E 10GB DE DADOS
PAGUE POR USO
Recepção dos Dados
Por onde o nosso sensor vai mandar os dados
Recepção dos Dados
Por onde o nosso sensor vai mandar os dados
SENSOR DE NIVEL
COM MICROPYTHON
48
ESP8266 👑
+ Ecossistema Arduino
+ Wifi embutido
ESP32 👑
+ Ecossistema Arduino
+ Wifi embutido
+ Bluetooth
+ Dual Core!!!
2$ 7$
Hardware - Micro controladores (MCU)
Como prototipar hardware para IoT
49
Medir nivel do tanque
Diferença entre a altura do tanque e o nivel do material dentro dele
Sensor Ultrasonico
HC-RS04
Loop Principal do Sensor
O dispositivo acorda, conecta na rede WiFi, faz a leitura, envia os dados e dorme
novamente
DEMO #2
VISUALIZAÇÃO DOS DADOS
COM DATA STUDIO
53
Google Data Studio
Obter insight dos dados armazenados
• Ferramenta para visualização de
dados
• Diversas fontes de dados
• SQL, Google Analytics, BigQuery,
Arquivos CSV, etc
• User friendly
• Gratuito
COMO ACESSAR OS DADOS DO POSTGRES
COM OS DADOS DO BIGQUERY ?
BIGQUERY FEDERATED SOURCES
56
Conectar Cloud SQL e BigQuery
57
Conectar Cloud SQL e BigQuery
58
Conectar Cloud SQL e BigQuery
59
Conectar Cloud SQL e BigQuery
60
Dashboard no Data Studio
DEMO #3
COMO COMEÇAR ?
ESSA MESMA ARQUITETURA PODE
SER APLICADA A OUTROS CONTEXTOS
Blog posts
Tutoriais com arquitetura completa de IoT e Google Cloud
Blog posts
Tutoriais com arquitetura completa de IoT e Google Cloud
OBRIGADO!
AVIEBRANTZ.COM
Alvaro Viebrantz
Google Developer Expert for IoT and Product Engineer at Leverege
aviebrantz.com
@alvaroviebrantz

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Doxygen
DoxygenDoxygen
Doxygen
 
Github
GithubGithub
Github
 
Intro to Github Actions @likecoin
Intro to Github Actions @likecoinIntro to Github Actions @likecoin
Intro to Github Actions @likecoin
 
Git & Github for beginners
Git & Github for beginnersGit & Github for beginners
Git & Github for beginners
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
 
Version control system and Git
Version control system and GitVersion control system and Git
Version control system and Git
 
What is Git | What is GitHub | Git Tutorial | GitHub Tutorial | Devops Tutori...
What is Git | What is GitHub | Git Tutorial | GitHub Tutorial | Devops Tutori...What is Git | What is GitHub | Git Tutorial | GitHub Tutorial | Devops Tutori...
What is Git | What is GitHub | Git Tutorial | GitHub Tutorial | Devops Tutori...
 
Developing Java EE applications with NetBeans and Payara
Developing Java EE applications with NetBeans and PayaraDeveloping Java EE applications with NetBeans and Payara
Developing Java EE applications with NetBeans and Payara
 
Workshop git para iniciantes
Workshop git para iniciantesWorkshop git para iniciantes
Workshop git para iniciantes
 
Git+github
Git+githubGit+github
Git+github
 
Git
GitGit
Git
 
Introduction to Python programming Language
Introduction to Python programming LanguageIntroduction to Python programming Language
Introduction to Python programming Language
 
Introduction to python programming, Why Python?, Applications of Python
Introduction to python programming, Why Python?, Applications of PythonIntroduction to python programming, Why Python?, Applications of Python
Introduction to python programming, Why Python?, Applications of Python
 
Introduction to python history and platforms
Introduction to python history and platformsIntroduction to python history and platforms
Introduction to python history and platforms
 
Introducing GitLab
Introducing GitLabIntroducing GitLab
Introducing GitLab
 
Introducing GitLab (September 2018)
Introducing GitLab (September 2018)Introducing GitLab (September 2018)
Introducing GitLab (September 2018)
 
Git & GitHub for Beginners
Git & GitHub for BeginnersGit & GitHub for Beginners
Git & GitHub for Beginners
 
Github
GithubGithub
Github
 
Getting started with GitHub Desktop
Getting started with GitHub DesktopGetting started with GitHub Desktop
Getting started with GitHub Desktop
 
github-actions.pdf
github-actions.pdfgithub-actions.pdf
github-actions.pdf
 

Semelhante a Rodando uma API Com Django Rest Framework no Google Cloud

Semelhante a Rodando uma API Com Django Rest Framework no Google Cloud (20)

Arquitetura de IoT na prática com Google Cloud - Join Community 2018
Arquitetura de IoT na prática com Google Cloud - Join Community 2018Arquitetura de IoT na prática com Google Cloud - Join Community 2018
Arquitetura de IoT na prática com Google Cloud - Join Community 2018
 
Cloud Publica Com alta performance, flexível e gerenciável.
Cloud Publica Com alta performance, flexível e gerenciável.Cloud Publica Com alta performance, flexível e gerenciável.
Cloud Publica Com alta performance, flexível e gerenciável.
 
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
 
O que projetos de IoT precisam ?
O que projetos de IoT precisam ?O que projetos de IoT precisam ?
O que projetos de IoT precisam ?
 
Arquitetura de Internet das Coisas usando Google Cloud
Arquitetura de Internet das Coisas usando Google CloudArquitetura de Internet das Coisas usando Google Cloud
Arquitetura de Internet das Coisas usando Google Cloud
 
A Revolução já começou
A Revolução já começouA Revolução já começou
A Revolução já começou
 
Azure e suas vantagens (Palestra 1)
Azure e suas vantagens (Palestra 1) Azure e suas vantagens (Palestra 1)
Azure e suas vantagens (Palestra 1)
 
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
 
Azure @ Rio Cloud Meetup
Azure @ Rio Cloud MeetupAzure @ Rio Cloud Meetup
Azure @ Rio Cloud Meetup
 
Soluções de IoT usando Arduino e Google Cloud
Soluções de IoT usando Arduino e Google CloudSoluções de IoT usando Arduino e Google Cloud
Soluções de IoT usando Arduino e Google Cloud
 
Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.
Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.
Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.
 
Estaleiro o uso de kubernetes no serpro
Estaleiro   o uso de kubernetes no serproEstaleiro   o uso de kubernetes no serpro
Estaleiro o uso de kubernetes no serpro
 
Monitoramento de containers Docker
Monitoramento de containers DockerMonitoramento de containers Docker
Monitoramento de containers Docker
 
Cloud & AWS: Da teoria à prática
Cloud & AWS: Da teoria à práticaCloud & AWS: Da teoria à prática
Cloud & AWS: Da teoria à prática
 
Ufs na nuvem gp 2017-2
Ufs na nuvem   gp 2017-2 Ufs na nuvem   gp 2017-2
Ufs na nuvem gp 2017-2
 
BigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIBigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage API
 
Provocação Konker no 1º hackday FIESP 2016
Provocação Konker no 1º hackday FIESP 2016Provocação Konker no 1º hackday FIESP 2016
Provocação Konker no 1º hackday FIESP 2016
 
Edge computing na prática com IoT, Machine Learning e Google Cloud
Edge computing na prática com IoT, Machine Learning e Google CloudEdge computing na prática com IoT, Machine Learning e Google Cloud
Edge computing na prática com IoT, Machine Learning e Google Cloud
 
Criando soluções de IoT usando Javascript de Ponta a Ponta: do Hardware até a...
Criando soluções de IoT usando Javascript de Ponta a Ponta: do Hardware até a...Criando soluções de IoT usando Javascript de Ponta a Ponta: do Hardware até a...
Criando soluções de IoT usando Javascript de Ponta a Ponta: do Hardware até a...
 
TDC2018SP | Trilha JavaScript - Criando solucoes de IoT usando Javascript de ...
TDC2018SP | Trilha JavaScript - Criando solucoes de IoT usando Javascript de ...TDC2018SP | Trilha JavaScript - Criando solucoes de IoT usando Javascript de ...
TDC2018SP | Trilha JavaScript - Criando solucoes de IoT usando Javascript de ...
 

Mais de Alvaro Viebrantz

Ambiente de CI/CD com Google Cloud
Ambiente de CI/CD com Google CloudAmbiente de CI/CD com Google Cloud
Ambiente de CI/CD com Google Cloud
Alvaro Viebrantz
 

Mais de Alvaro Viebrantz (20)

End to End IoT projects with Zephyr.pdf
End to End IoT projects with Zephyr.pdfEnd to End IoT projects with Zephyr.pdf
End to End IoT projects with Zephyr.pdf
 
Carreira de Desenvolvimento
Carreira de DesenvolvimentoCarreira de Desenvolvimento
Carreira de Desenvolvimento
 
Construindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em GoConstruindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em Go
 
Prototipação em hackathons
Prototipação em hackathonsPrototipação em hackathons
Prototipação em hackathons
 
Building REST APIs using gRPC and Go
Building REST APIs using gRPC and GoBuilding REST APIs using gRPC and Go
Building REST APIs using gRPC and Go
 
TinyML - IoT e Machine Learning
TinyML -  IoT e Machine LearningTinyML -  IoT e Machine Learning
TinyML - IoT e Machine Learning
 
Ambiente de CI/CD com Google Cloud
Ambiente de CI/CD com Google CloudAmbiente de CI/CD com Google Cloud
Ambiente de CI/CD com Google Cloud
 
Big Query - Escalabilidade Infinita para os seus Dados
Big Query  - Escalabilidade Infinita para os seus DadosBig Query  - Escalabilidade Infinita para os seus Dados
Big Query - Escalabilidade Infinita para os seus Dados
 
Edge computing in practice using IoT, Tensorflow and Google Cloud
Edge computing in practice using IoT, Tensorflow and Google CloudEdge computing in practice using IoT, Tensorflow and Google Cloud
Edge computing in practice using IoT, Tensorflow and Google Cloud
 
Iniciando com LoRa, The Things Network e Google Cloud
Iniciando com LoRa, The Things Network e Google CloudIniciando com LoRa, The Things Network e Google Cloud
Iniciando com LoRa, The Things Network e Google Cloud
 
Construindo projetos para o Google Assistant - I/O 2019 Recap São Paulo
Construindo projetos para o Google Assistant - I/O 2019 Recap São PauloConstruindo projetos para o Google Assistant - I/O 2019 Recap São Paulo
Construindo projetos para o Google Assistant - I/O 2019 Recap São Paulo
 
Edge computing na prática com IoT, Machine Learning e Google Cloud
Edge computing na prática com IoT, Machine Learning e Google CloudEdge computing na prática com IoT, Machine Learning e Google Cloud
Edge computing na prática com IoT, Machine Learning e Google Cloud
 
Construindo projetos com Google Assistant e IoT
Construindo projetos com Google Assistant e IoTConstruindo projetos com Google Assistant e IoT
Construindo projetos com Google Assistant e IoT
 
Explorando Go em Ambiente Embarcado
Explorando Go em Ambiente EmbarcadoExplorando Go em Ambiente Embarcado
Explorando Go em Ambiente Embarcado
 
Soluções de IoT usando Google Cloud e Firebase
Soluções de IoT usando Google Cloud e FirebaseSoluções de IoT usando Google Cloud e Firebase
Soluções de IoT usando Google Cloud e Firebase
 
Codelab - Google Cloud IoT Core e MongooseOS - I/O Extended Cuiabá 2018
Codelab - Google Cloud IoT Core e MongooseOS - I/O Extended Cuiabá 2018Codelab - Google Cloud IoT Core e MongooseOS - I/O Extended Cuiabá 2018
Codelab - Google Cloud IoT Core e MongooseOS - I/O Extended Cuiabá 2018
 
Internet das coisas - Conectando seus dispositivos à nuvem de forma inteligente
Internet das coisas - Conectando seus dispositivos à nuvem de forma inteligenteInternet das coisas - Conectando seus dispositivos à nuvem de forma inteligente
Internet das coisas - Conectando seus dispositivos à nuvem de forma inteligente
 
WebUSB e WebBluetooth - Conectando seu Hardware a Web
WebUSB e WebBluetooth - Conectando seu Hardware a WebWebUSB e WebBluetooth - Conectando seu Hardware a Web
WebUSB e WebBluetooth - Conectando seu Hardware a Web
 
Codelab - Actions on Google
Codelab - Actions on GoogleCodelab - Actions on Google
Codelab - Actions on Google
 
From Zero to App - Usando React e Firebase
From Zero to App  - Usando React e Firebase From Zero to App  - Usando React e Firebase
From Zero to App - Usando React e Firebase
 

Rodando uma API Com Django Rest Framework no Google Cloud