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
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
ClickHouseはどのように大規模データを活用したAIエージェントを全社展開しているのか
mikimatsumoto
0
260
仕様書駆動AI開発の実践: Issue→Skill→PRテンプレで 再現性を作る
knishioka
2
670
SREのプラクティスを用いた3領域同時 マネジメントへの挑戦 〜SRE・情シス・セキュリティを統合した チーム運営術〜
coconala_engineer
2
670
インフラエンジニア必見!Kubernetesを用いたクラウドネイティブ設計ポイント大全
daitak
1
370
Claude_CodeでSEOを最適化する_AI_Ops_Community_Vol.2__マーケティングx_AIはここまで進化した.pdf
riku_423
2
590
15 years with Rails and DDD (AI Edition)
andrzejkrzywda
0
200
配列に見る bash と zsh の違い
kazzpapa3
3
160
AzureでのIaC - Bicep? Terraform? それ早く言ってよ会議
torumakabe
1
580
Agile Leadership Summit Keynote 2026
m_seki
1
640
OWASP Top 10:2025 リリースと 少しの日本語化にまつわる裏話
okdt
PRO
3
810
10Xにおける品質保証活動の全体像と改善 #no_more_wait_for_test
nihonbuson
PRO
2
310
Bill One 開発エンジニア 紹介資料
sansan33
PRO
5
17k
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Music & Morning Musume
bryan
47
7.1k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.7k
Technical Leadership for Architectural Decision Making
baasie
1
250
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
640
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
57
50k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
320
My Coaching Mixtape
mlcsv
0
48
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
350
What does AI have to do with Human Rights?
axbom
PRO
0
2k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
94
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 みたいなのを試すと楽しそう