O documento descreve como construir e implantar uma API Django REST Framework no Google Cloud para monitoramento de tanques em uma fazenda, incluindo criação de projeto, banco de dados Cloud SQL, sensor IoT com MicroPython, recepção de dados na API e visualização no Data Studio.
Rodando uma API Com Django Rest Framework no Google Cloud
1. 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
2. O que vamos ver hoje ?
Como
podemos rodar
Python em
Nuvem ?
Caso de uso
em IoT
Construção e
Deploy
7. 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. 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. 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. 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. 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. 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. 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. 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
17. 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
53. 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
54. COMO ACESSAR OS DADOS DO POSTGRES
COM OS DADOS DO BIGQUERY ?