第5回 配備を自動化する:連載:いまどきのソース・コード管理(4/4 ページ)
ビルドが自動化されたら、デプロイも自動化しよう。Team Foundation Serverを使ってアプリのデプロイを自動で行う手順を説明する。
複数の発行プロファイルを作成する
発行プロファイルはビルド構成ごとに作成するもの、と考えていないだろうか? VS 2012に、(Web Platform Installer経由で)ASP.NET and Web Tools 2012.2を追加する、もしくはVS 2012 Update 3をインストールすることにより、1つのビルド構成に複数の発行プロファイルを関連付けることが可能だ。
手順はまず、作成した発行プロファイルを右クリックすると表示されるメニューから[Config 変換を追加]を選択する。
複数の発行プロファイルを作成する
[Config 変換を追加]を実行すると、発行プロファイルの名前が追加されたWeb.MyIIS8.configファイルがWeb.configファイルの下に追加される。[Config 変換の追加]を行った場合のWeb.configファイルの変換ルールは以下の順番になる。
1. 元のWeb.configファイル
2. Web.<ビルド構成ファイル>.configファイルの内容を適用
3. Web.<発行プロファイル名>.configファイルの内容を適用
4. 最終的なWeb.configファイルが生成される
[Config変換を追加]メニューは一度実行すると、その後は表示されなくなるが、「Web.<発行プロファイル>.config」ファイル(例ではWeb.MyIIS8.configファイル)を削除すると、再度[Config変換の追加]メニューが表示されるようになるので、何度でも作り直せる。
オンプレミスならではの強力な拡張
オンプレミスではデプロイだけではなくソース・コード管理や作業項目管理をいろいろなソフトウェアと連携させることで機能を強化できる。
TFS 2012とPreEmptive Community Edition
純粋なソース・コード管理ではないが、TFS 2012からPreEmptive Community Editionというソフトウェアが付属している。PreEmptiveとは、TFSで管理されているソフトウェアが例外を起こした場合、自動的に例外データを採取して、作業項目を作成してくれるTFSの拡張機能だ。TFS 2012にはその入門編という位置付けのCommunity Editionが付属している。.NETアプリケーションを対象にした入門編であるため、いくつか機能制限があるが、大きな問題はないだろう。
PreEmptiveを使用すればテスト中に例外が起きても、つい作業項目を作り忘れてしまい、関連付けするべき作業項目をチェックイン間際に慌てて作成するという事態を防ぐことができる。
DevOps Workbench Express
マイクロソフトから複数環境へのデプロイを支援するための無償ツールとして、DevOps Workbench Express Editionのベータ版が公開された。英語版だが、日本語OSでも使用することが可能だ。
DevOps Workbench Express Edition
インストールすると、Visual Studioのチーム・エクスプローラに以下のように統合される。[Launch Workbench]をクリックすると、編集用のWorkbenchが起動される。
(メニューバーの)[FILE]メニューの[New Deployment Orchestration]を選択すれば新規デプロイ環境が作成される。Webサイトとアプリケーションの作成を行う場合は以下のようなワークフローになる。
[FILE]メニューの[Save As]を選択すればワークフローを保存できる。保存されるXAMLファイルを直接TFSにチェックインしたり、VS 2012から開いたりはできないようだ(関連アセンブリを参照すればできる可能性はある)。作成したXAMLファイルのバージョン管理は別途行ってほしい。
(メニューバーの)[SOURCE CONTROL]メニューからTFSに接続して、作業項目の登録の関連付けを行えるが、筆者の環境では動作しなかった。今後修正される可能性がある。
本ツールはSQL Server、Azure、Azure Webサイト、.NETアプリケーションといった多様な環境のデプロイをサポートしており、デプロイを行うためのワークフローをGUIで容易に作ることができるため、今までバッチ・ファイルや特別なインストール用の.exeファイルを作るのに掛かっていた手間が大幅に軽減されるだろう。
System Center Orchestratorとの連携
DevOps Workbench Expressのようにデプロイに特化したソフトウェアではないが、サーバ群の管理を自動化するための有償のSystem CenterファミリのソフトウェアSystem Center Orchestratorが用意されている。
Orchestratorを使用すれば任意のフォルダにデプロイ・パッケージが生成された場合、自動的に評価環境にデプロイ、所定の負荷テストを自動的に実施するということも可能だ。もう一段進んだ運用を自動化する場合、Orchestratorも活用してほしい。
【コラム】TFS 2013に付属予定のInReleaseでのデプロイ機能強化
本連載ではTFS 2012を扱っているが、Visual Studio 2013および、TFS 2013が11/1よりリリースされた。TFS 2012ではビルド・サービスが編集可能なユーザーであれば、デプロイ・パッケージの作成および発行が可能であったため、場合によってはデプロイ用のビルド定義を別途作成する必要があった。
InCycle Softwareという会社がTFSのデプロイ機能を補完するInReleaseというソフトウェアを販売していたが、マイクロソフトがInReleaseを買収して、TFS 2013からこの機能を標準添付することが発表された。
現在TFS 2013に対応したInReleaseが無償ダウンロード可能だ。英語版だが日本語のTFS 2013にもインストール可能だ。正式版が公開された際には以下のURLからダウンロードして試してみてほしい。
- InRelease for Microsoft Visual Studio 2013(英語)
- InRelaseプレビュー・ガイド(英語)
- InRelaseによる継続的デプロイの自動化(Microsoft長沢氏のブログ)
次回はクラウド環境でのデプロイについて紹介する。
Copyright© Digital Advantage Corp. All Rights Reserved.