SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

GitOpsで実現する継続的デリバリー

「PipeCD」で始める継続的デリバリー~GitOpsとプログレッシブデリバリーの実践

GitOpsで実現する継続的デリバリー 第3回

  • X ポスト
  • このエントリーをはてなブックマークに追加

 第1回ではソフトウェアデリバリーの手法であるGitOpsについて説明しました。第2回ではプログレッシブデリバリーという一歩進んだ手法を説明しました。第3回となる本記事では、「PipeCD」という継続的デリバリーシステムを使って、GitOpsとプログレッシブデリバリーの実現方法を紹介します。

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 PipeCDとは、KubernetesやGoogle Cloud Run、Amazon ECS、 AWS Lambdaといったさまざまなプラットフォームに対応する継続的デリバリーシステムです。アプリケーションのデリバリーはもちろん、Terraformにも対応しているのでインフラストラクチャーの構築・運用にも活用できます。

 著者が所属するサイバーエージェントでは、ソフトウェアデリバリー領域において各プロダクトが良いプラクティスをそれぞれで別々に模索するという点で非効率性の課題がありました。そこで良いプラクティスをソフトウェアとして実装し、組織的にデリバリーパフォーマンスを改善するためにPipeCDという継続的デリバリーシステムの開発が始まりました。2020年の6月よりOSSとして公開され、少しずつ開発者やスター数が伸び、Kubernetes Podcastでも紹介されるなど、徐々に注目を集めています。

PipeCDの特徴とメリット

 PipeCDには以下のような特徴やメリットがあります。

  • Kubernetes以外のさまざまな対象に対しても、GitOpsスタイルの統一したインターフェースでデプロイが可能
    • 2021年9月時点では、AWS LambdaやGoogle Cloud Runを始めとしたサーバーレスアーキテクチャ、Terraformなどの構成管理ツールに対応
  • 汎用性の高いパイプライン機構により、さまざまなデプロイ戦略を実行することが可能
  • 自動ロールバックはじめ、デプロイフローを自動化するさまざまなサポート機能
  • 複数プロジェクトを持つ大規模組織での利用を想定し、マルチテナンシーでの運用も容易

 インフラの管理からアプリケーションのデプロイまでさまざまな対象に対応していて、複数のプロジェクトやチームが存在する企業でも統一的な運用ができます。まだ若いプロダクトなのでv1のリリースはまだですが、精力的に開発されています。機能のステータスはコチラを参照してください。2021年9月時点で、サイバーエージェント社内では700以上のアプリケーションで運用をしています[注1]

 [注1] ここでのアプリケーションとはPipeCDにおけるApplicationです。

PipeCDのアーキテクチャ

 PipeCDのアーキテクチャを簡単に説明します。

アーキテクチャ
アーキテクチャ

 PipeCDはコントロールプレーンとPipedエージェント(piped)という2つのコンポーネントから構成されています。コントロールプレーンはAPIアプリケーションで、エージェントはシングルバイナリです。エージェントはGitHubのリポジトリを監視していて、変更を検知するとコントロールプレーンに通知しデプロイを始めます。コントロールプレーンではWeb UIを提供していて、デプロイの状態を確認できます。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
PipeCDを使ったGitOpsによる継続的デリバリー

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
GitOpsで実現する継続的デリバリー連載記事一覧

もっと読む

この記事の著者

安井 岳(株式会社サイバーエージェント)(ヤスイ ガク)

 サイバーエージェントに中途入社し、社内基盤である継続的インテグレーションシステムの開発と運用に従事。現在は社内基盤のフィーチャーフラグ・ABテストシステムの開発と組織のデリバリーパフォーマンスの向上を支援する活動がメイン。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/14811 2021/10/18 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング