Yahoo!はScrewdriverをオープンソース化した。その内部で使われるCDツールは開発中である。
Screwdriverは、コードコミットから本番へのデプロイまでの全ての工程を統合する継続的デリバリツールである。Yahoo!は過去5年間、デリバリプロセスの全工程を自動化するためにScrewdriverの使う範囲を徐々に広げていった。それにより、毎日25,000以上のビルドと12,000以上のgitコミットに達している。Yahoo!によると、彼らが求めるCDツールは:
- 開発者がデプロイパイプラインを簡単に作成できる。パイプラインはYAMLファイルに定義し、変更を破棄したり、別のバージョンの構成ファイルを使って以前のバージョンに戻すことができる。
- trunk開発用に最適化する。trunkには、アプリケーションに関してリリース可能なバージョンがなければならない。プル要求が行われると、受け付けたコードがテスト済みであることを確実にするために、テストが自動的に実行される。
- ロールバックをサポートする。書き込み権限を持つユーザは、何か問題が発生した場合に、デプロイをロールバックできる。
Screwdriverには5つの主要コンポーネントがある。
-
REST API - パイプラインを操作するためのインターフェイス。
-
Web UI - パイプラインAPI用のビジュアルインターフェイス。
-
Launcher - 環境を設定し、シェルコマンドを実行するためのツール。
-
Execution Engine - コンテナ内部のコマンドの実行をサポートするプラグイン可能なビルドエグゼキュータ(Jenkins、Kubernetes、Mesos、Docker Swarm)。
-
Datastore - パイプライン構成データを維持するために使用される、プラグイン可能なNoSQLストレージ(DynamoDB、MongoDB、CouchDB、Postgres)。実行エンジンとデータストアの両方でプラグイン可能なアーキテクチャが使用されており、それにより自身で選択したエンジンを使用できる。
Yahoo!は現在、機能をカットしたCDツールをオープンソース化しているが、今後数ヶ月で不足しているコンポーネントをいくつか追加する予定である。それは、後で使用するためのビルドメタデータの保持、メトリクスの収集、ログ分析、パイプラインを設定・実行するためのテンプレートである。
Rate this Article
- Editor Review
- Chief Editor Action