BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース CircleCI、Kubernetesワークロードのサポートに向けて、パートナ統合を追加発表

CircleCI、Kubernetesワークロードのサポートに向けて、パートナ統合を追加発表

原文(投稿日:2019/05/30)へのリンク

CircleCIは、テクノロジパートナプログラムの一環として、新たなパートナ統合策を発表した。CircleCIは以前、Orbsというパッケージ管理ソリューションを発表している。Orbsは共通的なCI/CDタスクを、再利用および共有可能なパッケージにまとめたものだ。今回の発表でCircleCIは、AWSAzureVMwareRed HatKublrHelm用に、それぞれパートナがサポートするタスクを追加した。

orbは、コマンド、エグゼキュータ、ジョブをひとつの再利用可能なブロックにまとめた、共有可能なコンポーネントである。orbによって、チームやプロジェクト間で、必要なCI/CDの共有が可能になる。サードパーティのソリューションを、最小限のコードで、CI/CDパイプラインに統合することも簡単にできる。

CircleCIは、公式のorb、パートナの提供するorb、コミュニティが提供するorbを共有するための、orbsレジストリを提供する。CircleCIの事業開発責任者であるTom Trahan氏は、InfoQとの会話の中で、11月にOrbsがローンチされて以降、現在までに700以上のorbがレジストリで利用可能になったと述べている。レジストリ内のorbは、CircleCIによって提供されたものはCertified、パートナー統合によって提供されている場合はPartnerと、それぞれマークされる。

今回の最新発表では、Kubernetesのサービスと環境をサポートおよび管理するために、CircleCIとパートナの両方からorbが追加されている。この中には、Google Kubernetes EngineAmazon Elastic Container Service(EKS)Azure Kubernetes ServiceRed Hat OpenShiftのオーブが含まれている。 AmazonGoogleDockerAzureのコンテナレジストリサービスとのやり取りを容易にするためのorbが含まれている。

CircleCIのプロダクトマネージャであるNathan Dintenfass氏は、orbの共有には3つの大きな問題を解決する意図がある、と説明している。ひとつ目は、CircleCI構成内でのDRYサポートを改善することだ。ふたつ目は、プロジェクト間でコードの再利用を可能にする方法を見つけることだ。そして最後は、共通構成を実現し、CI / CDパイプラインのセットアップで一般的なボイラープレートコードの量を減らすための、より簡単なパス提供方法を検討することだ。新しいパッケージ管理ソリューションを用意するにあたって、チームは、コンフィギュレーションをコードに含むこと、ビルドの再現性を提供すること、データとしてコンフィギュレーションを保存することなど、CircleCIのコンフィギュレーション構造に関する既存の決定を維持することを目標とした。

Dintenfass氏の説明によると、チームは、orbを変更不能にするという決定を下した。これにより、バージョンが更新されない限り、変更の提供は行われないことになる。バージョンを追跡するために、orbは、厳密なセマンティックバージョニングアプローチに従う必要がある。同時に、開発バージョンを可能にするため、バージョンdev:fooという形式で公開することができる。開発orbの変更はチームの誰でも可能だが、最終公開日から90日後には有効期限が切れるようになっている。semver形式のバージョンで公開されたorbはプロダクションorbと見なされ、不変で持続性がある。

orbの依存関係は、公開時にロックされている。Orb-AがOrb-Bに依存している場合、Orb-Aがレジストリに追加されると、その依存関係はバージョンロックされるのだ。Orb-Bの新しいバージョンがレジストリに出荷されても、Orb-Aの新しいバージョンが公開されるまで、それがOrb-Aに組み込まれることはない。Dintenfass氏はこの選択について、ビルドの再現性を提供するという判断に従ったものだ、としている。

orbはそれぞれ、固有の名前空間内にある。Dintenfass氏の説明によると、"‘空’の名前空間はありません。‘_’のように予約された特別なデフォルトや、‘公式’なorbも存在しません。私たちが開発したorbをデフォルトセットにしたり、名前空間内で特別な重要性を持たせることはしない、と決めたのです。"代わりに氏らは、認定orbプログラムを導入して、CircleCIチームの認定したorbをプラットフォームの一部として扱うことにした。本記事の執筆時点では、circleci名前空間内のorbのみが認証されている。

現時点において、すべてのorbはオープンソースである。Dintenfass氏は、次のように述べている。"実行可能なorbは、ソースを見ることができます。これはつまり、自分のコード内でブラックボックスが実行されることはなく、また自分のコードや秘密は守られる、ということです。" 現時点ではorbの静的な自動スキャニングは行われていないが、Trahan氏は、これが今後のリリースのロードマップにあることを発表している。さらに氏は、認定orbとパートナorbはすべて、CircleCIによるレビュープロセスを経て、ベストプラクティスに従うようになっていることも付け加えた。

Trahan氏は、CircleCIがテーマ別リリースをロードマップの一部として計画している点について、詳細に説明した。チームは、クライアントから寄せられた共通的なユースケースをレビューし、それらのケースを単純化するための改善を提供することを目標にしている。Trahan氏が挙げる今後のテーマは、セキュリティの改善(脆弱性スキャン、秘密管理、ポリシーコンプライアンス)、オープンソースプロジェクト管理用ツール、自動テストソリューションなどだ。将来の機能改善に加えて、チームは毎月、新たなパートナを追加している。

CircleCIは、orbの使用方法と公開方法に関するドキュメントを提供している。現在のorbのリストは、Orb Registryで見ることができる。orbは現在、クラウドサービスの無償ティアと有償ティアのいずれでも利用可能である。セルフホスト版では利用できないが、Trahan氏はこれがロードマップにあることを示している。レジストリに追加された新しいパートナとorbの詳細については、CircleCIブログの公式発表を確認して頂きたい。

この記事に星をつける

おすすめ度
スタイル

BT