SlideShare une entreprise Scribd logo
1  sur  66
Télécharger pour lire hors ligne
ARQUITETURA DE
INTERNET DAS COISAS
COM GOOGLE CLOUD
Alvaro Viebrantz
aviebrantz.com
@alvaroviebrantz
1
Alvaro Viebrantz
Google Developer Expert em Internet das Coisas
Product Engineer at Leverege
Cuiabá - MT
2
aviebrantz.com
@alvaroviebrantz
A Web é gigante hoje
3
Computação Ubiqua
4
5
Pilares em IoT
Exemplo de uma arquitetura no caso de uma pulseiras de exercícios
Coisas Nuvem
Dados Informações e serviços
Gateway
Bluetooth LE WiFi/3G
6
O hardware é apenas o começo
IoT é muito mais que apenas o hardware
7
IoT é serviço
O importante não é o hardware, mas o que você entrega
8
Arquitetura em nuvem para IoT
Quais os componentes necessários ?
Estação meteorológica - Arquitetura de ponta a ponta com Google Cloud
!9
Post pessoal foi para o blog do Google Cloud
10
O que foi utilizado no projeto
Componentes bastante fáceis de serem encontrados
Wemos D1 Mini

ESP8266
DHT11
Sensor de Temp e Umidade
11
Esquemático 🔥
🐈🐈🐈🐈🐈
12
Programação - Micro controladores (MCU)
Como desenvolver hardware para IoT
• C/C++
• MicroPython
• Lua
• Javascript
13
Programação - MongooseOS
Sistema Operacional para IoT
• Provisionamento e configuração
• Conector para diversas nuvens
• Google Cloud, Azure, AWS, IBM,
MQTT Genérico
• Javascript para prototipação
• Apache 2.0
• Mudança recente
Como receber dados
14
Opções gerenciadas para recebimento de dados
15
Cloud IoT Core
Serviço gerenciado global para conectar e gerenciar de forma segura dispositivos
Protocol Bridge

Comunicação
Gerenciamento de dispositivos
16
Cloud IoT Core - Gerenciamento
Provisionar dispositivos e controle individual
17
Cloud IoT Core - Gerenciamento
Provisionar dispositivos e controle individual
18
Cloud IoT Core - Gerenciamento
Controle individual dos dispositivos
19
Cloud IoT Core - Gerenciamento
Provisionar dispositivos e controle individual
• APIs para manipulação dos dispositivos e provisionamento
• CRUD dos dispositivos
• Possibilita automação
20
Cloud IoT Core - Comunicação
Via protocolos conhecidos - MQTT e HTTP
• Diferenças entre MQTT e HTTP
• MQTT permite fazer subscrição das mensagens recebidas
• HTTP tem que ficar buscando de forma explicita
• MQTT é mais leve e trafega menos dados na rede, porém fica conectado o tempo todo
• Comunicação Bidirecional
• Existem algumas restrições nisso
• Dados só podem ser enviados pelo dispositivo como telemetry ou state messages
• Token gerado a partir dos certificados digitais
• Chaves privada no dispositivo
• Chave pública cadastrada no Google Cloud
• Formato bem conhecido de autorização - RFC 7519
• Algoritmos suportados para criptografia
• ES256 - ECDSA e SHA-256
• RS256 - RSA e SHA-256
• Devem expirar em 1 hora e tem tolerância de 10 min com o Time Server do Google
21
Cloud IoT Core - Comunicação
Autenticação/Autorização usando JSON Web Token (JWT)
22
Cloud IoT Core - Comunicação
Autenticação/Autorização via HTTP
• Para chamadas HTTP deve ser colocado no Header
• Para obter configurações:
https://cloudiotdevice.googleapis.com/v1/projects/{project-id}/locations/{cloud-region}/
registries/{registry-id}/devices/{deviceid}/config?local_version={VERSION}
23
Cloud IoT Core - Comunicação
Autenticação/Autorização via HTTP
• Para enviar dados:
https://cloudiotdevice.googleapis.com/v1/projects/{project-id}/locations/{cloud-region}/
registries/{registry-id}/devices/{deviceid}:publishEvent
24
Cloud IoT Core - Comunicação
Parâmetros de Autenticação/Autorização via MQTT
• Host: mqtt.googleapis.com:8883
• User: vazio (não é verificado)
• Pass: token JWT
• Client ID:
projects/{project-id}/locations/{cloud-region}/registries/{registry-id}/devices/{device-id}
devices/{deviceid}/config
devices/{deviceid}/events
devices/{deviceid}/state
Dispositivo
SUB PUB
PUB
25
Provisionamento com MongooseOS e Cloud IoT Core
Associando o hardware ao projeto no Google Cloud
• O MongooseOS consegue fazer isso automagicamente.
• Obter o ID do Device e cadastra-lo no Cloud IoT Core.
• Gerar par de certificados, associar no GCloud a chave pública e gravar no device a chave
privada.
• Configurar endpoint MQTT no device para usar o broker do Cloud IoT Core
• Fazer todo o trabalho de autenticação usando JWT
26
Cloud PubSub
Espinha dorsal do Google Cloud. Serviço de Mensageria
• Gerenciado pelo Google
• Escalabilidade automática
• Garantia de entrega
• Conectado com muitos produtos 

