【20】継続的にインテグレーションを実行せよ

デビッド・バートレット

 ビルド作業が「ビッグバン」イベントだった時代は終わりました。アプリケーション・アーキテクトであれ、エンタープライズ・アーキテクトであれ、アーキテクトは、すべてのプロジェクトで、継続的インテグレーションのメソッドとツールを使うことを提案、推進していかなければなりません。

 継続的インテグレーション(CI)は、マーチン・ファウラーがデザインパターンの中で最初に使った言葉です。CI とは、特定のタスクをこなすために設定したインテグレーション・サーバーのもとで、アプリケーションの自動ビルド、テストを確実かつ頻繁に実行するプラクティスとツールのことです。単体テストのプラクティス / ツールと自動ビルドツールが CI を生み出し、今日のソフトウェアプロジェクトでは必須なものになったのです。

 継続的インテグレーションは、ソースコードをアプリケーションとして動作させるというソフトウェア開発プロセスに共通する重要ポイントをターゲットとしています。ここには開発の多くの要素が集まり、テストされます。皆さんは「早く頻繁にビルドする」というフレーズを耳にしたことがあるでしょうか。これは、開発のインテグレーションで問題が起きないようにするためのリスク管理テクニックでしたが、今や CI に取って代わられています。CI は、ビルドだけでなく、開発チーム内のコミュニケーションや調整を進める機能を含んでいます。

 CI でもっとも有名な機能は、ビルドの自動実行でしょう。あなたが手作業でビルドすることは当然できますが、CI では、夜中にビルドを開始したり、ソースコードの変更とともに自動的にビルドを開始したりすることができます。ビルドが開始されると、最新バージョンのソースコードがレポジトリから取り出され、CI ツールがプロジェクトをビルドしテストします。最後には、ビルドプロセスの詳細なログをまとめたレポートが送られます。レポートは、電子メールやインスタントメッセージなど、さまざまな形態で送ることができます。

 継続的インテグレーションは、開発作業を安定させ、統制の取れたものにすることができます。あなたもアーキテクトとして CI が気に入ると思いますが、それよりも大切なのは、あなたの会社、開発チームがより力を発揮できるようになることです。