CodeZine(コードジン)

特集ページ一覧

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

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

  • LINEで送る
  • このエントリーをはてなブックマークに追加

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

目次

はじめに

 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を提供していて、デプロイの状態を確認できます。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

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

著者プロフィール

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

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

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5