米Yahoo、継続的デリバリプラットフォーム「Screwdriver.cd」をオープンソースで公開

 米Yahooは1月12日、継続的デリバリ向けのプラットフォーム「Screwdriver.cd」をオープンソースで公開した。

 継続的デリバリはコードに変更が生じた際にビルド、テスト、運用側の作業を自動化するもので、これを利用することでソフトウェア開発チームはソフトウェアの変更リリースに関連した作業を迅速にテスト環境や運用環境に適用できるようになる。Screwdriver.cdは継続的デリバリのプラットフォームで、合理化されたビルトとリリースのためのツール。

 Yahoo!社内では継続的デリバリを製品と開発の品質を改善する戦略的技術と位置付けており、5年前に開発された。製品のコミットから運用まで自動化を進めることで製品提供の改善を図っているとのこと。単一の共有エントリーポイントとして1日1万2000件のgitコミット、2万5000件以上のビルドを処理しているという。

 複数のプログラミング言語をサポートし、仮想マシンとコンテナベースのビルドおよびデプロイの両方をサポートする。コンテンツ向けのフロントエンド、ユーザーのインタラクションとビルドオペレーションの間をオーケストレーションするステートレスAPI、Docker Swarm、Kubernetesなどの実行エンジン、コンテナ内のコマンドを実行・モニタリングするランチャーの4つで構成される。

 特徴は、ダイナミックなインフラ向けの拡張性。具体的には容易に実装できるパイプライン、トランク開発向けの最適化、容易なロールバックなどが挙げられている。

 開発パイプラインは継続的なテスト、統合、コード実装のパイプラインにより、エラーを予防し、開発者にフィードバックを送る時間を削減できるとしている。コードリポジトリのパイプライン実装を管理することで、開発者は親しんだ形でパイプラインを設定でき、パイプラインの変更に合わせてコードを簡単にレビューできるという。トランク開発ではワークフローを常時出荷可能にすることを目標に、改変したGitHubフローをワークフローに利用する。プルリクエストをテスト運用のエントリーポイントにし、コードレビューの品質も改善するという。

 Screwdriver.cdはプロジェクトのWebサイトより入手できる。利用にはPython 2.7、Docker 1.12、Docker Compose 1.8.1などが必要。

Screwdriver.cd
http://screwdriver.cd/