|
2022年4月6日、アリババクラウドはネイティブハイブリッドデプロイメントシステム「Koordinator」を正式にオープンソース化しました。報道によると、Koordinatorはアリババ社内における長年の大規模アプリケーション実践の集大成であり、2021年の「双十一(ダブルイレブン)」ショッピングフェスティバルにおいてコンピューティングコストを50%削減する上で重要な役割を果たしました。アリババによるこの大規模実践プロジェクトとは一体何なのでしょうか?開発の背景、技術原理、そしてオープンソース化の計画とは?アリババは「双十一」のような過酷な状況におけるリソース課題に対処するため、ハイブリッドデプロイメント技術を社内でどのように活用しているのでしょうか? 先日、【T·TALK】シリーズの第5回では、アリババの技術専門家3名(イー・チュアン、ゼン・ファンソン、ヤン・グオドン)が、Koodinatorプロジェクトを皮切りに、ハイブリッドデプロイメント技術の技術的背景、実装経験、そして将来展望について洞察を共有しました。【T·TALK】では、このライブストリームの核となるコンテンツをまとめ、様々な視点やインスピレーションを提供したいと考えました。 混合部品技術コンセプトハイブリッドデプロイメントの概念は、2つの観点から理解できます。ノード粒度の観点から見ると、ハイブリッドデプロイメントとは、複数のコンテナまたはアプリケーションを同一ノードにデプロイすることを意味します。複数のコンテナには、複数のオンラインコンテナ、複数のオフラインコンテナ、そしてオンラインとオフラインの両方である複数のコンテナの3つの形態があり、一般的に理解されているオフラインコンテナに限定されません。単一ノードは、物理マシン、単一のECSインスタンスなど、コンテナを実行できる最小単位です。 一方、クラスタ粒度の定義から始めると、複数のアプリケーションが単一のクラスタ内に自動的にデプロイされます。アプリケーション特性を予測的に分析することで、ビジネスプロセス間のピーク時とオフピーク時を分散させることができます。これが混合デプロイメントです。一般的に、混合デプロイメントはすべてのタスクをより少ないリソースで実行することを目的としており、最終的にはコスト削減と効率性の向上を実現します。 上記のハイブリッド部品の定義に基づいて、ハイブリッド部品の 2 つのコア技術を特定できます。 1. ノードの粒度
2. クラスターの粒度: ノードの粒度に基づいて実装されます。
業界におけるハイブリッドデプロイメント技術のパイオニアとして、アリババは2011年にコンテナ技術の探求を開始し、2016年にハイブリッドデプロイメント技術の研究開発を開始しました。以来、複数回の技術アーキテクチャのアップグレードを経て、今日のクラウドネイティブハイブリッドデプロイメントシステムアーキテクチャへと進化しました。Kubernetesをベースとしたクラウドネイティブの統合スケジューリングを直接採用することで、複数のタスクと負荷を協調的に認識し、ハイブリッドデプロイメント全体の効果を実現しています。これは現在最も実績のある理想的なアーキテクチャであり、最高のエンジニアリング実装でもあります。 現在、多くの企業がハイブリッド展開に注力し、そのメリットを早期に享受しようとしています。最初の解決策は、パブリッククラウドや商用製品を直接導入することです。これらの製品には、通常、ハイブリッド展開と弾力性に対するサポートがある程度備わっています。2つ目の解決策は、オープンソースコラボレーションです。このアプローチは、オープンソースコミュニティ内の様々なテクノロジースタックで蓄積された経験を活用しながら、チーム独自の展開の有効性を確保できるため、より推奨される選択肢となっています。 Alibaba Cloud ネイティブ混合デプロイメントシステムコーディネーターアリババが開発した社内向けハイブリッドデプロイメントシステム「Koordinator」は、2022年4月6日に正式にオープンソース化されました( https://koordinator.sh )。Koordinatorの技術基盤とシステム全体の設計は、アリババ社内での長年の実践経験に基づいています。アリババは、オープンソースを通じてハイブリッドデプロイメント技術の標準化を促進し、より多くのユーザーが活用し、その恩恵を受けられるよう努めています。 コーディネーター プロジェクトは現在、次の 3 つの部分で構成されています。
全体的なアーキテクチャの観点から見ると、Koordinator プロジェクトのテクノロジも 3 つの主要モジュールに分かれています。最下層は Koordlet モジュールで、機能認識、単一マシン レベルの干渉検出、一部の QoS 管理、単一マシン リソース分離など、対応する単一マシンの一部の技術機能を担当します。 もちろん、Koordinator コンポーネントは、単一のマシン上のいくつかのランタイム マネージャーの役割も拡張し、基礎となる基本コンポーネントへの侵入的な変更を避けながら、さまざまな異なるランタイムに適応できるようにします。 セントラルノードには主に2つの役割があります。1つ目はコーディネータースケジューラで、スケジューリング機能とスレーブスケジューリング機能を備えています。通常の状況では、スケジューリングを実行する確率はスレーブスケジューリングを実行する確率よりもはるかに高いですが、スレーブスケジューリングは混合デプロイメントプロジェクトにおいて非常に重要な役割を担い、クラスターリソース全体の運用品質を高いレベルに維持します。 2つ目の部分はKoordinator Managerで、これは主にワークロードの接続方法を含む混合デプロイメント戦略の管理に使用されます。さらに、Koordinator Managerにはリソースプロファイリングモジュールも統合されており、スケジューラのサポート強化、リソース配分の改善、そしてサービス中断につながる可能性のあるローカルマシン上のホットスポットの回避を目的としています。 上記はKoordinatorの全体的なアーキテクチャの概要です。これらのモジュールの中心的な目標は、混合デプロイメントにおける2つの主要な問題の解決を支援することです。1つ目は、混合デプロイメントのワークロードを統合し、さまざまなタスクを最小限のコストでKoordinatorフレームワークに統合できるようにすることです。2つ目は、混合デプロイメント中にさまざまなタスクがスムーズに実行されるようにし、計算タスクに必要なコンピューティングパワーを提供し、オンラインタスクのレイテンシ問題を防ぐことです。 比較的成熟したハイブリッド展開システムであるKoordinatorは、「二重のゼロイントルージョン(二重侵入)」を特徴としています。まず、Koordinatorのアプリケーションワークロード管理はゼロイントルージョンです。Koordinatorは、一般的なコンピューティング集約型ワークロード向けにシームレスなハイブリッド展開パスを確立できるよう、ユーザーを支援することに多大な労力を費やしています。ユーザーは簡単な設定を行うだけで済みます。Koordinatorは、いくつかの設定YAMLファイルを適用し、コンピューティングタスクをハイブリッド展開タスクに自動的に変換するため、これらのコンピューティングフレームワークへの変更は不要です。これにより、エンタープライズ環境内でハイブリッド展開をより迅速に展開できます。 2つ目のゼロイントルージョン(侵入ゼロ)の側面は、KoordinatorがKubernetesに侵入しないという事実です。KoordinatorがサポートするKubernetesバージョンでは、ユーザーはオープンソースコンポーネントを独自のKubernetesクラスターにインストールすることで、対応する機能を利用できます。Kubernetesは中央ノードでは優れたスケーラビリティを備えていますが、ノードレベルではスケーラビリティが劣っています。そのため、KoordinatorプロジェクトのKubeletと基盤となるコンテナランタイムプールの間には、ポリシー拡張をサポートするフックマネージャーが存在します。これにより、Kubeletや基盤となるContainerdまたはDockerへの侵入的な変更を回避できます。 ハイブリッド展開フレームワーク全体において、最も重要な要素はリソースモデルです。ハイブリッド展開の本質は、差別化された機能の創出にあります。これにより、リソースの過剰割り当てが可能になり、リソース利用率が向上します。このプロセス全体はリバースエンジニアリングによって導き出されます。Koordinatorが定義するリソースモデルは非常に包括的で、オンラインサービス、リアルタイムコンピューティング、AIトレーニングタスク、バッチ処理タスク、さらには一部のテストタスクまでサポートします。 さらに、Koordinatorは、CPUクォーラム、一部のLLC分離機能、オペレーティングシステムが提供する優先度プリエンプション機能など、様々なリソース次元にわたるリソース分離技術を提供します。これらの分離機能は今後Koordinatorコミュニティで提供され、ユーザーはこれらの分離機能に加え、様々なリソース特性に合わせて実装された干渉検出機能を徐々に利用できるようになるでしょう。 KoordinatorはKubernetesコミュニティを基盤としていますが、Kubernetesコミュニティには一切変更を加えていません。ハイブリッドデプロイメント技術を使用する場合、ユーザーはまずKubernetesを適用し、その後、Kubernetes上にKoordinatorの対応するコンポーネントをインストールします。これがKoordinatorの上流と下流の関係です。 Koordinatorコミュニティが提供する機能と、企業の内部環境の実際のニーズとの間には、多少の差異が生じる可能性があります。ユーザーはコミュニティを活用して独自の内部バージョンを作成し、企業の特性に合わせて調整することで、既存のシナリオとの互換性を確保できます。このアプローチにより、Koordinatorコミュニティ全体との連携が強化されます。Koordinatorコミュニティは非常に迅速にイテレーションを行っており、このモデルでは、ユーザーはコミュニティから継続的に新機能を入手しながら、内部バージョンの非固有の部分のみをメンテナンスするだけで済みます。 現在、アリババは実質的に混合デプロイメントの完全網羅を実現し、自社の実践を通して、混合デプロイメント技術が企業に大きな価値をもたらすことを証明しました。アリババは、オープンソースを通じて混合デプロイメント技術の標準化を推進し、より多くのユーザーがより簡単に活用し、その恩恵を受けられるようにしたいと考えています。今後、コーディネーターコミュニティも様々な役割を定義し、誰もがオープンソースを通じて参加し、貢献し続けることを歓迎します。 混合部門の実践と発展の見通しアリババグループには、典型的な2つの混合デプロイメントシナリオがあります。1つは日常的なシナリオで、混合デプロイメントの主な日常的な用途は災害復旧能力です。アリババは、災害復旧能力をビッグデータコンピューティングに活用することで、全体的なリソース利用率を向上させることを目指しています。 もう1つのセグメントは、「ダブル11」のようなアプリケーションシナリオです。アリババのオンライントラフィックは1日の約10倍に達します。従来であれば、大規模プロモーションのリソース需要に対応するには10倍のマシン数が必要でした。しかし、アリババはMaxCompute、バッチ処理、非リアルタイムタスクをオフラインタスクとして扱い、大幅にダウングレードすることでオンラインビジネスのためのリソースを解放し、プロモーションのピーク時におけるリソース調達の必要性を軽減しています。 アリババの技術開発に基づくと、混合デプロイメントの適用環境は以下のようにまとめられます。第一に、企業のワークロードは多様である必要があります。第二に、企業のトラフィックと業務が一定規模に達すると、リソースの弾力性が求められ、コスト削減と効率向上がより重要になります。初期段階または小規模なシナリオでは、ECSの弾力性は、混合デプロイメントと弾力性の利点を享受するのに十分です。 混合デプロイメント技術は、ハードウェアからオペレーティングシステムに至るまでのスケジューリングを含む体系的なプロジェクトであり、協調的な最適化が求められます。アリババグループのリソース利用率向上フェーズを見ると、リソース利用率が10%から30%に上昇する段階では、この段階の技術的ハードルは比較的低くなっています。Kubernetesのスケジューリングや基本的な混合デプロイメント機能と同様の手法を用いることで、全体的な負荷改善を実現できるため、この段階はほとんどの企業に適用可能です。 しかし、混合デプロイメントのレベルを30%から50%に引き上げることは、大きな課題を伴います。アリババの混合デプロイメント技術は進化しており、コンピューティング、ストレージ、ネットワークにおいて数々のアップグレードが行われてきました。しかし、これまでのアップグレードでは、混合デプロイメントと柔軟なリソースモデルに対する当社のニーズを満たすには至っていません。現時点では、アプリケーションアーキテクチャの改善が必要です。例えば、アリババはビジネスアーキテクチャからローカルディスクを削除し、IO分離の問題をネットワーク分離の問題へと転換しました。これらを真に利用率を向上させるには、アプリケーション側でのエンドツーエンドの調整が必要です。 さらに、クラスタにおける混在デプロイメント自体の参入障壁は高いです。単純なワークロードであれば、4コアまたは8コア、16GBのRAMといった標準仕様に従ってスケジューリングできます。しかし、混在デプロイメントによってワークロードの複雑さとリソース仕様が増すと、割り当て問題はNP困難問題となります。この特定の問題を解決するには、意思決定インテリジェンスに類似した、より複雑な問題解決アルゴリズムを使用し、混在デプロイメントプロセス中にアプリケーションを適切にプロファイリングする必要があります。これらはすべて、改良が必要な点です。 ご覧のとおり、ハイブリッドデプロイメントは大規模なシステムエンジニアリングプロジェクトです。アリババは本日、ハイブリッドデプロイメント分野における過去の経験と教訓をオープンソースを通じて共有しています。今後、より多くのパートナーが参加し、ハイブリッドデプロイメントのメリットを享受するだけでなく、より深い技術を発見し、ハイブリッドデプロイメント技術エコシステムを共同で構築することを期待しています。 |