do Google Cloud
We need a database
27
Opções com alta escalabilidade e voltados para BigData
28
BigQuery
Opções para o armazenamento massivo de dados
• Data warehouse de baixo custo
• Gerenciado pelo Google e
escalabilidade automática
• Interface SQL ANSI de consulta e
suporte a vários softwares de BI no
mercado
• Append Only - Dados imutáveis
• Gratuito até 1TB por mês analisado e
10GB de dados
29
Firebase Realtime Database
Armazenamento e sincronização em tempo real
• Dados em forma de árvore
• Sincronização em tempo real entre os
clientes
• SDK para várias linguagens
• O Firebase possui todo um
ecossistema de produtos voltado a
desenvolvimento de apps
Como processar os dados
30
Opções com gerenciadas para processamento de dados
31
Cloud Dataflow
• Baseado no projeto Apache Beam
• SDK em Python e Java
• Workers recebendo dados via PubSub
• Podem rodar em uma maquina virtual na nuvem
• Cloud Compute Engine
• Kubernetes Engine
• Não é tão simples de escalar automaticamente
• Pode ser feito em qualquer linguagem
32
Faça você mesmo / Compute Engine
Crie uma máquina virtual e processo os dados você mesmo
Develop Grow
Functions
35
Cloud Functions ou Firebase Cloud Functions
Opções serverless para o processamento e ingestão dos dados
36
Firebase Cloud Functions
Função que reage a dados sendo recebidos via Cloud PubSub e armazena no Firebase
37
Firebase Cloud Functions
Função que reage a dados sendo recebidos via Cloud PubSub e armazena no Firebase
38
Firebase Cloud Functions
Função que reage a dados sendo recebidos via Cloud PubSub e armazena no Firebase
39
Firebase Cloud Functions
Adicionar filtros dos dados
40
Firebase Cloud Functions
Transformar ou argumentar os dados - Ex: Calcular Ponto de Orvalho
41
Firebase Cloud Functions
Armazenar no BigQuery
42
Firebase Cloud Functions
Armazenar no BigQuery
43
44
Deploy das Firebase Cloud Functions
Apenas rode um simples comando e sua função está online - firebase deploy
Como visualizar e analisar os dados
45
Opções com gerenciadas para analise de dados
46
Cloud DataLab
Obter insight dos dados armazenados
• Baseado no projeto open source Jupyter
Notebook
• Totalmente gerenciado
• Muito usado para DataScience e Machine
Learning em Python
• Analise e visualize os dados
• Gratuito
• Apenas os serviços extras são cobrados
47
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
48
Dashboard no Data Studio
Obter insight dos dados armazenados
49
Demo time

