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
830
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
2
900
3年近くTiDBを使ってきた話 @ TiUG Kick Off #0 / My Journey with TiDB: Nearly Three Years On @ TiDB User Group Kick Off #0
chibiegg
4
840
SDR (Software Defined Radio) を使った無線の解析 @ 2023-02-11 SECCON 電脳会議 2022 / Wireless Analyzing using SDR @ SECCON 2022
chibiegg
1
760
分散DBを運用してみて〜TiDB の仕組みと実例〜 @ さくらの夕べ Tech Night #5 Online / About TiDB @ SAKURA internet Tech Nignt #5 Online
chibiegg
1
250
クラウドネイティブなデータベースTiDB の魅力@db tech showcase 2021 / PingCAP TiDB with SAKURA internet
chibiegg
1
330
多言語情報をデータベースにどう持つか @さくらの夕べ Tech Night #3 Online / Solve N+1 on Django
chibiegg
0
210
ゼロトラストでもっと便利に、もっと安全に @ 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
4.9k
Other Decks in Technology
See All in Technology
require(ESM)とECMAScript仕様
uhyo
3
710
FrontDoorとWebAppsを組み合わせた際のリダイレクト処理の注意点
kenichirokimura
1
520
アクセシビリティを考慮したUI/CSSフレームワーク・ライブラリ選定
yajihum
2
1k
Azure犬駆動開発の記録/GlobalAzureFukuoka2024_20240420
nina01
1
210
MapLibreとAmazon Location Service
dayjournal
1
160
Python と Snowflake はズッ友だょ!~ Snowflake の Python 関連機能をふりかえる ~
__allllllllez__
1
120
「スニダン」開発組織の構造に込めた意図 ~組織作りはパッションや政治ではない!~
rinchsan
3
570
ServiceNow Knowledge 24の歩き方 EYストラテジー・アンド・コンサルティング
manarobot
0
200
推しは推せるときに推せ! プロダクトにフィードバックしていこう
nakasho
0
320
ServiceNow Knowledge Learning Rise up
manarobot
0
210
現代CSSフレームワークの内部実装とその仕組み
poteboy
7
3.6k
Tellus の衛星データを見てみよう #mf_fukuoka
kongmingstrap
0
190
Featured
See All Featured
Writing Fast Ruby
sferik
621
60k
Agile that works and the tools we love
rasmusluckow
325
20k
Ruby is Unlike a Banana
tanoku
96
10k
How STYLIGHT went responsive
nonsquared
92
4.8k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
21
1.6k
The Illustrated Children's Guide to Kubernetes
chrisshort
31
46k
Music & Morning Musume
bryan
41
5.6k
Unsuck your backbone
ammeep
663
57k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
34
8.9k
Bootstrapping a Software Product
garrettdimon
PRO
302
110k
Optimising Largest Contentful Paint
csswizardry
8
2.4k
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 コンパネから有効にするキャリアが選択できます