CIサーバは「三界の架け橋」
チームをまたぐ共同の開発作業においては「追跡可能性」(トレーサビリティ)の確保も重要な要素となってくる。あるシステムに対して、それぞれに職域を持った担当者は「住む世界が微妙に違う」と川口氏は言う。これは、システムに散在する情報のうち、どの部分が重要になるかに深く関連するという。
例えば、ソースコードを生み出す開発者にとっては「コミットID」が、品質保証を行うQAスタッフにとっては「バグID」や「テストの実行記録」が、オペレーションの担当者にとっては「デプロイの記録」といった情報が、より重要な意味を持つ。
ソースコードをコミットIDで識別し、バイナリについてはテスト時、運用時、統合先のそれぞれで表れるたびにチェックサム(Jenkinsにおいては「フィンガープリント」と呼ばれる)をとって、それらを「名寄せ」することで、どのビルドがどこでテストされ、どのようにデプロイされたかを確実に追跡することが可能になる。川口氏は、この機能をもって「CIサーバは三界の架け橋である」と表現する。
「職域をまたがって、全体を統合された枠によって包んでいくことが、エンドトゥエンドの自動化を実現するためのカギになる」(川口氏)
こうした形で追跡性を向上し、時間を節約するために必要な考え方として、バイナリのリビルドを行わない「バイナリインテグレーション」が有用であるとの考えを示した。
システム開発の「新・三種の神器」
川口氏はまとめとして、システム開発の各職域で自動化が進んでいる現状を改めて説明。個々に微妙に異なる視点で自動化されたシステムを高度に連携させることで、より高い相乗効果が得られるとし、これまでシステム開発の「三種の神器」と呼ばれていた「ビルドスクリプト」「バージョン管理」「自動化されたテスト」に代わる、「新・三種の神器」として、「デプロイスクリプト」「XaaS」「クラウド」を挙げた。これらを組み合わせて使うことで生まれる相乗効果が、互いの投資を正当化するものになるという。
「今後、湯水のごとく使えるようになる計算能力を並列化し、それらを存分に活用することがシステム開発の現場でも求められるようになる。クラウド、仮想マシン、分散VCS、自動化といった技術のトレンドも、その方向性を後押ししている。今後、CIサーバとしてのJenkinsも、そうしたニーズを吸収して発展を続けていく。現在、使っていない人はぜひ使ってみてほしい。既に使っている人は、今回話したこの枠組みの中で、より高度に活用を進めるためのステップを考えておいてほしい」(川口氏)