Kubernetes マイグレーション ワーキンググループ
属性
| プロパティ | 値 |
|---|---|
| 作成日 | 2020年6月22日 |
| 終了日 | 2022年12月12日 |
| Slack | #wg_k8s-migration(社内からのみアクセス可能) |
| Google Doc | Working Group Agenda(社内からのみアクセス可能) |
| 概要とステータス | GitLab.com on Kubernetes Epic |
チャーター
このワーキンググループのチャーターは、GitLab.com の Kubernetes プラットフォームへの移行をサポートするために、部門横断的な取り組みを同期させることです。この移行は、大きな人員負担なしに複数の大規模で独立した GitLab サイトを実行する必要がある他のイニシアチブの基盤となるため、不可欠です。
スコープと定義
このコンテキストにおいて、このワーキンググループのスコープは、2020-07-13のワーキンググループアジェンダに従って成果物の順序を定義し、2021-02-01にさらに精緻化された以下のリストで定義されます。このリストの目的は、ワーキンググループのチャーターが有限になるように成果物を定義することです。
NFS の廃止
- NFS なしで Web/API が動作するようにする(Issue トラッカー)
- NFS なしで CI/CD ライブトレースが動作するようにする(Issue トラッカー)
- NFS なしで Pages が動作するようにする(Scalability: https://gitlab.com/groups/gitlab-org/-/epics/3980)
Helm チャート
- .com の Web/API ノードを Helm チャートに移行する(Issue トラッカー)
- .com の Pages ノードを Helm チャートに移行する(Issue トラッカー)
ステートフルノード
- Gitaly を K8s へ
- Redis を K8s へ
PostgreSQL を含むすべてのステートフルノードがここに含まれているわけではなく、これは意図的なものです。
役割と責任
| ワーキンググループの役割 | 担当者 | 役職 |
|---|---|---|
| エグゼクティブステークホルダー | Steve Loyd | VP of Infrastructure |
| ファシリテーター | Chun Du, Michele Bursi | Director of Engineering, Enablement and Engineering Manager, Delivery |
| ファンクショナルリード | Nailia Iskhakova | Software Engineer in Test, Database |
| ファンクショナルリード | Andrew Thomas | Principal Product Manager, Enablement |
| ファンクショナルリード | Gerardo “Gerir” Lopez-Fernandez | Engineering Fellow, Infrastructure |
| メンバー | Jason Plum | Staff Engineer, Distribution |
| メンバー | Tanya Pazitny | Quality Engineering Manager, Enablement |
| メンバー | Mek Stittri | Director of Quality Engineering |
| メンバー | Marin Jankovski | Sr Engineering Manager, Infrastructure, Delivery & Scalability |
| メンバー | Dilan Orrino | Senior Prouct Manager, Distribution |
| メンバー | Mark Wood | Senior Prouct Manager, Create:Gitaly |
| メンバー | Andras Horvath | Engineering Manager, Gitaly |
成果
Kubernetes マイグレーション ワーキンググループは、運用コストを削減し、日常業務の効率を高めるために設立されました。
ワーキンググループは、各サービスの移行パスを担当チームと共同で定義しました。このコラボレーションには、Cloud Native アーキテクチャへのサービス移行を成功させるためのターゲットワークロードの分析が含まれていました。取り組みの一部として、新しいオブザーバビリティソリューションや新しいリリース・デプロイ機能など、移行を成功させるために必要なサポートインフラのすべての関連サービスの作業も行いました。
移行はすべてのステートレスサービスと一部の選択されたステートフルサービスに対応しました。近い将来に新しいアーキテクチャが採用されることを考慮し、すぐに置き換えられるコンポーネントの移行に費やす労力を避けるために、Gitaly の移行は意図的に行わないことが決定されました。移行パスの特定のための作業は今でも有効であり、新しいアーキテクチャが部分的に実装された時点で再評価されます。これを再訪する目標は FY24Q2 末に設定されています。
Kubernetes へのサービス移行により、GitLab はインフラのサイズとコストを最適化しながら、サービスをより柔軟かつ効率的にスケーリングできるようになりました。同様に、一部のケースでは同等またはそれ以上のパフォーマンスを維持できています。パフォーマンスの向上に加え、もう一つの成功要因はデプロイ速度で、約 1.5 倍の改善が観察されています。
GitLab.com を Kubernetes 上で実行するよう移行したことは、顧客が利用できる新しいインストール方法の作成も意味しました。私たちはこれらの新しいインストール方法をドッグフーディングし継続的に改善しており、セルフマネージドの顧客もその恩恵を受けられます。
移行されたサービスのタイムライン
| 日付 | サービス |
|---|---|
| 2019-08-30 | Container Registry |
| 2019-09-27 | PlantUML |
| 2019-11-21 | Mailroom |
| 2020-05-30 | Sidekiq Memory-bound Shard |
| 2020-05-15 | Sidekiq Elasticsearch Shard |
| 2020-06-09 | Sidekiq Low-urgency-cpu-bound Shard |
| 2020-06-16 | Sidekiq Urgent-other Shard |
| 2020-07-07 | Sidekiq Database-throttled Shard |
| 2020-07-07 | Sidekiq Gitaly-throttled Shard |
| 2020-07-14 | Sidekiq Urgent-cpu-bound Shard |
| 2020-08-15 | Websockets |
| 2020-10-26 | Git HTTPS |
| 2020-12-01 | Git SSH |
| 2021-06-28 | API Service |
| 2021-07-13 | Remaining Sidekiq Queues |
| 2021-07-22 | Enhanced Services Observability |
| 2021-09-23 | Web traffic on Kubernetes |
| 2021-12-01 | Pages |
| 2022-08-05 | Camoproxy |
移行をサポートするために達成された作業の完全なリストは、GitLab.com on Kubernetes トラッキング Epic で確認できます。
