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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
sakajunquality
January 19, 2019
Technology
0
620
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.9k
Cloud Spanner Monitoring 入門 / Cloud Spanner Monitoring Introduction
sakajunquality
1
1.4k
GKE Overview March 2021: Introducing Autopilot
sakajunquality
1
880
Introduction to Cloud Run 2021
sakajunquality
3
1.6k
Building Reliable Distributed Systems on GCP
sakajunquality
1
290
Istio 1.5 Updates
sakajunquality
4
2k
GCP 101: Getting Started through Cloud Run
sakajunquality
6
3.8k
Seeking Observability, Getting Started with Service Mesh
sakajunquality
0
180
Fastly Yamagoya Meetup: Leveraging Cloud Portability with Fastly
sakajunquality
0
16k
Other Decks in Technology
See All in Technology
OWASP Top 10:2025 リリースと 少しの日本語化にまつわる裏話
okdt
PRO
3
800
顧客の言葉を、そのまま信じない勇気
yamatai1212
1
360
Bill One 開発エンジニア 紹介資料
sansan33
PRO
5
17k
登壇駆動学習のすすめ — CfPのネタの見つけ方と書くときに意識していること
bicstone
3
120
予期せぬコストの急増を障害のように扱う――「コスト版ポストモーテム」の導入とその後の改善
muziyoshiz
1
1.9k
SREチームをどう作り、どう育てるか ― Findy横断SREのマネジメント
rvirus0817
0
300
会社紹介資料 / Sansan Company Profile
sansan33
PRO
15
400k
茨城の思い出を振り返る ~CDKのセキュリティを添えて~ / 20260201 Mitsutoshi Matsuo
shift_evolve
PRO
1
320
CDKで始めるTypeScript開発のススメ
tsukuboshi
1
460
FinTech SREのAWSサービス活用/Leveraging AWS Services in FinTech SRE
maaaato
0
130
変化するコーディングエージェントとの現実的な付き合い方 〜Cursor安定択説と、ツールに依存しない「資産」〜
empitsu
4
1.4k
What happened to RubyGems and what can we learn?
mikemcquaid
0
300
Featured
See All Featured
Leo the Paperboy
mayatellez
4
1.4k
Prompt Engineering for Job Search
mfonobong
0
160
Scaling GitHub
holman
464
140k
A better future with KSS
kneath
240
18k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Docker and Python
trallard
47
3.7k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
For a Future-Friendly Web
brad_frost
182
10k
My Coaching Mixtape
mlcsv
0
48
ラッコキーワード サービス紹介資料
rakko
1
2.3M
Designing for Timeless Needs
cassininazir
0
130
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 みたいなのを試すと楽しそう