Kubernetes マイグレーション ワーキンググループ

このワーキンググループのチャーターは、PostgreSQL を除いて GitLab.com のすべてを Kubernetes に移行することです。

属性

プロパティ
作成日2020年6月22日
終了日2022年12月12日
Slack#wg_k8s-migration(社内からのみアクセス可能)
Google DocWorking Group Agenda(社内からのみアクセス可能)
概要とステータスGitLab.com on Kubernetes Epic

チャーター

このワーキンググループのチャーターは、GitLab.com の Kubernetes プラットフォームへの移行をサポートするために、部門横断的な取り組みを同期させることです。この移行は、大きな人員負担なしに複数の大規模で独立した GitLab サイトを実行する必要がある他のイニシアチブの基盤となるため、不可欠です。

スコープと定義

このコンテキストにおいて、このワーキンググループのスコープは、2020-07-13のワーキンググループアジェンダに従って成果物の順序を定義し、2021-02-01にさらに精緻化された以下のリストで定義されます。このリストの目的は、ワーキンググループのチャーターが有限になるように成果物を定義することです。

NFS の廃止

  1. NFS なしで Web/API が動作するようにする(Issue トラッカー
  2. NFS なしで CI/CD ライブトレースが動作するようにする(Issue トラッカー
  3. NFS なしで Pages が動作するようにする(Scalability: https://gitlab.com/groups/gitlab-org/-/epics/3980

Helm チャート

  1. .com の Web/API ノードを Helm チャートに移行する(Issue トラッカー
  2. .com の Pages ノードを Helm チャートに移行する(Issue トラッカー

ステートフルノード

  1. Gitaly を K8s へ
  2. Redis を K8s へ

PostgreSQL を含むすべてのステートフルノードがここに含まれているわけではなく、これは意図的なものです。

役割と責任

ワーキンググループの役割担当者役職
エグゼクティブステークホルダーSteve LoydVP of Infrastructure
ファシリテーターChun Du, Michele BursiDirector of Engineering, Enablement and Engineering Manager, Delivery
ファンクショナルリードNailia IskhakovaSoftware Engineer in Test, Database
ファンクショナルリードAndrew ThomasPrincipal Product Manager, Enablement
ファンクショナルリードGerardo “Gerir” Lopez-FernandezEngineering Fellow, Infrastructure
メンバーJason PlumStaff Engineer, Distribution
メンバーTanya PazitnyQuality Engineering Manager, Enablement
メンバーMek StittriDirector of Quality Engineering
メンバーMarin JankovskiSr Engineering Manager, Infrastructure, Delivery & Scalability
メンバーDilan OrrinoSenior Prouct Manager, Distribution
メンバーMark WoodSenior Prouct Manager, Create:Gitaly
メンバーAndras HorvathEngineering Manager, Gitaly

成果

Kubernetes マイグレーション ワーキンググループは、運用コストを削減し、日常業務の効率を高めるために設立されました。

ワーキンググループは、各サービスの移行パスを担当チームと共同で定義しました。このコラボレーションには、Cloud Native アーキテクチャへのサービス移行を成功させるためのターゲットワークロードの分析が含まれていました。取り組みの一部として、新しいオブザーバビリティソリューションや新しいリリース・デプロイ機能など、移行を成功させるために必要なサポートインフラのすべての関連サービスの作業も行いました。

移行はすべてのステートレスサービスと一部の選択されたステートフルサービスに対応しました。近い将来に新しいアーキテクチャが採用されることを考慮し、すぐに置き換えられるコンポーネントの移行に費やす労力を避けるために、Gitaly の移行は意図的に行わないことが決定されました。移行パスの特定のための作業は今でも有効であり、新しいアーキテクチャが部分的に実装された時点で再評価されます。これを再訪する目標は FY24Q2 末に設定されています。

Kubernetes へのサービス移行により、GitLab はインフラのサイズとコストを最適化しながら、サービスをより柔軟かつ効率的にスケーリングできるようになりました。同様に、一部のケースでは同等またはそれ以上のパフォーマンスを維持できています。パフォーマンスの向上に加え、もう一つの成功要因はデプロイ速度で、約 1.5 倍の改善が観察されています。

GitLab.com を Kubernetes 上で実行するよう移行したことは、顧客が利用できる新しいインストール方法の作成も意味しました。私たちはこれらの新しいインストール方法をドッグフーディングし継続的に改善しており、セルフマネージドの顧客もその恩恵を受けられます。

移行されたサービスのタイムライン

日付サービス
2019-08-30Container Registry
2019-09-27PlantUML
2019-11-21Mailroom
2020-05-30Sidekiq Memory-bound Shard
2020-05-15Sidekiq Elasticsearch Shard
2020-06-09Sidekiq Low-urgency-cpu-bound Shard
2020-06-16Sidekiq Urgent-other Shard
2020-07-07Sidekiq Database-throttled Shard
2020-07-07Sidekiq Gitaly-throttled Shard
2020-07-14Sidekiq Urgent-cpu-bound Shard
2020-08-15Websockets
2020-10-26Git HTTPS
2020-12-01Git SSH
2021-06-28API Service
2021-07-13Remaining Sidekiq Queues
2021-07-22Enhanced Services Observability
2021-09-23Web traffic on Kubernetes
2021-12-01Pages
2022-08-05Camoproxy

移行をサポートするために達成された作業の完全なリストは、GitLab.com on Kubernetes トラッキング Epic で確認できます。

関連リンク