$30 off During Our Annual Pro Sale. View Details »

sakura.ioのアーキテクチャとネットワーク設計 / Architecture and network design of sakura.io

chibiegg
November 28, 2018

sakura.ioのアーキテクチャとネットワーク設計 / Architecture and network design of sakura.io

2018/11/28 Alternative Architecture DOJO Offline #1

chibiegg

November 28, 2018
Tweet

More Decks by chibiegg

Other Decks in Technology

Transcript

  1. sakura.ioのアーキテクチャとネットワーク設計
    IoTプラットフォームにおけるマイクロサービスの事例
    ©SAKURA Internet Inc.
    2018/11/28 Alternative Architecture DOJO Offline #1 @ Fukuoka Growth Next
    さくらインターネット株式会社 執⾏役員 技術推進統括担当
    江草陽太

    View Slide

  2. ⾃⼰紹介
    2
    【所属等】
    さくらインターネット株式会社 新卒⼊社4年⽬
    執⾏役員 技術推進統括担当
    【開発】
    • さくらのVPS
    API/DB/制御システム担当
    • sakura.io
    ハードウエア仕様、ファームウエア開発
    システム設計、開発
    インフラ設計、構築
    • 社内システム/データセンター⾃動化
    【その他】
    • CSAJ U22プログラミングコンテスト審査員
    • Home NOC Operatorsʼ Group (AS59105)
    @chibiegg

    View Slide

  3. ⾃⼰紹介
    3
    【経歴】
    • ロボカップジュニア (中学・⾼校) / NHK⼤学ロボコン
    • ⼤阪⼤学⼯学部電⼦情報⼯学科情報通信⼯学専攻
    • 個⼈事業主
    • ⼤阪⼤学⼤学院⼯学研究科中退
    • SECCON CTF 2014 国内4位
    • ISUCON5/ISUSON7/ISUCON8本戦
    • ICTSC7 ⼤⼈チーム
    【専⾨】
    • ソフトウエアエンジニア
    • NW/SC/DBスペシャリスト
    • 回路設計/組み込みソフトウエア
    【趣味】
    旅⾏/温泉/写真/電⼦⼯作/プログラミング/かわいい服
    @chibiegg

    View Slide

  4. さくらインターネットについて
    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/
    櫻花移動電信有限公司
    ⼤阪本社
    (梅⽥/⼤阪)
    東京⽀社(⻄新宿) 福岡オフィス(⾚坂)

    View Slide

  5. さくらインターネットの事業領域
    5
    新しい社会のインフラを⽀えながら、最先端のサービスを構築
    レンタルサーバ
    VPS・クラウド(仮想化基盤)
    専⽤サーバ・データセンター
    ハウジング
    リモートハウジング
    さくらのレンタルサーバ
    さくらのマネージドサーバ
    新規サービス
    AI・⼈⼯知能
    機械学習、データ解析、⾼精度シミュ
    レーション⽤途に特化したGPU搭載の
    専⽤サーバサービス
    通信モジュールから提供することで、セキュアな通信環境とデータの保存や処
    理システムを⼀体型で提供するIoTプラットフォームサービス
    IoT
    コンテナ
    Dockerコンテナのマネージド
    サービスであり、コンテナを⼿
    軽かつシンプルに実⾏・運⽤
    IoT
    お使いのデバイスを、SIMからさくらのクラウドのまでインターネットを経由せず、
    安全に接続できるIoT向けモバイルサービス
    さくらのセキュアモバイルコネクト

    View Slide

  6. 6
    さくらが考えるIoTソリューション

    View Slide

  7. さくらインターネットの考えるIoTソリューション
    7
    1. どこでも、だれでも
    2. ⾃分だけのネットワーク
    3. ノーコミット&ノーリミット
    4. 検証から、量産まで
    5. 圧倒的コスパ

    View Slide

  8. どこでも、だれでも
    LTEのメリット
    1. ⾼いカバー率(島嶼、⼭間)
    2. 移動体でも使⽤可能
    3. 設定不要で繋がる
    8
    LTEなら最終利⽤者も⼿軽に利⽤できる

    View Slide

  9. ⾃分だけのネットワーク
    ⾃分だけのネットワーク
    9
    閉域網
    インターネットからの
    直接アクセス不可
    デバイス⇔クラウド間のリスクポイントを削減
    マルウェア ハッカー ボットネット

    View Slide

  10. ノーコミット&ノーリミット
    1
    0
    1. 契約期間縛り無し
    2. 契約/解約⼿数料無し
    3. 再登録が何度でも可能
    4. 速度制限無し
    IoT⽤途での課題となる各種制約や上限を撤廃

    View Slide

  11. さくらが提供するIoT向けサービス
    1
    1
    プラットフォームの提供
    モジュール+クラウドの⼀体提供で
    開発スピードを向上、スケール対応や
    運⽤保守はさくらで実施
    専⽤モジュール
    (単体⽅式 or ゲートウェイ⽅式)
    基本機能
    (つなぐ・貯める・連携する)
    セキュアモバイルコネクト
    IoT向けSIMの提供
    デバイスからコンピューティング
    リソースにセキュアに接続できる
    モバイル回線
    カード型SIM チップ型SIM

    View Slide

  12. サービスの提供範囲
    セキュアモバイルコネクト sakura.io
    デバイス センサ - -
    MCU - -
    通信機構 - ◯
    回線(SIM) ◯ ◯
    クラウド セキュリティ ◯ ◯
    データの転送 - ◯
    データの保管 - ◯
    データの連携 - ◯
    1
    2

    View Slide

  13. さくらが提供するIoT向けサービス
    1
    3
    プラットフォームの提供
    モジュール+クラウドの⼀体提供で
    開発スピードを向上、スケール対応や
    運⽤保守はさくらで実施
    専⽤モジュール
    (単体⽅式 or ゲートウェイ⽅式)
    基本機能
    (つなぐ・貯める・連携する)
    セキュアモバイルコネクト
    IoT向けSIMの提供
    デバイスからコンピューティング
    リソースにセキュアに接続できる
    モバイル回線
    カード型SIM チップ型SIM

    View Slide

  14. 今⽇の話題
    IoTプラットフォームであるsakura.ioを例に
    コンテナを使ったマイクロサービスと
    ネットワーク設計を紹介します
    1
    4

    View Slide

  15. sakukra.ioプラットフォームの特徴
    • エンドデバイスと外部サーバ間でのメッセージ交換が多い
    • 関連するネットワークがいくつかある
    • インターネット (The Internet)
    • モバイル閉域網
    • 社内ネットワーク
    • 細かい機能がたくさんある
    1
    5

    View Slide

  16. サービス概要
    1
    6
    etc…
    組み込みとインターネットをつなぐサービス

    View Slide

  17. sakura.ioが提供する価値
    1
    7
    組み込み側はモノとの電気信号 / Web側はサービスとのJSONデータ
    のやり取りに注⼒可能

    View Slide

  18. 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形式

    View Slide

  19. マイクロサービスの構成
    1
    9
    管理システム
    位置情報DB
    Outgoing Webhook 等
    WebSocket 等
    DataStore
    モジュールの認証等
    連携先の情報
    外部との接続の
    認証認可
    上りのメッセージ
    下りのメッセージ
    管理システムへのリクエスト

    View Slide

  20. ネットワーク分離
    2
    0
    管理システム
    位置情報DB
    Outgoing Webhook 等
    WebSocket 等
    DataStore
    社内ネットワーク
    内部ネットワーク
    モバイル閉域網 インターネット

    View Slide

  21. ネットワーク構成
    2
    1
    端末向けコンテナ 内部処理コンテナ
    マスター
    モバイルバックボーン インターネット 社内ネットワーク

    View Slide

  22. コンテナロードバランサ
    2
    2
    /incoming/v1 /api/v1
    ホスト名、パスに従ってコンテナにリバースプロキシ
    コンテナのバージョン更新時にはブルーグリーンデプロイやロールバックが可能
    コンテナの変更通知
    GSLB

    View Slide

  23. コンテナロードバランサ
    2
    3
    /api/v1 (new version) /incoming/v1 /api/v1
    ホスト名、パスに従ってコンテナにリバースプロキシ
    コンテナのバージョン更新時にはブルーグリーンデプロイやロールバックが可能
    コンテナの変更通知
    GSLB

    View Slide

  24. コンテナロードバランサ
    2
    4
    /api/v1 /incoming/v1 /api/v1 (old version)
    ホスト名、パスに従ってコンテナにリバースプロキシ
    コンテナのバージョン更新時にはブルーグリーンデプロイやロールバックが可能
    コンテナの変更通知
    GSLB

    View Slide

  25. コンテナロードバランサ
    2
    5
    /api/v1 /incoming/v1
    ホスト名、パスに従ってコンテナにリバースプロキシ
    コンテナのバージョン更新時にはブルーグリーンデプロイやロールバックが可能
    コンテナの変更通知
    GSLB

    View Slide

  26. 全体のまとめ
    • 処理機能毎にコンテナを分けマイクロサービス化
    • APIやMQでコンテナ間を接続
    • コンテナへのリバースプロキシを活⽤することで、ブルーグリー
    ンデプロイを実現
    • 接続先に応じてネットワークを分離
    • ⼀つのクラスタで⼀括管理
    • 旧来の⽅が良いサーバは旧来⽅式でやる
    2
    6

    View Slide

  27. よかったこと
    • 機能ごとに独⽴したコード、バイナリのため変更が容易
    • クラスタ型のコンテナ管理に則れるため運⽤が容易
    • Mesos + Marathonでもいいし
    • k8sでもいい
    • 2年半以上前の設計だが、システム改修のネックがまだ出
    てない
    2
    7

    View Slide

  28. さくらが提供するIoT向けサービス
    2
    8
    プラットフォームの提供
    モジュール+クラウドの⼀体提供で
    開発スピードを向上、スケール対応や
    運⽤保守はさくらで実施
    専⽤モジュール
    (単体⽅式 or ゲートウェイ⽅式)
    基本機能
    (つなぐ・貯める・連携する)
    セキュアモバイルコネクト
    IoT向けSIMの提供
    デバイスからコンピューティング
    リソースにセキュアに接続できる
    モバイル回線
    カード型SIM チップ型SIM

    View Slide

  29. マルチキャリア対応しました︕
    2
    9
    1枚のSIMで国内3キャリア同時利⽤可能︕

    View Slide

  30. マルチキャリア対応しました︕
    3
    0
    コンパネから有効にするキャリアが選択できます

    View Slide