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

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

Yoshiaki Tobioka
November 01, 2022
6.5k

クラウドの作り方(使い方じゃないよ)/ 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. 1 ⾃⼰紹介 経

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

    c 物理リソース 論理リソース 3000台 5000台 VM 仮想NW 仮想NIC 40,000 30,000 200,000 経路 1,000,000
  6. © NTT Communications Corporation All Rights Reserved. 6 Agenda| はじめに

    常に重視しているのは、 - エンタープライズで求められる⾼い品質 - スケーラビリティ - 検証だけではない、プロダクトへの貢献 Data-Center NW開発 x ソフトウェア SDN/NFV 開発 x ソフトウェア
  7. © 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
  8. © 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
  9. © NTT Communications Corporation All Rights Reserved. 10 商用クラウド開発・運用の裏側 商用デプロイ

    ・ 運用 検証 ・ テスト 実装 インフラ設計 (DC / Rack / 配線) システム設計 (NW / Software / 運用)
  10. © NTT Communications Corporation All Rights Reserved. 11 インフラ設計 c

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

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

    試験の高度化・網羅性・自動化の推進 2 1 3 ネットワークの構築の自動化 ネットワークの運用の自動化 今日はここ
  13. © NTT Communications Corporation All Rights Reserved. 14 c 試験の高度化・網羅性・自動化の推進

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

    物理機器を多く扱うData-Center NWの開発において ・ネットワーク x ソフトウェア の融合 ・ハードウェア x ソフトウェア の融合 を意識し、ネットワークエンジニア、ソフトウェアエンジニアが活躍中
  17. © 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
  18. © NTT Communications Corporation All Rights Reserved. 20 SDN開発としてソフトウェア開発した例 2

    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 今日はここ
  19. © NTT Communications Corporation All Rights Reserved. 21 SDNコントローラの経路計算遅延解消 SDPFクラウドにおいて、特定ユースケースにおいてSDNコントローラの経路計算に

    遅延が発⽣することが判明 経路計算遅延が発⽣時の影響 - VM作成時に通信が開始できるのが遅くなる - VMをLiveMigrationした際に、経路が正しく切り替わらず(移動後のHVに切り替わらず) 通信断が発生する
  20. © 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
  21. © 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
  22. © 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に存在すると 思いパケットを投げ続ける
  23. © 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
  24. © 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 程度
  25. © 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
  26. © NTT Communications Corporation All Rights Reserved. 28 改修Patchを書く中で |

    社内Slackの中での議論・相談 社内に多様なメンバがいて、気軽に相談できるの最高
  27. © NTT Communications Corporation All Rights Reserved. 30 Mergeされたぜ︕ UpStreamにMergeされた!

    それ以外のいくつかの最適化も入れたコードがMergeされた! 最終評価を待ってプロダクト展開へ。10倍のスケール実現!
  28. © NTT Communications Corporation All Rights Reserved. 31 SDN開発としてソフトウェア開発した例 |

    他にも⼀杯 2 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
  29. © 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 のつくりかた 大規模クラウドサービス故障復旧におけるゼロタッチオペレーションシステムの開発と評価
  30. © NTT Communications Corporation All Rights Reserved. 35 ⼀緒に開発する仲間を募集しております ジョブ型

    スカウト採用(社会人採用): https://hrmos.co/pages/nttcom0033 SDPF㘢㙜㘙㘼 㙀㘶㘻㙢㖽㘢ක䜅㘛㙦㘫㘾㘕 SDPF㘢㙜㘙㘼 SDN㘕㖽㘠㘹㘢㘻 㘢㙜㘙㘼㘨㖽㙆㘬㗫㗊㗑㘋㘨㖽㙆㘬ක䜅㘛㙦㘫㘾㘕€RDBeNFV 㵤内௰ɽ஝ᅼ㗮IaaSක䜅㘛㙦㘫㘾㘕 (㙌㘕㙔㘲㙞㘨㖽㙃㖽 / 㙂㘗㙄㖽㙃㘗㘩㖽) 㘢㙜㘙㘼㘨㖽㙆㘬 Site Reliability Engineer 㙝㙕㖽㘻㗮㘬㘢㙜㙓内Ⴁක䜅㗧Smart Data Platform㘒˕㗈㘋㘰㙈㘻㘙㘚㘕㘛㙦㘫㘾㘕 ͦͷଞଟ਺