Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Cloud IoT Core as Log Aggregation Gateway
Search
sakajunquality
January 19, 2019
Technology
0
560
Cloud IoT Core as Log Aggregation Gateway
GDG 信州 / GCPUG 信州 新春勉強会
sakajunquality
January 19, 2019
Tweet
Share
More Decks by sakajunquality
See All by sakajunquality
DevFest Tokyo 2023: Google Cloudでチームで安全にデプロイをする
sakajunquality
10
1.8k
Cloud Spanner Monitoring 入門 / Cloud Spanner Monitoring Introduction
sakajunquality
1
1.2k
GKE Overview March 2021: Introducing Autopilot
sakajunquality
1
790
Introduction to Cloud Run 2021
sakajunquality
3
1.5k
Building Reliable Distributed Systems on GCP
sakajunquality
1
230
Istio 1.5 Updates
sakajunquality
4
1.9k
GCP 101: Getting Started through Cloud Run
sakajunquality
6
3.6k
Seeking Observability, Getting Started with Service Mesh
sakajunquality
0
140
Fastly Yamagoya Meetup: Leveraging Cloud Portability with Fastly
sakajunquality
0
15k
Other Decks in Technology
See All in Technology
Engineer Career Talk
lycorp_recruit_jp
0
190
Introduction to Works of ML Engineer in LY Corporation
lycorp_recruit_jp
0
140
心が動くエンジニアリング ── 私が夢中になる理由
16bitidol
0
100
安心してください、日本語使えますよ―Ubuntu日本語Remix提供休止に寄せて― 2024-11-17
nobutomurata
1
1k
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
AI前提のサービス運用ってなんだろう?
ryuichi1208
8
1.4k
TypeScript、上達の瞬間
sadnessojisan
47
14k
開発生産性を上げながらビジネスも30倍成長させてきたチームの姿
kamina_zzz
2
1.7k
アジャイルでの品質の進化 Agile in Motion vol.1/20241118 Hiroyuki Sato
shift_evolve
0
180
The Role of Developer Relations in AI Product Success.
giftojabu1
1
150
強いチームと開発生産性
onk
PRO
36
12k
プロダクト活用度で見えた真実 ホリゾンタルSaaSでの顧客解像度の高め方
tadaken3
0
210
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
520
39k
Building Adaptive Systems
keathley
38
2.3k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
What's new in Ruby 2.0
geeforr
343
31k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Music & Morning Musume
bryan
46
6.2k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Code Review Best Practice
trishagee
64
17k
For a Future-Friendly Web
brad_frost
175
9.4k
Designing for Performance
lara
604
68k
Transcript
Cloud IoT Core as Log Aggregation Gateway @sakajunquality 2019.01.19 GDG/GCPUG
Shinshu
Cloud IoT Core as Log Aggregation Gateway + α @sakajunquality
2019.01.19 GDG/GCPUG Shinshu
Agenda - About me - Cloud IoT & Log Aggregation
- (おまけ)Kubernetes at Edge
About me
About me Jun Sakata - ID: @sakajunquality - Google Developers
Expert, GCP - SWE, Reliability @Ubie, Inc.
@sakajunquality - 最近やってること - #docker #kubernetes - よく使うGCPプロダクト - #GKE
#Cloud Build #BigQuery - 好きなこと - #Photograph #Beer #Coffee
@sakajunquality - 最近やってること - #docker #kubernetes - よく使うGCPプロダクト - #GKE
#Cloud Build #BigQuery - 好きなこと - #Photograph #Beer #Coffee => IoT 詳しくない!!
@sakajunquality - 最近やってること - #docker #kubernetes - よく使うGCPプロダクト - #GKE
#Cloud Build #BigQuery - 好きなこと - #Photograph #Beer #Coffee => IoT 詳しくない!! => ちなみに長野はn回目! ( 3<n<5 )
Cloud IoT Core & Log Aggregation
(前職の事例のため具体的なプロダクト名は伏せま す。ざっくりDAU数十万人のtoCサービスです。)
Sending Logs
Logs from Smartphone App ユーザーの行動データ e.g. クリックやスクロールなど
How to send log? - From Server-Side - From Client-Side
How to send log? - From Server-Side - バックエンドのAPIサーバーなどへのリクエストをベースにロギング -
通信は少ないが、行動が詳細にわからない
How to send log? - From Server-Side - From Client-Side
How to send log? - From Client-Side - バックエンドのAPIサーバーなどとは別にクライアントサイドからログを送る -
通信が増えるかもしれないが、詳細なログが取得可能
How to send log? - From Client-Side Several things to
consider... - Storage - Endpoint - Protocol
How to send log? - From Client-Side Several things to
consider... - Storage - Endpoint - Protocol
Storage
BigQuery - みんな大好きBigQuery - データの種類にもよると思うが汎用的に使える - スケールを考えるとBigQueryにデータを貯めるのが楽
How to send log? - From Client-Side Several things to
consider... - Storage - Endpoint - Protocol
Endpoint
Endpoint Serverless VM/Container
Endpoint Serverless VM/Container Cloud Pub/Sub Cloud Functions GAE GCE GKE
Cloud IoT Core as Endpoint
Cloud IoT Core ログの受け口とすることで・・・ - ログを受けるアプリケーションの実装が不要 - スケーラブルなマネージドのインフラが利用可能
How to send log? - From Client-Side Several things to
consider... - Storage - Endpoint API - Protocol
Protocols Several protocols... - HTTP - MQTT - AMQP -
Websocket? - Protobuf?
Protocols Cloud IoT Core supports... - HTTP - MQTT -
AMQP - Websocket? - Protobuf?
MQTT - 軽量なプロトコル - Pub/Sub型 MQ - Use Case: FB
Messenger
MQTT over Websocket - Webのフロントから直接通信する場合は、 httpで通信する必要があるので - websocket(over http)で使うことが必要 -
現時点ではCloud IoT Coreでは対応して内が、httpとして送ることができる
Processing Logs
Processing Logs - Cloud IoT Core に飛ばしたログをDWH (今回はBigQuery) に飛ばす
Processing Logs 具体的には、 - Cloud IoT Core to Cloud Pub/Sub
- Cloud Pub/Sub to BigQuery via Cloud Dataflow
Cloud IoT Core to Cloud Pub/Sub - Cloud IoT Coreのログは
Cloud Pub/Sub に送られる - セットアップする際にdevice(デバイス管理用)/telemetry(ログ受取用) のトピックを求められる
Why not sending directly to Cloud Pub/Sub? - Cloud IoT
Coreだと ProtocolとしてMQTTが使える - Cloud Pub/Sub だとクライアントでの認証認可がめんどくさい
Cloud Pub/Sub to BigQuery - Cloud Dataflow を使用して、BigQueryにデータを挿入する - Telemetryのトピックに対してSubscriptionを追加
Cloud Dataflow - Apache Beamをベースとしたログパイプラインのプラットフォーム - SDKはJava / Python -
Batch + Stream => Beam - 便利なライブラリもある - https://github.com/spotify/scio
Cloud Pub/Sub to Cloud Storage - スキーマ変更時にDataflowを壊してログが欠損しないように Cloud Storageに生ログの保存 -
Cloud Pub/Sub は複数のSubscriptionを作れる - GCSに上げるだけだと Cloud Dataflowも公式テンプレートを使える
Final Architecture
Architecture: Before ホントはfluentdが あったりごちゃご ちゃ
Architecture: After 一部サーバーサイド から送ってるログも Dataflow経由に変 更
Troubles? - Cloud IoT Coreのデバイス数の上限に達した - ユーザーのデバイス (iOS/Android)ごとにIoTデバイスを登録していた - 上限緩和申請
- 適切に使われてないデバイスは削除する - まとめて消すAPIがなかった(当時) - Webからは MQTT で送れない - 安定したライブラリがない? - フロントでJWTを扱うのがめんどくさい - Over Websocketが使えない (GAEでブローカーを作る? ) - 一旦httpで送る
Troubles? - Pub/Subのトピックは消えないけど、使用していないとサブスクリプションは自動で消えるので注意
Takeaways - 本来は双方向で通信しデバイスを管理するためだが単方向のみにも使える - IoT というよりも MQTT という軽量プロトコルを簡単に使える - ログの収集としては少し
too muchかも知れないが技術的には面白かった - Cloud IoT Core, Cloud Pub/Sub, Cloud Dataflow, BigQuery すべてスケーラブル
Kubernetes at Edge ~from KubeCon 2018 NA~
Kubernetes - GoogleのBorgをベースとしたコンテナオーケストレーションの OSS - KubernetesのマネージドサービスがGKE
https://twitter.com/superbrothers/status/1060468439091822592
Kubernetes at Edge - Kubernetes IoT Edge Working Group -
Recap from KubeCon 2018 NA - KubeCon - IoT Edge Working Group Intro & Deep Dive - Use Case: Chick-fil-A
Kubernetes at Edge - Kubernetes IoT Edge Working Group -
Recap from KubeCon 2018 NA - KubeCon - IoT Edge Working Group Intro & Deep Dive - Use Case: Chick-fil-A
Kubernetes IoT Edge Working Group - IoT と EdgeでのKubernetesの活用を話し合うグループ -
2週1でオンラインミーティング
https://github.com/kubernetes/community/tree/master/wg-iot-edge
Kubernetes IoT Edge Working Group 実際のIoT環境での構築や、検証(PoC)、改善などを話し合っている
White Paper: IoT and Edge computing with Kubernetes http://bit.ly/iot-edge-whitepaper -
クラウドネイティブなパラダイムでエッジでも Kubernetesを使えるようにしたい
Kubernetes at Edge - Kubernetes IoT Edge Working Group -
Recap from KubeCon 2018 NA - KubeCon - IoT Edge Working Group Intro & Deep Dive - Use Case: Chick-fil-A
KubeCon - Officially, “KubeCon + CloudNativeCon” - 年3回: EU/China/NA -
Kubernetes / Cloud Native app & developmentなどについて - IoTに関するセッションが2つ
KubeCon - YouTubeに全セッションが上がってるので映像で確認できます - (自分のセッションも・・・)
IoT Edge Working Group Intro & Deep Dive IoT Edge
WG Session - Intro: Kubernetes IoT Edge WG - https://sched.co/HSBb - Deep Dive: Kubernetes IoT Edge WG - https://sched.co/HSCE
Intro: Kubernetes IoT Edge WG
Intro - https://sched.co/HSBb - パネルディスカッション形式でワーキンググループの説明など
Deep Dive: Kubernetes IoT Edge WG
Deep Dive - https://sched.co/HSCE - Introと同じメンバーでのセッション - もう少し技術的詳細について
Why Edge? Data Pre-Processing - Network Cost - Latency /
Bandwidth - Data Policy - e.g. GDPR
KubeEdge - https://github.com/kubeedge/kubeedge
KubeEdge - Kubernetesのクラスター自体はクラウド上 - Edgeのノードをクラウドのクラスターの CRDで管理? - EdgeのデバイスとEdgeのノードが通信
Use Case: Chick-fil-A - https://sched.co/GrXv - セッション自体はKubernetesのGitOpsについ て - アメリカのチキンサンド店の店舗に
Kubernetes のクラスターを置いてる話 - 結構美味しそう (https://www.chick-fil-a.com/)
Use Case: Chick-fil-A - とにかくトランザクションが多い
Use Case: Chick-fil-A - このような Kubernetes のクラスターを各店舗 に設置
Use Case: Chick-fil-A - 結果として相当量のMQTTのメッセージを扱っ ている
Takeaways - KubernetesもEdgeでの利用も広がりそう! - TPU Edgeと組み合わせられると面白そう! - GKE + Cloud
IoT Core + KubeEdge + TPU Edge みたいなのを試すと楽しそう