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
sakura.ioのアーキテクチャとネットワーク設計 / Architecture and network design of sakura.io
Search
chibiegg
November 28, 2018
Technology
0
840
sakura.ioのアーキテクチャとネットワーク設計 / Architecture and network design of sakura.io
2018/11/28 Alternative Architecture DOJO Offline #1
chibiegg
November 28, 2018
Tweet
Share
More Decks by chibiegg
See All by chibiegg
長期間TiDBを使ってきた話 @ 私たちはなぜNewSQLを使うのかTiDB選定5社が語る選定理由と活用LT / Experiences with TiDB Over Time
chibiegg
3
1.1k
3年近くTiDBを使ってきた話 @ TiUG Kick Off #0 / My Journey with TiDB: Nearly Three Years On @ TiDB User Group Kick Off #0
chibiegg
4
880
SDR (Software Defined Radio) を使った無線の解析 @ 2023-02-11 SECCON 電脳会議 2022 / Wireless Analyzing using SDR @ SECCON 2022
chibiegg
1
820
分散DBを運用してみて〜TiDB の仕組みと実例〜 @ さくらの夕べ Tech Night #5 Online / About TiDB @ SAKURA internet Tech Nignt #5 Online
chibiegg
1
300
クラウドネイティブなデータベースTiDB の魅力@db tech showcase 2021 / PingCAP TiDB with SAKURA internet
chibiegg
1
340
多言語情報をデータベースにどう持つか @さくらの夕べ Tech Night #3 Online / Solve N+1 on Django
chibiegg
0
220
ゼロトラストでもっと便利に、もっと安全に @ LOCAL Developer Day Online ’20 Security / Zero trust security model in SAKURA internet Inc.
chibiegg
1
520
さくらのクラウドとDocker Swarm Modeで誰でもわかる簡単デプロイ @ さくらの聖夜2019 / Simple Deployment with SAKURA Cloud and Docker Swarm
chibiegg
0
3.4k
Dockerで動かすISUCONポータルと問題 @さくらの夕べDocker/Kubernetesナイト #2 / ISUCON Portal and Problem with Docker
chibiegg
0
5k
Other Decks in Technology
See All in Technology
本当のガバクラ基礎
toru_kubota
0
320
cgroup v2 で何が変わったのか / TechFeed Experts Night #28
tenforward
2
160
【SORACOM UG 四国】今だからこそ学ぶ!IoTの全体像と最新事例、生成AIの基礎
soracom
PRO
2
130
AI JIMY - 登壇(インストール編)
hanacchi
0
150
Cloudflare WorkersがPythonに対応したので試してみた
miura55
0
190
汎用ポリシー言語Rego + OPAと認可・検証事例の紹介 / Introduction Rego & OPA for authorization and validation
mizutani
1
160
社内での継続的な機械学習勉強会の開催のコツ
yudai00
2
390
#phpconkagawa レガシーコードにもオブザーバビリティを 〜少しずつ始めるサービス監視〜
yamato_sorariku
0
560
Step by Stepで学ぶ、ADT(代数的データ型)、モナドからEffect-TSまで
leveragestech
1
3.1k
データ基盤を支える技術
chanyou0311
5
3k
Prisma ORMを2年運用して培ったノウハウを共有する
tockn
19
5.1k
CockroachDB はどのくらい「しぶとい」のか? / How tough is CockroachDB?
kota2and3kan
13
4.9k
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
28
4.1k
Imperfection Machines: The Place of Print at Facebook
scottboms
261
12k
The Language of Interfaces
destraynor
151
23k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.1k
The MySQL Ecosystem @ GitHub 2015
samlambert
244
12k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
275
13k
Building an army of robots
kneath
300
41k
Being A Developer After 40
akosma
67
580k
Design by the Numbers
sachag
274
18k
Fashionably flexible responsive web design (full day workshop)
malarkey
398
65k
Writing Fast Ruby
sferik
622
60k
Docker and Python
trallard
35
2.7k
Transcript
sakura.ioのアーキテクチャとネットワーク設計 IoTプラットフォームにおけるマイクロサービスの事例 ©SAKURA Internet Inc. 2018/11/28 Alternative Architecture DOJO Offline
#1 @ Fukuoka Growth Next さくらインターネット株式会社 執⾏役員 技術推進統括担当 江草陽太
⾃⼰紹介 2 【所属等】 さくらインターネット株式会社 新卒⼊社4年⽬ 執⾏役員 技術推進統括担当 【開発】 • さくらのVPS
API/DB/制御システム担当 • sakura.io ハードウエア仕様、ファームウエア開発 システム設計、開発 インフラ設計、構築 • 社内システム/データセンター⾃動化 【その他】 • CSAJ U22プログラミングコンテスト審査員 • Home NOC Operatorsʼ Group (AS59105) @chibiegg
⾃⼰紹介 3 【経歴】 • ロボカップジュニア (中学・⾼校) / NHK⼤学ロボコン • ⼤阪⼤学⼯学部電⼦情報⼯学科情報通信⼯学専攻
• 個⼈事業主 • ⼤阪⼤学⼤学院⼯学研究科中退 • SECCON CTF 2014 国内4位 • ISUCON5/ISUSON7/ISUCON8本戦 • ICTSC7 ⼤⼈チーム 【専⾨】 • ソフトウエアエンジニア • NW/SC/DBスペシャリスト • 回路設計/組み込みソフトウエア 【趣味】 旅⾏/温泉/写真/電⼦⼯作/プログラミング/かわいい服 @chibiegg
さくらインターネットについて 4 商号 さくらインターネット株式会社(SAKURA Internet Inc.) 代表取締役 ⽥中 邦裕 設⽴
1999年8⽉17⽇(サービス開始︓1996年12⽉23⽇) 資本⾦ 22億5,692万円 事業内容 インターネットでのサーバの設置およびその管理業務 電気通信事業法に基づく電気通信事業 マルチメディアの企画並びに製作・販売 従業員数 495名(連結/2017年3⽉末) 所属団体 特定⾮営利活動法⼈ ⽇本データセンター協会(JDCC) 社団法⼈ コンピュータソフトウェア協会(CSAJ) 社団法⼈ ⽇本ネットワークインフォメーションセンター(JPNIC) 社団法⼈ インターネットプロバイダー協会(JAIPA) グループ会社 アイティーエム株式会社 https://www.itmanage.co.jp/ 株式会社S2i http://www.s2i.life/ ゲヒルン株式会社 https://www.gehirn.co.jp/ 株式会社Joeʼsクラウドコンピューティング https://joes.co.jp/ ビットスター株式会社 https://bitstar.jp/ 櫻花移動電信有限公司 ⼤阪本社 (梅⽥/⼤阪) 東京⽀社(⻄新宿) 福岡オフィス(⾚坂)
さくらインターネットの事業領域 5 新しい社会のインフラを⽀えながら、最先端のサービスを構築 レンタルサーバ VPS・クラウド(仮想化基盤) 専⽤サーバ・データセンター ハウジング リモートハウジング さくらのレンタルサーバ さくらのマネージドサーバ
新規サービス AI・⼈⼯知能 機械学習、データ解析、⾼精度シミュ レーション⽤途に特化したGPU搭載の 専⽤サーバサービス 通信モジュールから提供することで、セキュアな通信環境とデータの保存や処 理システムを⼀体型で提供するIoTプラットフォームサービス IoT コンテナ Dockerコンテナのマネージド サービスであり、コンテナを⼿ 軽かつシンプルに実⾏・運⽤ IoT お使いのデバイスを、SIMからさくらのクラウドのまでインターネットを経由せず、 安全に接続できるIoT向けモバイルサービス さくらのセキュアモバイルコネクト
6 さくらが考えるIoTソリューション
さくらインターネットの考えるIoTソリューション 7 1. どこでも、だれでも 2. ⾃分だけのネットワーク 3. ノーコミット&ノーリミット 4. 検証から、量産まで
5. 圧倒的コスパ
どこでも、だれでも LTEのメリット 1. ⾼いカバー率(島嶼、⼭間) 2. 移動体でも使⽤可能 3. 設定不要で繋がる 8 LTEなら最終利⽤者も⼿軽に利⽤できる
⾃分だけのネットワーク ⾃分だけのネットワーク 9 閉域網 インターネットからの 直接アクセス不可 デバイス⇔クラウド間のリスクポイントを削減 マルウェア ハッカー ボットネット
ノーコミット&ノーリミット 1 0 1. 契約期間縛り無し 2. 契約/解約⼿数料無し 3. 再登録が何度でも可能 4.
速度制限無し IoT⽤途での課題となる各種制約や上限を撤廃
さくらが提供するIoT向けサービス 1 1 プラットフォームの提供 モジュール+クラウドの⼀体提供で 開発スピードを向上、スケール対応や 運⽤保守はさくらで実施 専⽤モジュール (単体⽅式 or
ゲートウェイ⽅式) 基本機能 (つなぐ・貯める・連携する) セキュアモバイルコネクト IoT向けSIMの提供 デバイスからコンピューティング リソースにセキュアに接続できる モバイル回線 カード型SIM チップ型SIM
サービスの提供範囲 セキュアモバイルコネクト sakura.io デバイス センサ - - MCU - -
通信機構 - ◯ 回線(SIM) ◯ ◯ クラウド セキュリティ ◯ ◯ データの転送 - ◯ データの保管 - ◯ データの連携 - ◯ 1 2
さくらが提供するIoT向けサービス 1 3 プラットフォームの提供 モジュール+クラウドの⼀体提供で 開発スピードを向上、スケール対応や 運⽤保守はさくらで実施 専⽤モジュール (単体⽅式 or
ゲートウェイ⽅式) 基本機能 (つなぐ・貯める・連携する) セキュアモバイルコネクト IoT向けSIMの提供 デバイスからコンピューティング リソースにセキュアに接続できる モバイル回線 カード型SIM チップ型SIM
今⽇の話題 IoTプラットフォームであるsakura.ioを例に コンテナを使ったマイクロサービスと ネットワーク設計を紹介します 1 4
sakukra.ioプラットフォームの特徴 • エンドデバイスと外部サーバ間でのメッセージ交換が多い • 関連するネットワークがいくつかある • インターネット (The Internet) •
モバイル閉域網 • 社内ネットワーク • 細かい機能がたくさんある 1 5
サービス概要 1 6 etc… 組み込みとインターネットをつなぐサービス
sakura.ioが提供する価値 1 7 組み込み側はモノとの電気信号 / Web側はサービスとのJSONデータ のやり取りに注⼒可能
Webエンジニアの負担を軽減する設計 1 8 { "module": "XXXXXXXXX", "type": "channels", "datetime": "2016-06-01T12:21:11.628907163Z",
"payload": { "channels": [{ "channel": 1, "type": "i", "value": 1, "datetime": "2016-06- 01T10:21:11.628907163Z" }, { "channel": 2, … }] } } HTTP Request データ取出やデバイス制御はすべてJSONフォーマットで実施 既存システムや扱いに慣れたクラウドサービスとの接続も可能 リアルタイム連携 ⼀括連携 JSON形式
マイクロサービスの構成 1 9 管理システム 位置情報DB Outgoing Webhook 等 WebSocket 等
DataStore モジュールの認証等 連携先の情報 外部との接続の 認証認可 上りのメッセージ 下りのメッセージ 管理システムへのリクエスト
ネットワーク分離 2 0 管理システム 位置情報DB Outgoing Webhook 等 WebSocket 等
DataStore 社内ネットワーク 内部ネットワーク モバイル閉域網 インターネット
ネットワーク構成 2 1 端末向けコンテナ 内部処理コンテナ マスター モバイルバックボーン インターネット 社内ネットワーク
コンテナロードバランサ 2 2 /incoming/v1 /api/v1 ホスト名、パスに従ってコンテナにリバースプロキシ コンテナのバージョン更新時にはブルーグリーンデプロイやロールバックが可能 コンテナの変更通知 GSLB
コンテナロードバランサ 2 3 /api/v1 (new version) /incoming/v1 /api/v1 ホスト名、パスに従ってコンテナにリバースプロキシ コンテナのバージョン更新時にはブルーグリーンデプロイやロールバックが可能
コンテナの変更通知 GSLB
コンテナロードバランサ 2 4 /api/v1 /incoming/v1 /api/v1 (old version) ホスト名、パスに従ってコンテナにリバースプロキシ コンテナのバージョン更新時にはブルーグリーンデプロイやロールバックが可能
コンテナの変更通知 GSLB
コンテナロードバランサ 2 5 /api/v1 /incoming/v1 ホスト名、パスに従ってコンテナにリバースプロキシ コンテナのバージョン更新時にはブルーグリーンデプロイやロールバックが可能 コンテナの変更通知 GSLB
全体のまとめ • 処理機能毎にコンテナを分けマイクロサービス化 • APIやMQでコンテナ間を接続 • コンテナへのリバースプロキシを活⽤することで、ブルーグリー ンデプロイを実現 • 接続先に応じてネットワークを分離
• ⼀つのクラスタで⼀括管理 • 旧来の⽅が良いサーバは旧来⽅式でやる 2 6
よかったこと • 機能ごとに独⽴したコード、バイナリのため変更が容易 • クラスタ型のコンテナ管理に則れるため運⽤が容易 • Mesos + Marathonでもいいし •
k8sでもいい • 2年半以上前の設計だが、システム改修のネックがまだ出 てない 2 7
さくらが提供するIoT向けサービス 2 8 プラットフォームの提供 モジュール+クラウドの⼀体提供で 開発スピードを向上、スケール対応や 運⽤保守はさくらで実施 専⽤モジュール (単体⽅式 or
ゲートウェイ⽅式) 基本機能 (つなぐ・貯める・連携する) セキュアモバイルコネクト IoT向けSIMの提供 デバイスからコンピューティング リソースにセキュアに接続できる モバイル回線 カード型SIM チップ型SIM
マルチキャリア対応しました︕ 2 9 1枚のSIMで国内3キャリア同時利⽤可能︕
マルチキャリア対応しました︕ 3 0 コンパネから有効にするキャリアが選択できます