May the demo gods be with us
Estação meteorológica
!50
Relatório com Data Studio e WebApp
Acesse: bit.ly/gcloud-weather-station
51
O que mais posso fazer ?
Essa arquitetura se aplica vários outros casos.
Monitoramento de ativos via GPS e Rede Celular
!52
Outro post pessoal foi para o blog do Google Cloud sobre Arquitetura IoT
Acesse: bit.ly/gcloud-asset
Monitoramento de ativos via GPS e Rede Celular
!53
Outro post pessoal foi para o blog do Google Cloud sobre Arquitetura IoT
• ESP32 + GPS + GSM
• Aqui é mostrado como configurar
remotamente o dispositivo.
• Trocar tempo entre mensagens
• MongooseOS tem suporte à modem GSM de
forma transparente
Acesse: bit.ly/gcloud-asset
54
Firestore
Armazenamento e sincronização em tempo real
• NoSQL orientado a documento
• Mais flexível para fazer consultas e
separar as entidades do que Firebase
• Datastore + Firebase
• Sincronização em tempo real entre os
clientes
• SDK para várias linguagens
!55
Leverege - Monitoramento inteligente de lixeiras na cidade
!56
www.leverege.com/usecases/waste-management-solution
Leverege - Monitoramento inteligente de lixeiras na cidade
!57
www.leverege.com/usecases/waste-management-solution
Leverege - Monitoramento inteligente de lixeiras na cidade
!58
www.leverege.com/usecases/waste-management-solution
Leverege - Monitoramento de inteligente de lixeiras na cidade
!59
Arquitetura do projeto
https://www.leverege.com/usecases/waste-management-solution
Próximo projeto - Work in Progress ⚠ ⚠ ⚠
Como falar com plantas !!!
Google Assistant + Dialogflow + Internet das Coisas
Como começar ?
Codelabs com material oficial
Blog posts
Dois tutoriais com arquitetura completa de IoT e Google Cloud
OBRIGADO
66
Alvaro Viebrantz
aviebrantz.com
@alvaroviebrantz

Contenu connexe

Tendances

IoT Development - Opportunities and Challenges
IoT Development - Opportunities and ChallengesIoT Development - Opportunities and Challenges
IoT Development - Opportunities and ChallengesAsim Rais Siddiqui
 
Iot ble and_beacons_2015_nov28
Iot ble and_beacons_2015_nov28Iot ble and_beacons_2015_nov28
Iot ble and_beacons_2015_nov28Ravikiran HV
 
Extending Bluetooth with Mesh Networking
Extending Bluetooth with Mesh NetworkingExtending Bluetooth with Mesh Networking
Extending Bluetooth with Mesh NetworkingSilicon Labs
 
Pendrive to pendrive data transfer without pc
Pendrive to pendrive data transfer without pcPendrive to pendrive data transfer without pc
Pendrive to pendrive data transfer without pcVishnu Kudumula
 
6Tisch telecom_bretagne_2016
6Tisch telecom_bretagne_20166Tisch telecom_bretagne_2016
6Tisch telecom_bretagne_2016Pascal Thubert
 
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 FirebaseAlvaro Viebrantz
 
Application development for the internet of things
Application development for the internet of thingsApplication development for the internet of things
Application development for the internet of thingsPankesh Patel
 
Google Cloud IoT Core
Google Cloud IoT CoreGoogle Cloud IoT Core
Google Cloud IoT CoreIdo Flatow
 
Internet of Things and its applications
Internet of Things and its applicationsInternet of Things and its applications
Internet of Things and its applicationsPasquale Puzio
 
Introduction to Bluetooth Low Energy
Introduction to Bluetooth Low EnergyIntroduction to Bluetooth Low Energy
Introduction to Bluetooth Low Energyyeokm1
 
Introduction to 6G, prepare now training
Introduction to 6G, prepare now trainingIntroduction to 6G, prepare now training
Introduction to 6G, prepare now trainingTonex
 
