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

PipeCDを使用したBucketeerのGitOps-style CI/CD

muras
January 20, 2021

PipeCDを使用したBucketeerのGitOps-style CI/CD

muras

January 20, 2021
Tweet

More Decks by muras

Other Decks in Technology

Transcript

  1. • Seiya Muramatsu • GitHub: mura-s • Twitter: @mura_s_ •

    Team: Bucketeer • Role: Backend Engineer
  2. • Feature Flag & A/B Testing機能を 提供する社内SaaSプロダクト • GCPプロジェクト ◦

    bucketeer-dev-host ◦ bucketeer-prd-host ◦ bucketeer-dev-srv ◦ bucketeer-uat-srv ◦ bucketeer-abematv-srv: 専用prd環境 ◦ bucketeer-media-srv: 共用prd環境 ◦ bucketeer-load-srv • マルチプロジェクト/テナント アーキテクチャ
  3. • GitHubリポジトリ ◦ bucketeer: App Code (Monorepo) ◦ bucketeer-config: App

    Config ◦ bucketeer-ops: CI, Terraform, ... • Buildツール ◦ Bazel (GoやPythonをbuild) • CIツール ◦ Argo Events ◦ Argo Workflows • CDツール ◦ PipeCD v0.9.4 • マニフェスト管理 ◦ Helm v3 CI/CDの全体像
  4. • ArgoのCI Workflow ◦ 1a) Build ◦ 1b) Unit test

    ◦ 2) 変更されたサービスの検出 ◦ 3) GCRにImagesをpush ◦ 4) dev環境用のPR作成, マージ CIについて ◦ 5) pipectlを使ってsync & wait ◦ 6) E2E test ◦ 7a) stage環境用のPR作成, マージ ◦ 7b) prd環境用のPR作成 ◦ 7c) Git Tag, Release Note作成 ◦ 8) Slack通知
  5. CDについて • PipeCDで計198 Appsを管理 • GitOps & Progressive Delivery •

    CDの流れ ◦ CIでImageのバージョンアップを行うPR作成 ◦ PRマージ (自動/手動) ◦ カナリアPodデプロイ (prd環境のみ) ◦ 自動デプロイ分析 (prd環境のみ) ◦ 全Podsデプロイ • 詳細は次のセクションで
  6. • Pros ◦ PipeCD単体でGitOps, Progressive Deliveryが可能 ◦ 独自のCustom Resourceを使用せず、K8SのDeploymentのまま扱える ◦

    ControlPlaneの社内SaaSが提供されている ◦ 身近で開発されているのでやりとりがしやすい • Cons ◦ 競合ツールと比べて若干の機能不足や不安定さを感じることがある ◦ コミュニティの活発さ => 一緒に盛り上げていきましょう! • 要望 ◦ Cascade deleteの実装 ▪ https://github.com/pipe-cd/pipe/issues/1285 PipeCDについての所感