Upgrade to Pro — share decks privately, control downloads, hide ads and more …

クラウドの作り方(使い方じゃないよ)/ How to create Cloud Service

Yoshiaki Tobioka
November 01, 2022
4.8k

クラウドの作り方(使い方じゃないよ)/ How to create Cloud Service

2022/10/27に実施したNTT ComのOpen Techlunch #2の講演資料です

Yoshiaki Tobioka

November 01, 2022
Tweet

Transcript

  1. © NTT Communications Corporation All Rights Reserved.
    クラウドの作り方 (使い方じゃないよ)
    NTTコミュニケーションズ株式会社
    エバンジェリスト・担当課長
    飛岡 良明

    View Slide

  2. © NTT Communications Corporation All Rights Reserved. 1
    ⾃⼰紹介
    経 歴
    興味のある分野
    好きな⾔葉
    2005年
    2013年
    2015年
    2019年
    NTTコミュニケーションズ⼊社
    - ISP/⼤⼿コンテンツプロバイダーのシステム設計・運⽤
    アメリカにComputer Scienceを学びに留学
    - SDN/NFVの研究に従事し、新しいネットワークのあり⽅を模索
    SDPF クラウドのアーキテクトとしてサービス⽴ち上げ
    - インフラ、ネットワーク、SDN/NFVの設計開発をリード
    NTT Comのエバンジェリストとして活動開始
    ネットワークとソフトウェアの融合
    ネットワーク技術の本質を⼤事にしながら、ソフトウェア技術の適⽤で何が変わるのか、
    変えられるのかに興味を持ち活動中
    結局物理
    NTT Com エバンジェリスト
    ⾶岡 良明

    View Slide

  3. © NTT Communications Corporation All Rights Reserved. 2
    Smart Data Platform (SDPF) クラウド
    c
    SDPFクラウド利⽤例
    Firewall (VM)
    Load Balancer (VM)
    Application Server (VM)
    Database Server (Baremetal) Colocation
    Group A Group B
    Logical Network
    Internet FIC / VPN

    View Slide

  4. © NTT Communications Corporation All Rights Reserved. 3
    SDPFクラウドを支える技術
    c
    z
    z
    NW装置
    NW基盤
    サーバー基盤
    SDN設定機能
    SDN監視機能
    共通系機能
    認証機能
    課金機能
    DNS / NTPなど
    z
    ユーザーリソース
    Internet IP-VPN Colocation
    Storage Baremetal
    VM
    Hypervisor
    Virtual Server / NFV

    View Slide

  5. © NTT Communications Corporation All Rights Reserved. 4
    SDPFクラウドを支える技術
    c
    4
    z
    z
    NW装置
    NW基盤
    サーバー基盤
    SDN設定機能
    SDN監視機能
    共通系機能
    認証機能
    課金機能
    DNS / NTPなど
    z
    ユーザーリソース
    Internet IP-VPN Colocation
    Storage Baremetal
    VM
    Hypervisor
    Virtual Server / NFV
    c
    物理NW(DC-NW)
    01
    02
    02
    03
    01
    02
    03
    NW仮想化(SDN / NFV)
    リソース仮想化
    (OpenStack, KVM, Linux)など

    View Slide

  6. © NTT Communications Corporation All Rights Reserved. 5
    SDPFクラウドの規模
    c c
    物理リソース 論理リソース
    3000台
    5000台
    VM
    仮想NW
    仮想NIC
    40,000
    30,000
    200,000
    経路 1,000,000

    View Slide

  7. © NTT Communications Corporation All Rights Reserved. 6
    Agenda| はじめに
    常に重視しているのは、
    - エンタープライズで求められる⾼い品質
    - スケーラビリティ
    - 検証だけではない、プロダクトへの貢献
    Data-Center NW開発 x ソフトウェア
    SDN/NFV 開発 x ソフトウェア

    View Slide

  8. © NTT Communications Corporation All Rights Reserved. 7
    Data-Center NW開発 x ソフトウェア

    View Slide

  9. © NTT Communications Corporation All Rights Reserved. 8
    SDPFクラウドを支える技術
    c
    z
    z
    NW装置
    NW基盤
    サーバー基盤
    SDN設定機能
    SDN監視機能
    共通系機能
    認証機能
    課金機能
    DNS / NTPなど
    z
    ユーザーリソース
    Internet IP-VPN Colocation
    Storage Baremetal
    VM
    Hypervisor
    Virtual Server / NFV

    View Slide

  10. © NTT Communications Corporation All Rights Reserved. 9
    SDPFクラウドを構成するネットワークとは
    c
    Config
    LB
    LB
    Storage
    Controller
    Controller
    Controller
    Controller
    Controller
    x3
    WAF
    Control-A
    Control-B
    HV
    AnalyticsDB
    Control-C
    Analytics
    Analytics
    Analy6cs
    Virtual Server
    Baremetal
    Storage
    Internet
    Group A Group B
    Object
    Storage
    Cinder
    NFS/
    iSCSI
    NFS
    NFS/
    iSCSI
    NFS Cinder
    BM
    HV
    vLB VM
    vFW vSRX
    vRouter
    HV
    vLB VM
    vFW VM
    vRouter
    BM
    HV
    vLB VM
    vFW VM
    vRouter
    Group C
    RR
    NFS Cinder
    Glance
    NFS/
    iSCSI
    L2 Fabric

    View Slide

  11. © NTT Communications Corporation All Rights Reserved. 10
    商用クラウド開発・運用の裏側
    商用デプロイ

    運用
    検証

    テスト
    実装
    インフラ設計
    (DC / Rack / 配線)
    システム設計
    (NW / Software / 運用)

    View Slide

  12. © NTT Communications Corporation All Rights Reserved. 11
    インフラ設計
    c
    c
    データセンタ設計
    フロア内設計
    ラック設計
    ロケーション コスト スペース 電力
    配線 空調 電力
    ケーブリング 荷重 電力

    View Slide

  13. © NTT Communications Corporation All Rights Reserved. 12
    システム設計・実装 | Data-Center NW
    c
    トポロジ設計 ルーティング設計
    実装
    アドレッシング設計
    拡張性 運用性
    Failure Domain コスト・性能
    BGP EVPN
    AnyCast GW VRRP
    CIDR IPAM

    View Slide

  14. © NTT Communications Corporation All Rights Reserved. 13
    Data-Center NW開発の中でソフトウェア活⽤
    試験の高度化・網羅性・自動化の推進

    1
    3
    ネットワークの構築の自動化
    ネットワークの運用の自動化
    今日はここ

    View Slide

  15. © NTT Communications Corporation All Rights Reserved. 14
    c
    試験の高度化・網羅性・自動化の推進
    • Data-Center NWなどの試験では、プロダクトで利用する物理装置を使う
    • シミュレーション、仮想環境などでも論理設計の試験などは可能
    • 実際の機器のハードウェア性能(転送速度、切替時の計算時間 etc)は実機で確認
    • 専用機器(NW機器)ならではの、チップ上の問題なども実機で試験が必要
    • 100G bpsなどの広帯域な装置のテストを、品質高くやるために、Traffic Generatorなど
    の専用装置も利用
    • レアなトラブル、多様なユースケースを考えて
    • 繰り返し、多数の試験をすることが重要
    • 多様な環境を作って、多量の観測ポイントで試験をすることが必要
    試験の自動化 構成管理・切り替えの⾃動化

    View Slide

  16. © NTT Communications Corporation All Rights Reserved. 15
    試験の⾃動化
    Config
    GW
    GW
    LB
    LB
    Storage
    Controller
    Controller
    Controller
    Controller
    Controller
    x3
    WAF
    Control
    Control
    HV
    Control
    Control
    Control
    Control
    Internet
    HV
    vLB VM
    vFW vSRX
    SSL-
    VPN
    L2 Fabric
    通信パターン
    306
    1400
    障害ポイント
    ⼿動
    ⾃動化
    3週 * 2⼈
    2⽇ * ソフト
    試験結果の可視化/ 大量データ解析
    物理機器操作の自動化
    Robot Frameworkプラグイン
    NW機器向けのフレームワーク
    NTT-Comで⾃社開発のOSS
    ⼤量データは⾃動化で可視化
    問題点の発⾒を容易に
    ⼀巡のtest log
    7200万⾏
    配線切り替え
    Robot
    Traffic
    Generator

    View Slide

  17. © NTT Communications Corporation All Rights Reserved. 16
    構成管理・切り替えの⾃動化
    通信パターン
    306
    1400
    障害ポイント
    ⼿動
    ⾃動化
    3週 * 2⼈
    2⽇ * ソフト
    構成管理の⾃動化
    配線切り替えロボットの導入
    複数環境もAPIで切り替え可能
    物理環境を切り替えながら試験の
    ⾃動化可能に
    DCIM(NetBox)とAPI連携
    ロボットでの構成切り替え時
    NetBoxの同時に変更
    ⾃動構成管理
    Config
    GW
    GW
    LB
    LB
    Storage
    Controller
    Controller
    Controller
    Controller
    Controller
    x3
    WAF
    Control
    Control
    HV
    Control
    Control
    Control
    Control
    Internet
    HV
    vLB VM
    vFW vSRX
    SSL-
    VPN
    L2 Fabric
    配線切り替え
    Robot
    Traffic
    Generator

    View Slide

  18. © NTT Communications Corporation All Rights Reserved. 17
    Data-Center NW開発の中でソフトウェア活⽤
    物理機器を多く扱うData-Center NWの開発において
    ・ネットワーク x ソフトウェア の融合
    ・ハードウェア x ソフトウェア の融合
    を意識し、ネットワークエンジニア、ソフトウェアエンジニアが活躍中

    View Slide

  19. © NTT Communications Corporation All Rights Reserved. 18
    SDN/NFV 開発 x ソフトウェア

    View Slide

  20. © NTT Communications Corporation All Rights Reserved. 19
    SDN (Software-Defined Networking)とは
    c
    SDNコントローラー
    SDNの世界(集中)
    API
    API
    c
    従来のIPネットワーク(分散)
    ログイン
    ログイン
    ログイン
    SDNとは、コンピュータネットワークを構成する通信機器の設定や挙動を
    ソフトウェアによって集中的に制御し、ネットワークの構造や構成、設定などを
    柔軟に、動的に変更することを可能とする技術の総称。 http://e-words.jp/w/SDN.html

    View Slide

  21. © NTT Communications Corporation All Rights Reserved. 20
    SDN開発としてソフトウェア開発した例

    1
    3
    4
    SDNコントローラの経路計算遅延の最適化
    10倍の収容を実現
    ComputeのLinux Kernel Moduleのソフトウェアルータ
    Bug改修のためのKernel coreの分析
    VerUP作業時の影響を最⼩にするために、VerUPコマンド (Python
    Fabric) の改修。通信断時間を1/3(90秒->30秒) へ
    サービス監視基盤の構築
    Prometheus, Grafana, 独⾃のExporter
    5
    SDNコントローラの各種Bug改修 Patch, Test・Deploy⾃動化
    Python, C++, Ansible, Fabric
    今日はここ

    View Slide

  22. © NTT Communications Corporation All Rights Reserved. 21
    SDNコントローラの経路計算遅延解消
    SDPFクラウドにおいて、特定ユースケースにおいてSDNコントローラの経路計算に
    遅延が発⽣することが判明
    経路計算遅延が発⽣時の影響
    - VM作成時に通信が開始できるのが遅くなる
    - VMをLiveMigrationした際に、経路が正しく切り替わらず(移動後のHVに切り替わらず)
    通信断が発生する

    View Slide

  23. © NTT Communications Corporation All Rights Reserved. 22
    そもそもSDN Controllerの中⾝ってどうなっているの
    SDN ControllerはTungsten Fabric (TF)
    https://tungsten.io
    Controller:
    - Config (外部からAPIを受けて、NWの状態を確定する)
    - Control (Computeとお話をして、設定や経路情報など
    を投⼊)
    - Analytics (各VMなどのResource Monitor系)
    Compute(HypverVisor):
    - vRouterというソフトウェアルータがControlとEVPN通
    信で話すことで経路などを取得
    (実装的にはXMPPというXML Baseのprotocolでwrapし
    ている)
    $PNQVUF
    W3PVUFS
    $POGJH/PEF
    $BTTBOESB
    $POUSPM/PEF "OBMZUJDT
    /PEF
    "OBMZUJDT
    %#
    $POGJH%#
    BQJTFSWFS
    [PPLFFQFS
    SBCCJUNR TDIFNB
    DPOUSPM
    EOT
    5P34XJUDI
    $PNQVUF
    W3PVUFS
    5P34XJUDI

    View Slide

  24. © NTT Communications Corporation All Rights Reserved. 23
    経路計算遅延とは
    $POUSPM/PEF
    DPOUSPM
    $PNQVUF
    W3PVUFS
    7.
    EVPN over XMPP EVPN over XMPP
    $PNQVUF $PNQVUF
    W3PVUFS W3PVUFS
    7. 7. 7.
    Live Migration
    0
    1
    2
    3
    4
    CP1はVM3がCP2上にあることを、
    Control経由で学習している
    LMを⾏うことで、VM3がCP2へ移動
    CP3からControlへVM3の経路を広告
    Controlが、CP1へVM3がCP3に
    あると広告
    CP1がVM3がCP3上にあることを学習
    CP1から⾒てVM3への切り替わり完了
    1
    2
    3
    4
    Live Migration(LM)時の動作概要
    VM3をCompute2(CP2) ⇒ Compute3(CP3) へLMする
    VM3の
    あるCP
    CP1からみた
    VM3のCP
    CP2 CP2
    CP3 CP2
    CP3
    CP3
    CP3
    CP2
    CP2
    CP3

    View Slide

  25. © NTT Communications Corporation All Rights Reserved. 24
    経路計算遅延とは
    $POUSPM/PEF
    DPOUSPM
    $PNQVUF
    W3PVUFS
    7.
    EVPN over XMPP EVPN over XMPP
    $PNQVUF $PNQVUF
    W3PVUFS W3PVUFS
    7. 7. 7.
    Live Migration
    3
    1
    2
    4
    経路計算に時間がかかる
    0
    1
    2
    4
    CP1はVM3がCP2上にあることを、
    Control経由で学習している
    LMを⾏うことで、VM3がCP2へ移動
    CP3からControlへVM3の経路を広告
    Controlが、CP1へVM3がCP3に
    あると広告
    CP1がVM3がCP3上にあることを学習
    CP1から⾒てVM3への切り替わり完了
    VM3の
    あるCP
    CP1からみた
    VM3のCP
    CP2 CP2
    CP3 CP2
    CP3
    CP3
    CP3
    CP2
    CP2
    CP3
    3
    経路計算に時間がかかる
    Compute1はVM3がCompute2に存在すると
    思いパケットを投げ続ける

    View Slide

  26. © NTT Communications Corporation All Rights Reserved. 25
    実装として発⽣していた問題
    デフォルト 経路Table
    仮想NW1 仮想NW2
    実装上の問題:
    • EVPNではある特定の経路に関しては、Controllerが持っている全ての仮想NWに対して経路情報を保つ必要がある
    • EVPNのRFCによって規定されている
    • TF Controllerの実装上、仮想NWが作成、削除されるたびに、全NWに対して該当の経路を全てコピーする実装だった
    我々が実現したい(実現している) スケール
    ・VM40,000。 Tungsten Fabric 利用でも世界最大級。他に事例がない
    ・自分たちで見ていくしかない => パッチを書くことに
    経路1
    TF-Control
    経路1 経路1
    経路2 経路3
    経路
    150000
    経路3
    Compute1
    W3PVUFS
    Compute2
    W3PVUFS
    c
    論理リソース
    VM
    仮想NW
    仮想NIC
    40,000
    30,000
    200,000
    経路 1,000,000
    経路1 経路3
    仮想NW 10000

    View Slide

  27. © NTT Communications Corporation All Rights Reserved. 26
    実装として発⽣していた問題
    全仮想NWに対し
    てLoop
    経路コピーの処理
    Done
    経路コピーの動作概要
    処理にかかる時間概要
    O(MN): M * N * (1仮想NWへのコピーにかかる時間)
    M = 全仮想NWにコピーが必要な経路の数
    N = コピーが必要な全仮想NW数
    1仮想NWへのコピーにかかる時間
    例として我々のLab環境での実績
    M = 500
    N = 10000
    1仮想NWのコピーにかかる時間 = 20usec
    この際におおよそ、500*10000*20usec ~ 100sec
    数百秒、経路計算に時間がかかってしまう
    該当経路全てに対
    してLoop
    End
    Done
    M
    N
    10,000 程度

    View Slide

  28. © NTT Communications Corporation All Rights Reserved. 27
    改善した内容
    経路コピーの改善案概要
    改善の観点:
    - 経路のコピー (20usecと遅い) の回数を減らしたい
    - 問題になっている経路自体はほとんどUpdateがない
    (実物としては物理Switchの物理ポートに依存する経路)
    改善案:
    - 経路自体にUpdateがなかった場合には、追加・削除され
    た仮想NWにだけコピーを行う
    処理にかかる時間概要
    O(M): M * ((1仮想NWへのコピーにかかる時間) + 追加さ
    れた仮想NW抽出)

    O(MN): M * N * (1仮想NWへのコピーにかかる時間)
    例として我々のLab環境での実績
    同様にM=500で計算すると
    おおよそ 500* 10msec ~ 5秒程度 10倍程度の短縮
    経路コピーの処理
    該当経路全てに対
    してLoop
    End
    該当経路自体に
    Updateがあったか
    前回から追加・削除された
    仮想ネットワークの抽出
    追加・削除された
    仮想NWへのLoop
    No: 殆どのケースがこちら
    Loopとしは1,2回
    M

    View Slide

  29. © NTT Communications Corporation All Rights Reserved. 28
    改修Patchを書く中で | 社内Slackの中での議論・相談
    社内に多様なメンバがいて、気軽に相談できるの最高

    View Slide

  30. © NTT Communications Corporation All Rights Reserved. 29
    改修Patchを書く中で | 推測するな計測せよ

    View Slide

  31. © NTT Communications Corporation All Rights Reserved. 30
    Mergeされたぜ︕
    UpStreamにMergeされた!
    それ以外のいくつかの最適化も入れたコードがMergeされた!
    最終評価を待ってプロダクト展開へ。10倍のスケール実現!

    View Slide

  32. © NTT Communications Corporation All Rights Reserved. 31
    SDN開発としてソフトウェア開発した例 | 他にも⼀杯

    1
    3
    4
    SDNコントローラの経路計算遅延の最適化
    10倍の収容を実現
    ComputeのLinux Kernel Moduleのソフトウェアルータ
    Bug改修のためのKernel coreの分析
    VerUP作業時の影響を最⼩にするために、VerUPコマンド (Python
    Fabric) の改修。通信断時間を1/3(90秒 → 30秒) へ
    サービス監視基盤の構築
    Prometheus, Grafana, 独⾃のExporter
    5
    SDNコントローラの各種Bug改修 Patch, 試験・Deploy⾃動化
    Python, C++, Ansible, Fabric

    View Slide

  33. © NTT Communications Corporation All Rights Reserved. 32

    View Slide

  34. © NTT Communications Corporation All Rights Reserved. 33
    僕たちと開発を⼀緒にしてくれる仲間募集中!

    View Slide

  35. © NTT Communications Corporation All Rights Reserved. 34
    ネットワークだけじゃなくて、⾊々開発している仲間達
    カンファレンス発表:
    JANOG: EVPN Anycast Gateway を 商⽤導⼊した話,
    エンタープライズ向けクラウドのSDN基盤の安定化への挑戦
    CNTOM: NFVサービスの 試験自動化とCI/CD
    CODT: エンタープライズ向けクラウドサービスにおける大規模・商用環境でのホストOSバージョンアップ
    エンタープライズ向けクラウドサービス 仮想サーバー基盤開発のリリースサイクル改善
    SRE NEXT: Blue-Green デプロイメントを採用したデプロイの仕組みを実装して共通基盤として導入した話
    公式Blog: NTT Communications ENGINEERS' BLOG
    「業務で ISUCON することになった話」について Tech Night で発表しました
    Qmonus Value Stream: DevOpsプラットフォームの取り組み連載
    他にも (学会、公開資料 etc):
    ベアメタルのつくりかた
    Managed Load Balancer のつくりかた
    大規模クラウドサービス故障復旧におけるゼロタッチオペレーションシステムの開発と評価

    View Slide

  36. © NTT Communications Corporation All Rights Reserved. 35
    ⼀緒に開発する仲間を募集しております
    ジョブ型 スカウト採用(社会人採用): https://hrmos.co/pages/nttcom0033
    SDPF㘢㙜㘙㘼 㙀㘶㘻㙢㖽㘢ක䜅㘛㙦㘫㘾㘕
    SDPF㘢㙜㘙㘼 SDN㘕㖽㘠㘹㘢㘻
    㘢㙜㘙㘼㘨㖽㙆㘬㗫㗊㗑㘋㘨㖽㙆㘬ක䜅㘛㙦㘫㘾㘕€RDBeNFV
    㵤内௰ɽ஝ᅼ㗮IaaSක䜅㘛㙦㘫㘾㘕 (㙌㘕㙔㘲㙞㘨㖽㙃㖽 / 㙂㘗㙄㖽㙃㘗㘩㖽)
    㘢㙜㘙㘼㘨㖽㙆㘬 Site Reliability Engineer
    㙝㙕㖽㘻㗮㘬㘢㙜㙓内Ⴁක䜅㗧Smart Data Platform㘒˕㗈㘋㘰㙈㘻㘙㘚㘕㘛㙦㘫㘾㘕
    ͦͷଞଟ਺

    View Slide