パイプCDがCNCFのサンドボックスに参加しました

オープンソースの開発者として、とても嬉しい日です 😄

私たちのチームがはじめた継続的デリバリーツールであるPipeCDCNCFのSandboxに加入することができました!!!2020年10月にオープンソースとして公開して以降、チームとして様々な問題と直面し、直近の数ヶ月はCNCF Sandboxへの参加という目標のために嬉々として日々のタスクに取り組んできました。そして今はこの結果をこのブログに発表できることに本当に満足しています。しかし、Sandboxになったということはある意味、スタートラインに立ったということでもあります。

PipeCDについて

PipeCDのミッションは「The One CD for All {applications, platforms, operations}」です。KubernetesやGoogle Cloud Run、Amazon ECS、 AWS Lambdaといったさまざまなプラットフォームににおいて、統一的なGitOpsスタイルでのプログレッシブ・デリバリーを実現するプロダクトです。

GitOps

PipeCDはGitOpsという手法で継続的デリバリーを実現します。GitOpsは、アプリケーションのライフサイクル全体をGitリポジトリに管理する方法です。GitOpsでは、アプリケーションの構成ファイル、インフラ構成などをすべてGitリポジトリに保存し、各構成変更はGitリポジトリにプッシュすることで反映されます。これにより、セキュリティと信頼性を向上させることができます。

プログレッシブデリバリー

プログレッシブデリバリーは、新しいバージョンを段階的にロールアウトしていくことで影響範囲や時間を細かく制御するための手法全般を指します。

PipeCDは、既存のモニタリング技術と組み合わせてエンドユーザーへの悪影響をできるだけ小さくすることを目指しています。例えば、以下のような段階的なステップを踏んだデプロイメントが可能です。

1. カナリアデプロイメント

新しいバージョンのアプリケーションをデプロイし、少ない割合のトラフィックを流します。

2. 分析

カナリアリリースされたアプリケーションのメトリクスを分析し、エラーなど問題が発生していないか調べます。

3. 自動化されたロールバック

もし分析ステップで問題が検知されてば即座にロールバックします。問題ない場合は自動的にすべてのトラフィックが新しいバージョンのアプリケーションに流され、デプロイメントが完了します。

その他にもカナリアデプロイメントの代わりにブルーグリーンデプロイメントを採用する、デプロイメント中に承認ステップを入れることも可能です。

マルチプロバイダー対応

PipeCDは統一したインターフェースで様々なインフラ・アプリケーションを管理できます。Kubernetes、Terraform、Cloud Run、AWS Lambda、Amazon ECS などのマルチクラウドをサポートしています。また、Prometheus、Datadog、Stackdriver などの複数の分析プロバイダーに対応しています。

セキュリティ

各プロバイダーやGithubの認証情報はクラスタの外部に公開されず、コントロールプレーンにも保存されません。組み込みのシークレット管理、SSO、RBAC機能も提供します。

サイバーエージェント発のOSS

PipeCDは弊社の開発生産性を向上させるための専門組織「Developer Productivity室」が開発・運用を行い、社内では2,700以上のアプリケーションを管理するまでになりました。OSSとして公開して以降は、外部からのコントリビューションもあり、より一層の成長を遂げてきました。

CNCF x PipeCD

Cloud Native Computing Foundation (CNCF) は、今日広く知られているプロジェクトをホストしており、KubernetesやEnvoy、fluentdを使っている人には馴染みがあるかもしれません。また、CNCFは世界の開発者、エンドユーザー、ベンダーを集めて、最大規模のカンファレンスを運営しています。PipeCDはCNCF Sandboxに加わることで既にある偉大なプロジェクトと同様に世界中で愛されるプロジェクトへの道を進んでいきます。

コミュニティへの取り組み

PipeCDの成長は現在までユーザーや多くの開発者からの多大な貢献によって支えられてきました。いままでPipeCDに関わっていただいたみなさま、本当にありがとうございました!ドキュメントやソースコードへのコントリビュートだけでなく、Issueの作成、Twitter上での言及、イベントでの質問などなど、どんなに小さな反応でも私たちにとっては大きなモチベーションになって開発を推し進めてくれました。コミュニティからの貢献がなければ、ここまでプロジェクトを成長させることはできませんでした。

PipeCDも他のプロジェクトと同様に一人のinitial commitから始まりました。現在、Githubのコントリビューターは50人を超えました。

これから

PipeCDはいままさにCNCF Sandboxに参加したばかりでやらなければいけないことが山ほどあります!

まずはPipeCDの活動をどんどんオープンにしていきます。意思決定の過程を透明化し、興味のあるだれもが参加できるようにしていきます。私たちはコミュニティが成長するのを楽しみにしており、そのための努力に全力を出すつもりです。

PipeCDコミュニティへ参加

PipeCDについて興味があるなら、ぜひコミュニティに参加してください![pipecd.dev](https://pipecd.dev) にアクセスして詳細を確認してみてください。GithubのIssuesから解決できそうな問題を探すのもおすすめです。

– Website: pipecd.dev
– Github: pipe-cd/pipecd
– Slack: Cloud Native Computing Foundation の #pipecd, #pipecd-jp チャンネル
– Twitter: @pipecd_dev

仲間を募集中!

私たちサイバーエージェント Developer Productivity室は、PipeCDなどオープンソースコミュニティで共に活動する仲間を募集しています。採用ページから詳細をチェックしてください。