Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Arquitetura de IoT na prática com Google Cloud - Join Community 2018

Uma introdução a diversas ferramentas e serviços que podem ser utilizados no Google Cloud para a construção de aplicações envolvendo Internet das Coisas. Vamos ver um overview de como construir várias soluções completas de IoT, desde a coleta de dados dos dispositivos de forma segura, armazenamento massivo de informação e como fazer analise e visualização dos dados. Tudo isso em sua grande maioria usando serviços gerenciados, sem ter que se queimar configurando servidores.

Related Books

Free with a 30 day trial from Scribd

See all
  • Login to see the comments

  • Be the first to like this

Arquitetura de IoT na prática com Google Cloud - Join Community 2018

  1. 1. ARQUITETURA DE INTERNET DAS COISAS COM GOOGLE CLOUD Alvaro Viebrantz aviebrantz.com @alvaroviebrantz 1
  2. 2. Alvaro Viebrantz Google Developer Expert em Internet das Coisas Product Engineer at Leverege Cuiabá - MT 2 aviebrantz.com @alvaroviebrantz
  3. 3. A Web é gigante hoje 3 Computação Ubiqua
  4. 4. 4
  5. 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. 6 O hardware é apenas o começo IoT é muito mais que apenas o hardware
  7. 7. 7 IoT é serviço O importante não é o hardware, mas o que você entrega
  8. 8. 8 Arquitetura em nuvem para IoT Quais os componentes necessários ?
  9. 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. 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. 11. 11 Esquemático 🔥 🐈🐈🐈🐈🐈
  12. 12. 12 Programação - Micro controladores (MCU) Como desenvolver hardware para IoT • C/C++ • MicroPython • Lua • Javascript
  13. 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. 14. Como receber dados 14 Opções gerenciadas para recebimento de dados
  15. 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. 16 Cloud IoT Core - Gerenciamento Provisionar dispositivos e controle individual
  17. 17. 17 Cloud IoT Core - Gerenciamento Provisionar dispositivos e controle individual
  18. 18. 18 Cloud IoT Core - Gerenciamento Controle individual dos dispositivos
  19. 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. 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. 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. 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. 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. 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. 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. 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. 27. We need a database 27 Opções com alta escalabilidade e voltados para BigData
  28. 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. 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. 30. Como processar os dados 30 Opções com gerenciadas para processamento de dados
  31. 31. 31 Cloud Dataflow • Baseado no projeto Apache Beam • SDK em Python e Java
  32. 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
  33. 33. Develop Grow
  34. 34. Functions
  35. 35. 35 Cloud Functions ou Firebase Cloud Functions Opções serverless para o processamento e ingestão dos dados
  36. 36. 36 Firebase Cloud Functions Função que reage a dados sendo recebidos via Cloud PubSub e armazena no Firebase
  37. 37. 37 Firebase Cloud Functions Função que reage a dados sendo recebidos via Cloud PubSub e armazena no Firebase
  38. 38. 38 Firebase Cloud Functions Função que reage a dados sendo recebidos via Cloud PubSub e armazena no Firebase
  39. 39. 39 Firebase Cloud Functions Adicionar filtros dos dados
  40. 40. 40 Firebase Cloud Functions Transformar ou argumentar os dados - Ex: Calcular Ponto de Orvalho
  41. 41. 41 Firebase Cloud Functions Armazenar no BigQuery
  42. 42. 42 Firebase Cloud Functions Armazenar no BigQuery
  43. 43. 43
  44. 44. 44 Deploy das Firebase Cloud Functions Apenas rode um simples comando e sua função está online - firebase deploy
  45. 45. Como visualizar e analisar os dados 45 Opções com gerenciadas para analise de dados
  46. 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. 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. 48 Dashboard no Data Studio Obter insight dos dados armazenados
  49. 49. 49 Demo time
 May the demo gods be with us
  50. 50. Estação meteorológica !50 Relatório com Data Studio e WebApp Acesse: bit.ly/gcloud-weather-station
  51. 51. 51 O que mais posso fazer ? Essa arquitetura se aplica vários outros casos.
  52. 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. 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. 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. !55
  56. 56. Leverege - Monitoramento inteligente de lixeiras na cidade !56 www.leverege.com/usecases/waste-management-solution
  57. 57. Leverege - Monitoramento inteligente de lixeiras na cidade !57 www.leverege.com/usecases/waste-management-solution
  58. 58. Leverege - Monitoramento inteligente de lixeiras na cidade !58 www.leverege.com/usecases/waste-management-solution
  59. 59. Leverege - Monitoramento de inteligente de lixeiras na cidade !59 Arquitetura do projeto https://www.leverege.com/usecases/waste-management-solution
  60. 60. Próximo projeto - Work in Progress ⚠ ⚠ ⚠
  61. 61. Como falar com plantas !!! Google Assistant + Dialogflow + Internet das Coisas
  62. 62. Como começar ? Codelabs com material oficial
  63. 63. Blog posts Dois tutoriais com arquitetura completa de IoT e Google Cloud
  64. 64. OBRIGADO 66 Alvaro Viebrantz aviebrantz.com @alvaroviebrantz

×