Azure IoT Hub: what is it and why we select other solution (production projec...
Azure IoT Hub: what is it and why we select other solution (production projec...Azure IoT Hub: what is it and why we select other solution (production projec...
Azure IoT Hub: what is it and why we select other solution (production projec...Katherine Golovinova
 
Learn How to Develop a Distributed Game of Life with DDS
Learn How to Develop a Distributed Game of Life with DDSLearn How to Develop a Distributed Game of Life with DDS
Learn How to Develop a Distributed Game of Life with DDSReal-Time Innovations (RTI)
 

Tendances (20)

Tizen
TizenTizen
Tizen
 
IoT Development - Opportunities and Challenges
IoT Development - Opportunities and ChallengesIoT Development - Opportunities and Challenges
IoT Development - Opportunities and Challenges
 
Openvino ncs2
Openvino ncs2Openvino ncs2
Openvino ncs2
 
Iot ppt
Iot pptIot ppt
Iot ppt
 
Iot ble and_beacons_2015_nov28
Iot ble and_beacons_2015_nov28Iot ble and_beacons_2015_nov28
Iot ble and_beacons_2015_nov28
 
Extending Bluetooth with Mesh Networking
Extending Bluetooth with Mesh NetworkingExtending Bluetooth with Mesh Networking
Extending Bluetooth with Mesh Networking
 
Internet Of Things
 Internet Of Things Internet Of Things
Internet Of Things
 
Pendrive to pendrive data transfer without pc
Pendrive to pendrive data transfer without pcPendrive to pendrive data transfer without pc
Pendrive to pendrive data transfer without pc
 
6Tisch telecom_bretagne_2016
6Tisch telecom_bretagne_20166Tisch telecom_bretagne_2016
6Tisch telecom_bretagne_2016
 
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
 
Application development for the internet of things
Application development for the internet of thingsApplication development for the internet of things
Application development for the internet of things
 
Google Cloud IoT Core
Google Cloud IoT CoreGoogle Cloud IoT Core
Google Cloud IoT Core
 
Internet of Things(IoT)
Internet of Things(IoT)Internet of Things(IoT)
Internet of Things(IoT)
 
Smart mirror
Smart mirrorSmart mirror
Smart mirror
 
iOS I phone operating system
iOS I phone operating system iOS I phone operating system
iOS I phone operating system
 
Internet of Things and its applications
Internet of Things and its applicationsInternet of Things and its applications
Internet of Things and its applications
 
Introduction to Bluetooth Low Energy
Introduction to Bluetooth Low EnergyIntroduction to Bluetooth Low Energy
Introduction to Bluetooth Low Energy
 
Introduction to 6G, prepare now training
Introduction to 6G, prepare now trainingIntroduction to 6G, prepare now training
Introduction to 6G, prepare now training
 
Azure IoT Hub: what is it and why we select other solution (production projec...
Azure IoT Hub: what is it and why we select other solution (production projec...Azure IoT Hub: what is it and why we select other solution (production projec...
Azure IoT Hub: what is it and why we select other solution (production projec...
 
Learn How to Develop a Distributed Game of Life with DDS
Learn How to Develop a Distributed Game of Life with DDSLearn How to Develop a Distributed Game of Life with DDS
Learn How to Develop a Distributed Game of Life with DDS
 

Similaire à Google Cloud IoT Architecture

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 CloudAlvaro Viebrantz
 
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.Walter Coan
 
Rodando uma API Com Django Rest Framework no Google Cloud
Rodando uma API Com Django Rest Framework  no Google CloudRodando uma API Com Django Rest Framework  no Google Cloud
Rodando uma API Com Django Rest Framework no Google CloudAlvaro Viebrantz
 
BigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIBigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIAlvaro Viebrantz
 
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...Alvaro Viebrantz
 
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 ...tdc-globalcode
 
Azure e suas vantagens (Palestra 1)
Azure e suas vantagens (Palestra 1) Azure e suas vantagens (Palestra 1)
Azure e suas vantagens (Palestra 1) Marcus Garcia
 
Azure na Prática - Azure IoT Edge
Azure na Prática - Azure IoT EdgeAzure na Prática - Azure IoT Edge
Azure na Prática - Azure IoT EdgeWalter Coan
 
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 CloudAlvaro 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 CloudAlvaro Viebrantz
 
Aplicações do Azure IoT Edge: ambiente industrial e em Machine Learning
Aplicações do Azure IoT Edge: ambiente industrial e em Machine LearningAplicações do Azure IoT Edge: ambiente industrial e em Machine Learning
Aplicações do Azure IoT Edge: ambiente industrial e em Machine LearningWalter Coan
 
Novidades da plataforma Azure IoT
Novidades da plataforma Azure IoTNovidades da plataforma Azure IoT
Novidades da plataforma Azure IoTWalter Coan
 
Talk Floripa - Desenvolvimento de projetos de Internet das Coisas
Talk Floripa - Desenvolvimento de projetos de Internet das CoisasTalk Floripa - Desenvolvimento de projetos de Internet das Coisas
Talk Floripa - Desenvolvimento de projetos de Internet das CoisasWalter Coan
 
Opções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e ArquiteturasOpções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e ArquiteturasJose Papo, MSc
 
Evento IoT Weekend - Azure IoT Edge
Evento IoT Weekend - Azure IoT EdgeEvento IoT Weekend - Azure IoT Edge
Evento IoT Weekend - Azure IoT EdgeWalter Coan
 
SQLSaturday 2019 - Desafios e tendências na utilização de bancos de dados par...
SQLSaturday 2019 - Desafios e tendências na utilização de bancos de dados par...SQLSaturday 2019 - Desafios e tendências na utilização de bancos de dados par...
SQLSaturday 2019 - Desafios e tendências na utilização de bancos de dados par...Walter Coan
 
Aplicações Distribuídas com Azure Service Bus + Azure Functions - Azure Tech ...
Aplicações Distribuídas com Azure Service Bus + Azure Functions - Azure Tech ...Aplicações Distribuídas com Azure Service Bus + Azure Functions - Azure Tech ...
Aplicações Distribuídas com Azure Service Bus + Azure Functions - Azure Tech ...Renato Groff
 
DevOps Experience 2022: Build de aplicações Spring Boot utilizando Github Act...
DevOps Experience 2022: Build de aplicações Spring Boot utilizando Github Act...DevOps Experience 2022: Build de aplicações Spring Boot utilizando Github Act...
DevOps Experience 2022: Build de aplicações Spring Boot utilizando Github Act...Walter Coan
 
Monitoramento de containers Docker
Monitoramento de containers DockerMonitoramento de containers Docker
Monitoramento de containers DockerJosé Barbosa
 
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 GoAlvaro Viebrantz
 

Similaire à Google Cloud IoT Architecture (20)

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
 
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.
 
Rodando uma API Com Django Rest Framework no Google Cloud
Rodando uma API Com Django Rest Framework  no Google CloudRodando uma API Com Django Rest Framework  no Google Cloud
Rodando uma API Com Django Rest Framework no Google Cloud
 
BigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIBigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage API
 
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 ...
 
Azure e suas vantagens (Palestra 1)
Azure e suas vantagens (Palestra 1) Azure e suas vantagens (Palestra 1)
Azure e suas vantagens (Palestra 1)
 
Azure na Prática - Azure IoT Edge
Azure na Prática - Azure IoT EdgeAzure na Prática - Azure IoT Edge
Azure na Prática - Azure IoT Edge
 
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
 
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
 
Aplicações do Azure IoT Edge: ambiente industrial e em Machine Learning
Aplicações do Azure IoT Edge: ambiente industrial e em Machine LearningAplicações do Azure IoT Edge: ambiente industrial e em Machine Learning
Aplicações do Azure IoT Edge: ambiente industrial e em Machine Learning
 
Novidades da plataforma Azure IoT
Novidades da plataforma Azure IoTNovidades da plataforma Azure IoT
Novidades da plataforma Azure IoT
 
Talk Floripa - Desenvolvimento de projetos de Internet das Coisas
Talk Floripa - Desenvolvimento de projetos de Internet das CoisasTalk Floripa - Desenvolvimento de projetos de Internet das Coisas
Talk Floripa - Desenvolvimento de projetos de Internet das Coisas
 
Opções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e ArquiteturasOpções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e Arquiteturas
 
Evento IoT Weekend - Azure IoT Edge
Evento IoT Weekend - Azure IoT EdgeEvento IoT Weekend - Azure IoT Edge
Evento IoT Weekend - Azure IoT Edge
 
SQLSaturday 2019 - Desafios e tendências na utilização de bancos de dados par...
SQLSaturday 2019 - Desafios e tendências na utilização de bancos de dados par...SQLSaturday 2019 - Desafios e tendências na utilização de bancos de dados par...
SQLSaturday 2019 - Desafios e tendências na utilização de bancos de dados par...
 
Aplicações Distribuídas com Azure Service Bus + Azure Functions - Azure Tech ...
Aplicações Distribuídas com Azure Service Bus + Azure Functions - Azure Tech ...Aplicações Distribuídas com Azure Service Bus + Azure Functions - Azure Tech ...
Aplicações Distribuídas com Azure Service Bus + Azure Functions - Azure Tech ...
 
DevOps Experience 2022: Build de aplicações Spring Boot utilizando Github Act...
DevOps Experience 2022: Build de aplicações Spring Boot utilizando Github Act...DevOps Experience 2022: Build de aplicações Spring Boot utilizando Github Act...
DevOps Experience 2022: Build de aplicações Spring Boot utilizando Github Act...
 
Monitoramento de containers Docker
Monitoramento de containers DockerMonitoramento de containers Docker
Monitoramento de containers Docker
 
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
 

Plus de Alvaro Viebrantz

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.pdfAlvaro Viebrantz
 
Carreira de Desenvolvimento
Carreira de DesenvolvimentoCarreira de Desenvolvimento
Carreira de DesenvolvimentoAlvaro Viebrantz
 
Prototipação em hackathons
Prototipação em hackathonsPrototipação em hackathons
Prototipação em hackathonsAlvaro Viebrantz
 
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 GoAlvaro Viebrantz
 
TinyML - IoT e Machine Learning
TinyML -  IoT e Machine LearningTinyML -  IoT e Machine Learning
TinyML - IoT e Machine LearningAlvaro Viebrantz
 
O que projetos de IoT precisam ?
O que projetos de IoT precisam ?O que projetos de IoT precisam ?
O que projetos de IoT precisam ?Alvaro Viebrantz
 
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 DadosAlvaro Viebrantz
 
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 CloudAlvaro Viebrantz
 
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 CloudAlvaro Viebrantz
 
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 CloudAlvaro Viebrantz
 
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 PauloAlvaro Viebrantz
 
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 CloudAlvaro Viebrantz
 
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 IoTAlvaro Viebrantz
 
Explorando Go em Ambiente Embarcado
Explorando Go em Ambiente EmbarcadoExplorando Go em Ambiente Embarcado
Explorando Go em Ambiente EmbarcadoAlvaro Viebrantz
 
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á 2018Alvaro Viebrantz
 
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 inteligenteAlvaro Viebrantz
 
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 WebAlvaro Viebrantz
 
Codelab - Actions on Google
Codelab - Actions on GoogleCodelab - Actions on Google
Codelab - Actions on GoogleAlvaro Viebrantz
 
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 Alvaro Viebrantz
 
Android things, Inteligência Artificial e Máquinas de Doces - Android Dev Con...
Android things, Inteligência Artificial e Máquinas de Doces - Android Dev Con...Android things, Inteligência Artificial e Máquinas de Doces - Android Dev Con...
Android things, Inteligência Artificial e Máquinas de Doces - Android Dev Con...Alvaro Viebrantz
 

Plus 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
 
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
 
O que projetos de IoT precisam ?
O que projetos de IoT precisam ?O que projetos de IoT precisam ?
O que projetos de IoT precisam ?
 
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 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
 
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
 
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
 
Android things, Inteligência Artificial e Máquinas de Doces - Android Dev Con...
Android things, Inteligência Artificial e Máquinas de Doces - Android Dev Con...Android things, Inteligência Artificial e Máquinas de Doces - Android Dev Con...
Android things, Inteligência Artificial e Máquinas de Doces - Android Dev Con...
 

Google Cloud IoT Architecture

  • 1. ARQUITETURA DE INTERNET DAS COISAS COM GOOGLE CLOUD Alvaro Viebrantz aviebrantz.com @alvaroviebrantz 1
  • 2. Alvaro Viebrantz Google Developer Expert em Internet das Coisas Product Engineer at Leverege Cuiabá - MT 2 aviebrantz.com @alvaroviebrantz
  • 3. A Web é gigante hoje 3 Computação Ubiqua
  • 4. 4
  • 5. 5 Pilares em IoT Exemplo de uma arquitetura no caso de uma pulseiras de exercícios Coisas Nuvem Dados Informações e serviços Gateway Bluetooth LE WiFi/3G
  • 6. 6 O hardware é apenas o começo IoT é muito mais que apenas o hardware
  • 7. 7 IoT é serviço O importante não é o hardware, mas o que você entrega
  • 8. 8 Arquitetura em nuvem para IoT Quais os componentes necessários ?
  • 9. Estação meteorológica - Arquitetura de ponta a ponta com Google Cloud !9 Post pessoal foi para o blog do Google Cloud
  • 10. 10 O que foi utilizado no projeto Componentes bastante fáceis de serem encontrados Wemos D1 Mini
 ESP8266 DHT11 Sensor de Temp e Umidade
  • 12. 12 Programação - Micro controladores (MCU) Como desenvolver hardware para IoT • C/C++ • MicroPython • Lua • Javascript
  • 13. 13 Programação - MongooseOS Sistema Operacional para IoT • Provisionamento e configuração • Conector para diversas nuvens • Google Cloud, Azure, AWS, IBM, MQTT Genérico • Javascript para prototipação • Apache 2.0 • Mudança recente
  • 14. Como receber dados 14 Opções gerenciadas para recebimento de dados
  • 15. 15 Cloud IoT Core Serviço gerenciado global para conectar e gerenciar de forma segura dispositivos Protocol Bridge
 Comunicação Gerenciamento de dispositivos
  • 16. 16 Cloud IoT Core - Gerenciamento Provisionar dispositivos e controle individual
  • 17. 17 Cloud IoT Core - Gerenciamento Provisionar dispositivos e controle individual
  • 18. 18 Cloud IoT Core - Gerenciamento Controle individual dos dispositivos
  • 19. 19 Cloud IoT Core - Gerenciamento Provisionar dispositivos e controle individual • APIs para manipulação dos dispositivos e provisionamento • CRUD dos dispositivos • Possibilita automação
  • 20. 20 Cloud IoT Core - Comunicação Via protocolos conhecidos - MQTT e HTTP • Diferenças entre MQTT e HTTP • MQTT permite fazer subscrição das mensagens recebidas • HTTP tem que ficar buscando de forma explicita • MQTT é mais leve e trafega menos dados na rede, porém fica conectado o tempo todo • Comunicação Bidirecional • Existem algumas restrições nisso • Dados só podem ser enviados pelo dispositivo como telemetry ou state messages
  • 21. • Token gerado a partir dos certificados digitais • Chaves privada no dispositivo • Chave pública cadastrada no Google Cloud • Formato bem conhecido de autorização - RFC 7519 • Algoritmos suportados para criptografia • ES256 - ECDSA e SHA-256 • RS256 - RSA e SHA-256 • Devem expirar em 1 hora e tem tolerância de 10 min com o Time Server do Google 21 Cloud IoT Core - Comunicação Autenticação/Autorização usando JSON Web Token (JWT)
  • 22. 22 Cloud IoT Core - Comunicação Autenticação/Autorização via HTTP • Para chamadas HTTP deve ser colocado no Header • Para obter configurações: https://cloudiotdevice.googleapis.com/v1/projects/{project-id}/locations/{cloud-region}/ registries/{registry-id}/devices/{deviceid}/config?local_version={VERSION}
  • 23. 23 Cloud IoT Core - Comunicação Autenticação/Autorização via HTTP • Para enviar dados: https://cloudiotdevice.googleapis.com/v1/projects/{project-id}/locations/{cloud-region}/ registries/{registry-id}/devices/{deviceid}:publishEvent
  • 24. 24 Cloud IoT Core - Comunicação Parâmetros de Autenticação/Autorização via MQTT • Host: mqtt.googleapis.com:8883 • User: vazio (não é verificado) • Pass: token JWT • Client ID: projects/{project-id}/locations/{cloud-region}/registries/{registry-id}/devices/{device-id} devices/{deviceid}/config devices/{deviceid}/events devices/{deviceid}/state Dispositivo SUB PUB PUB
  • 25. 25 Provisionamento com MongooseOS e Cloud IoT Core Associando o hardware ao projeto no Google Cloud • O MongooseOS consegue fazer isso automagicamente. • Obter o ID do Device e cadastra-lo no Cloud IoT Core. • Gerar par de certificados, associar no GCloud a chave pública e gravar no device a chave privada. • Configurar endpoint MQTT no device para usar o broker do Cloud IoT Core • Fazer todo o trabalho de autenticação usando JWT
  • 26. 26 Cloud PubSub Espinha dorsal do Google Cloud. Serviço de Mensageria • Gerenciado pelo Google • Escalabilidade automática • Garantia de entrega • Conectado com muitos produtos 
 do Google Cloud
  • 27. We need a database 27 Opções com alta escalabilidade e voltados para BigData
  • 28. 28 BigQuery Opções para o armazenamento massivo de dados • Data warehouse de baixo custo • Gerenciado pelo Google e escalabilidade automática • Interface SQL ANSI de consulta e suporte a vários softwares de BI no mercado • Append Only - Dados imutáveis • Gratuito até 1TB por mês analisado e 10GB de dados
  • 29. 29 Firebase Realtime Database Armazenamento e sincronização em tempo real • Dados em forma de árvore • Sincronização em tempo real entre os clientes • SDK para várias linguagens • O Firebase possui todo um ecossistema de produtos voltado a desenvolvimento de apps
  • 30. Como processar os dados 30 Opções com gerenciadas para processamento de dados
  • 31. 31 Cloud Dataflow • Baseado no projeto Apache Beam • SDK em Python e Java
  • 32. • Workers recebendo dados via PubSub • Podem rodar em uma maquina virtual na nuvem • Cloud Compute Engine • Kubernetes Engine • Não é tão simples de escalar automaticamente • Pode ser feito em qualquer linguagem 32 Faça você mesmo / Compute Engine Crie uma máquina virtual e processo os dados você mesmo
  • 35. 35 Cloud Functions ou Firebase Cloud Functions Opções serverless para o processamento e ingestão dos dados
  • 36. 36 Firebase Cloud Functions Função que reage a dados sendo recebidos via Cloud PubSub e armazena no Firebase
  • 37. 37 Firebase Cloud Functions Função que reage a dados sendo recebidos via Cloud PubSub e armazena no Firebase
  • 38. 38 Firebase Cloud Functions Função que reage a dados sendo recebidos via Cloud PubSub e armazena no Firebase
  • 40. 40 Firebase Cloud Functions Transformar ou argumentar os dados - Ex: Calcular Ponto de Orvalho
  • 43. 43
  • 44. 44 Deploy das Firebase Cloud Functions Apenas rode um simples comando e sua função está online - firebase deploy
  • 45. Como visualizar e analisar os dados 45 Opções com gerenciadas para analise de dados
  • 46. 46 Cloud DataLab Obter insight dos dados armazenados • Baseado no projeto open source Jupyter Notebook • Totalmente gerenciado • Muito usado para DataScience e Machine Learning em Python • Analise e visualize os dados • Gratuito • Apenas os serviços extras são cobrados
  • 47. 47 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
  • 48. 48 Dashboard no Data Studio Obter insight dos dados armazenados
  • 49. 49 Demo time
 May the demo gods be with us
  • 50. Estação meteorológica !50 Relatório com Data Studio e WebApp Acesse: bit.ly/gcloud-weather-station
  • 51. 51 O que mais posso fazer ? Essa arquitetura se aplica vários outros casos.
  • 52. Monitoramento de ativos via GPS e Rede Celular !52 Outro post pessoal foi para o blog do Google Cloud sobre Arquitetura IoT Acesse: bit.ly/gcloud-asset
  • 53. Monitoramento de ativos via GPS e Rede Celular !53 Outro post pessoal foi para o blog do Google Cloud sobre Arquitetura IoT • ESP32 + GPS + GSM • Aqui é mostrado como configurar remotamente o dispositivo. • Trocar tempo entre mensagens • MongooseOS tem suporte à modem GSM de forma transparente Acesse: bit.ly/gcloud-asset
  • 54. 54 Firestore Armazenamento e sincronização em tempo real • NoSQL orientado a documento • Mais flexível para fazer consultas e separar as entidades do que Firebase • Datastore + Firebase • Sincronização em tempo real entre os clientes • SDK para várias linguagens
  • 55. !55
  • 56. Leverege - Monitoramento inteligente de lixeiras na cidade !56 www.leverege.com/usecases/waste-management-solution
  • 57. Leverege - Monitoramento inteligente de lixeiras na cidade !57 www.leverege.com/usecases/waste-management-solution
  • 58. Leverege - Monitoramento inteligente de lixeiras na cidade !58 www.leverege.com/usecases/waste-management-solution
  • 59. Leverege - Monitoramento de inteligente de lixeiras na cidade !59 Arquitetura do projeto https://www.leverege.com/usecases/waste-management-solution
  • 60. Próximo projeto - Work in Progress ⚠ ⚠ ⚠
  • 61. Como falar com plantas !!! Google Assistant + Dialogflow + Internet das Coisas
  • 62.
  • 63. Como começar ? Codelabs com material oficial
  • 64.
  • 65. Blog posts Dois tutoriais com arquitetura completa de IoT e Google Cloud