O documento discute a arquitetura de Internet das Coisas com Google Cloud, incluindo:
1) O Cloud IoT Core para conectar e gerenciar dispositivos de forma segura.
2) Opções para processamento e armazenamento de dados como Cloud Functions, BigQuery e Cloud Storage.
3) Ferramentas de análise como Cloud DataLab e Google Data Studio para obter insights dos dados.
4) Exemplos de projetos reais implementados com a plataforma.
5. 5
Por que está na moda hoje ?
Sensores, internet e processamento mais baratos
6. 6
Por que está na moda hoje ?
Sensores, internet e processamento mais baratos
7. 7
Por que está na moda hoje ?
Sensores, internet e processamento mais baratos
8. Conceito de IoT
Não é só acender lâmpadas
O que você pode fazer ?
O conceito de IoT não é só acender lâmpadas
8
9. Refere-se a objetos identificados de forma
única e suas representações virtuais em
uma estrutura similar a internet.
Kevin Ashton em 2009
9
Conceito de IoT
17. 17
Pilares em IoT
Da coleta de dados até a geração de informação
Coisas
Nuvem
Dados Informações
e serviços
18. 18
• Recebimento de fluxo de dados
• Processamento desses dados
• Armazenamento massivo de dados
• Análise de dados
• Machine Learning
• Treinamento e predição
Arquitetura em nuvem para IoT
Quais os componentes necessários ?
Escalável
Rede
Global
Seguro
20. 20
Cloud IoT Core
Serviço gerenciado global para conectar e gerenciar de forma
segura dispositivos
Protocol Bridge
• Endpoints em MQTT e HTTP
• Comunicação Bidirecional
• Escalabilidade automática
• Balanceamento de carga
automático
• Conectado ao Cloud Pub/Sub
• Filas de mensageria
Gerenciamento de dispositivos
• Configure dispositivos individualmente
• Controle de acesso
• Cadastro de certificados de acesso
• APIs para manipulação dos dispositivos
e provisionamento
• Possibilita automação
25. 25
Cloud IoT Core - Gerenciamento
Provisionar dispositivos e controle individual
• APIs para manipulação dos dispositivos e provisionamento
• CRUD dos dispositivos
• Possibilita automação
26. 26
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
• Dados são recebidos apenas como configuration messages
27. • JSON Web Token (JWT) gerado a partir dos certificados cadastrados
• Chaves privada no dispositivo e publica cadastrada no Google Cloud
• JWT é um formato bem conhecido de autorização
• Padrão de industria - 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
27
Cloud IoT Core - Comunicação
Autenticação/Autorização usando JWT
28. 28
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}
29. 29
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
30. 30
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
31. 31
Cloud PubSub
Espinha dorsal do Google Cloud - Mensageria gerenciada pelo Google
• Gerenciado pelo Google
• Escalabilidade automática
• Garantia de entrega
• Conectado com muitos produtos
do Google Cloud
32. 32
Processamento desses dados
Opções para o processamento e ingestão dos dados
• Cloud Dataflow
• Ambiente gerenciado para
processamento em Lote e
Stream de dados
• Modelagem de pipeline
• Baseado no projeto Apache
Beam
• SDK em Python e Java
33. 33
Processamento desses dados
Opções para o processamento e ingestão dos dados
• Faça você mesmo
• 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
34. 34
Processamento desses dados
Opções para o processamento e ingestão dos dados
• Cloud Functions ou Firebase Cloud
Functions
• Serveless computing
• Funções auto escaláveis em Javascript
• As funções podem ser executadas
baseadas em eventos
• PubSub é apenas uma delas
• Cobrança por chamada de função
35. 35
Firebase Cloud Functions
Exemplo de função que reage a dados sendo
recebidos via Cloud PubSub
• Suas regras de transformação e
validação podem ser feitas aqui
• Salvar em banco de dados os dados
históricos para analise posterior
• Salvar no Firebase para mantendo o
ultimo estado em a ser visualizado em
tempo real
36. 36
Armazenamento
Opções para o armazenamento massivo de dados
• BigTable
• NoSQL altamente escalável para
tabelas gigante - Bilhões de linhas X
Milhões de Colunas
• Usado em muitos produtos do Google
• Modelo de dados colunar
• Compatível com API do HBase
• Bom para quem está habituado com
o ecossistema Hadoop
• Não é muito barato !!!
37. 37
Armazenamento
Opções para o armazenamento massivo de dados
• Cloud Spanner
• Banco de dados ACID tradicional mas
com features de NoSQL
• Alta disponibilidade e distribuido
globalmente
• Consultas SQL
• Estado da arte em banco de dados
feito pelo Google
• Gerenciado pelo Google e
escalabilidade automática
• Não é muito barato !!!
38. 38
Armazenamento
Opções para o armazenamento massivo de dados
• BigTable
• NoSQL altamente escalável para
tabelas gigante - Bilhões de linhas X
Milhões de Colunas
• Usado em muitos produtos do Google
• Modelo de dados colunar
• Compatível com API do HBase
• Bom para quem está habituado com
o ecossistema Hadoop
• Não é muito barato !!!
39. 39
Armazenamento
Opções para o armazenamento massivo de dados
• BigQuery
• 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
40. 40
Armazenamento
Armazenamento e sincronização em tempo real
• NoSQL orientado a documento
• 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
41. 41
Análise de dados
Obter insight dos dados armazenados
• Cloud DataLab
• 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
42. 42
Análise de dados
Obter insight dos dados armazenados
• Google Data Studio
• Ferramenta para visualização de
dados
• Diversas fontes de dados
• SQL, Google Analytics, BigQuery,
Arquivos CSV, etc
• User friendly
• Gratuito
43. Estação meteorológica - Arquitetura de ponta a ponta com Google Cloud
!43
Post pessoal foi para o blog do Google Cloud
Acesse: bit.ly/gcloud-weather-station
44. Estação meteorológica - Arquitetura de ponta a ponta
!44
ESP8266/ESP32 rodando MongooseOS
• Programação em Javascript
• Hardware
• Backend com Cloud Functions
• MongooseOS tem suporte ao Cloud IoT
Core
Acesse: bit.ly/gcloud-weather-station
45. Estação meteorológica - Arquitetura de ponta a ponta
!45
Relatório com Data Studio e WebApp
Acesse: bit.ly/gcloud-weather-station
46. Monitoramento de ativos via GPS e Rede Celular
!46
Outro post pessoal foi para o blog do Google Cloud sobre Arquitetura IoT
Acesse: bit.ly/gcloud-asset
47. Monitoramento de ativos via GPS e Rede Celular
!47
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
49. Leverege - Monitoramento inteligente de lixeiras na cidade
!49
www.leverege.com/usecases/waste-management-solution
50. Leverege - Monitoramento inteligente de lixeiras na cidade
!50
www.leverege.com/usecases/waste-management-solution
51. Leverege - Monitoramento inteligente de lixeiras na cidade
!51
www.leverege.com/usecases/waste-management-solution
52. Leverege - Monitoramento de inteligente de lixeiras na cidade
!52
Arquitetura do projeto
https://www.leverege.com/usecases/waste-management-solution
53. Cloud
Natural Language
Cloud
Speech
Cloud
Vision
Cloud Machine Learning APIs
Veja, Ouça e Entenda o mundo
Cloud
Video Intelligence
Cloud
Translation
!53
54. • Funções especificas para Deep
Learning
• +67k ⭐ no Github
• Para pesquisa e produção
• O Google fez até hardware
dedicado para ele
• Licença Apache 2.0
TensorFlow
Biblioteca de machine learning Open source
!54
56. 56
Treinamento e predição na Nuvem
Escalando Tensorflow de forma fácil
• Cloud ML Engine
• Treinamento de modelo na nuvem
• Também é possível hospedar e rodar
modelos já treinados
• Gerenciado pelo Google
• Integrado ao Dataflow, BigQuery e
outros para ser fonte de dados de
treinamento
57. Classificação de Pepinos
Tensorflow rodando local no dispositivo embarcado
https://cloud.google.com/blog/big-data/2016/08/how-a-japanese-
cucumber-farmer-is-using-deep-learning-and-tensorflow
!57
58. 58
AIY Projects - Voice Kit
IA para humanos - Faça seu próprio Google Home
developers.google.com/assistant/sdk/
64. A.I. Candy Dispenser
Na mídia 🎉
Android Things: The IoT Platform for
Everyone (GDD Europe '17)
64
65. Open Source - Máquina de Doces Inteligente
https://github.com/alvarowolfx/ai-candy-dispenser
https://www.hackster.io/alvarowolfx/
android-things-a-i-candy-dispenser-a47e74 !65
66. 66
Como começar ?
Apesar de ser independente de hardware, já tem alguns parceiros
• MongooseOS e Zerynth
• Suporte a ESP32/ESP8266 e outros
• Microchip
• Via hardware dedicado a autenticação
e autorização (ATECC608A)
67. 67
Raspberry Pi 👑
+ Ecossistema gigante
+ Wifi e Bluetooth embutido
+ Muito material na internet
BeagleBone
Como começar ?
Alguns samples do Google que podem ser testados no seu computador ou em Single Board
Computers
cloud.google.com/iot/docs/samples/