はじめに
筆者は CircleCI でソリューション エンジニアを 2 年半にわたり務める中で、大企業のお客様を相手に、開発プロセスへの健全な CI/CD プラクティスの浸透をサポートするというありがたい経験をしてきました。
最先端を行く組織は、アプリケーションの拡張性、信頼性、セキュリティを高めようと取り組んでいます。 他社に差をつけるには、プロダクトをユーザーの元に素早く確実に届けることが絶対的に不可欠だからです。
プロダクトのリリースを素早く確実に行ううえで必要なものは何でしょうか?
CircleCI には、そのための機能 “CircleCI Orb” があります。 類似したニーズを持つ複数のプロジェクトに対して CI/CD を簡単に、しかもスピーディに実現できる頼れるツールとして、Orb の普及が進んでいます。 また、Orb には、開発者がプロジェクトの全容を短時間で確認しやすくなるという効果もあります。
この記事では、CircleCI Orb の概要と仕組み、導入すべき理由について説明します。また最後には、CI/CD プラクティスへの Orb の導入ガイドもご紹介します。
CircleCI Orb とは?
CircleCI Orb は、実績あるロジックに基づいて、複数のプロジェクト間で特定のタスクを自動化する手順をまとめたものです。 パッケージ マネージャーとしての機能も備えており、構成の手間を最小限に抑えてソフトウェア スタックやサービス スタックを迅速、効率的に統合できます。 Orb は拡張性に優れ、プロジェクト固有のニーズに合わせたジョブ、コマンド、Executor の活用にも対応しています。
CircleCI Orb にはパブリック版とプライベート版の 2 種類があり、いずれもユースケースの近いプロジェクトにまたがって導入できます。 パブリック Orb には人気の高いツールが組み込まれており、CircleCI ユーザーのコミュニティ全体に公開されています。 これに対し、プライベート Orb は、組織内のユーザーのみに限定して公開されます。 プライベート Orb は、登場当初の 2021 年初期には Scale プラン限定の機能でしたが、現在ではすべての有料プランでお使いいただけます。
パブリック Orb とプライベート Orb の違い
パブリック Orb
- CircleCI ユーザーであればだれでも設定ファイルで使用できます。
- オープンソースであるため、パブリック Orb を開発または利用することで、開発コミュニティの発展に寄与できます。 パブリック Orb はデベロッパー ハブで公開されています。
プライベート Orb
- 組織内限定で公開されます。 ユースケースとしては、開発プロセスに使用しているツールを競合他社に明かしたくない場合などがあります。
- CircleCI デベロッパー ハブには公開されません。そのため、プライベート Orb を所有する組織以外の人は閲覧も利用もできず、組織外部のパイプラインで活用することもできません。
Orb について特筆すべきこととして、パブリック版とプライベート版のいずれも、ユーザーが Orb 開発キットを使用して開発できることが挙げられます。
なお、プライベート Orb について、シークレット管理ツールとしての利用は想定されていません。 API キーや認証トークン、パスワードなど、”シークレット” に該当する情報はすべて、パラメーター値として直接入力しないようにしてください。 詳しくは、「Orb のオーサリングのベスト プラクティス」をご覧ください。 シークレットの保存には、コンテキストと環境変数 (詳細はこちら) の使用をお勧めします。
“車輪の再発明” を避ける
パイプラインに Orb を組み込むと、時間を大幅に節約できます。 たとえば、こちらのサンプルでは、Node アプリケーションのテストに Orb を導入し、プロジェクトの設定ファイルで (事前に構成済みの) test
ジョブを使用しています。これにより、ジョブを作成し Node アプリケーションのテスト ステップを記述する手間を省略しています。 Orb を活用するメリットは、開発者が CI/CD パイプラインの構成に費やす時間を減らせることだけではありません。設定ファイルに DRY (Don’t Repeat Yourself) のベスト プラクティスを取り入れ、コード作成のたびに同じものを繰り返し作成する必要性をなくすという効果もあります。
大企業のお客様では、展開される CI/CD パイプラインの数は数十万にも及び、設定ファイルも同じ数だけ必要になります。 こうした大規模環境でも、Orb を活用すれば、膨大な数のパイプラインと設定ファイルのすべてについて信頼性を維持し、効率を保つことができます。
Orb でアプリをセキュアにする
Orb は、健全な CI/CD パイプラインを開発し維持するうえで不可欠な存在ですが、それだけではありません。 複数のセキュリティ ツールを活用してアプリケーションのデプロイとテストを行う場合にも、Orb は大きな力を発揮します。 CircleCI では複数のセキュリティ組織とパートナー関係を結んでおり、これらのパートナーからアプリのテストに役立つ Orb が提供されています。
パートナー製 Orb を呼び出し、アプリケーションのテストに活用するだけで、データに基づいてセキュリティの脆弱性に関するインサイトを取得し、適切な品質管理を実現できるのです。 CircleCI セキュリティ パートナー製の Orb の一覧については、デベロッパー ハブにて “承認済みとパートナー製” フィルターをかけ “セキュリティ” カテゴリを指定することで確認できます。
Orb の使用をお勧めする理由
CircleCI が Orb を通じて目指す最終目標は、開発者のみなさんが、設定ファイルに利用されるのではなく、設定ファイルを簡単に利用できるようにすることです。 Orb の呼び出し方を習得すれば、コードの作成にかける時間を減らし、ジョブやワークフローの開発に注力できるようになります。
Orb には直観的な設計とフレームワークが採用されているため、メンテナンスは設定ファイルとバージョン管理により簡単に行えます。 Orb の効果は最適化にとどまらず、ビルド時間とクレジット使用料の削減も可能です。あえて言うなら、Orb は開発者の心の健康を高める存在なのです。
CI/CD プロセスのスピード、信頼性、セキュリティを確保するのであれば、Orb が最適です (パブリック版とプライベート版のどちらも有用)。 まずはパブリック Orb をご覧になるか、「Orb 開発キット」を参考に独自の Orb を作成してみてください。