« [プログラム設計事始] メソッドの外部設計(3) | トップページ | [TDD の練習(5)] app.config を読み込んで保持していてくれるオブジェクト »

2009年5月29日 (金)

Lab Managment ~ VSTS 2010 の "1 Click Deploy"

長沢智治のライフサイクルブログ より。

多層アプリケーションの自動ビルド ⇒ デプロイ ⇒ テスト – VSTS 2010 Lab Management (ブログ記事紹介)
Published 28 May 09 03:27

多層なアプリケーションのテスト環境を構築し、そつなくテストを実施するには、手間がかかります。 ただしくビルドできているのか?はまだしも、 ただしく配置できているか?は、 死活問題です。

テスト前に気づけばいいですが、 テスト途中やテスト終了後に気づいたら・・・やり直しです。 大きな手戻り(rework)となります!

そのあたりを含め、 そして仮想化技術を活用し、 課題を解決してくれるのが、Lab Managment です。

これも、 なかなかフォローできないでいるもののひとつではあります。
紹介されてる英文記事 …いつか読めるだろうか (;;

昨年末の Somasegar's WebLog : Lab Management in VSTS 2010 は、 Soma's .NET Expert Blog - 日本語版 - で翻訳していただけてるので、 読んだんですけどね f(^^;

とりあえず、 Lab Management というのは、 仮想マシンの環境を構築してはテストすることができるものだ、 と ( 正しいかどうか自信は有りませんが ) 理解しております。

《Amazon》 ThoughtWorks アンソロジー ThoughtWorks アンソロジー に収められたエッセイのひとつに、 「1クリックデプロイ ( Dave Farley 著 ) と題する短編がありまして、 その中で、 継続的インテグレーションを本当に実現するには、 「1クリックデプロイ」 が必要だと言っています。

ThoughtWorks アンソロジー
11章 1クリックデプロイ より

( デプロイは ) ソフトウェアそれ自体に加えて、 Web サーバ、 データベース、 アプリケーションサーバ、 キューといった技術要素をまとめてデプロイし、 設定する場合がほとんどです。
通常、 このようなソフトウェアは、 本番稼動にいたるまでにさまざまな環境にデプロイされる、 とても複雑なリリースプロセスを経なければなりません。  ソフトウェアは、 最終的な本番稼動にたどり着くまでに、 開発マシン、 品質保証 (QA) 環境、 性能テスト環境、 そしてステージング環境にデプロイされるでしょう。
( …中略… )
「継続的インテグレーション」 はよいものですが、 今最も一般的に行われているものをそう呼ぶのは誤りです。 それは 「継続的ビルド」 と呼ぶべきものです。

多くのプロジェクトでは、 たぶん計画せずに実施している ( ひょっとすると、 開発チームとしては意識さえしていないかもしれない ) と思うのですが、 ここで挙げられたような段階的で多くの環境で、 一定の環境を構築し、 ビルドしたアプリケーションをインストールし、 テストしているはずですね。 しかも、 テストを繰り返すたびに、 テストの厳密さを求めるなら、 環境を作り直すはずです。
これまでは、 仮想マシンで環境を構築したら、 それを丸ごとバックアップしたりしてきました。 ( ロールバックできる仮想マシンで、 そのことがテストに問題を引きおこさなければ、 テスト後にロールバックする、 という手段も取れました。 )
それでも、 複数の環境を維持するのは、 面倒なことでした。 そして、 テストのたびに、 最新ビルドを手動でデプロイするのも、 面倒で間違いのもとでした。

Lab Managment は、 「1クリック」 でのビルド - デプロイ - テストを実現し、 真の 「継続的インテグレーション」 への道を切り開いてくれるだろうと、 期待しています。

|

« [プログラム設計事始] メソッドの外部設計(3) | トップページ | [TDD の練習(5)] app.config を読み込んで保持していてくれるオブジェクト »

プログラミング」カテゴリの記事

-プログラミング ( 開発プロセス )」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: Lab Managment ~ VSTS 2010 の "1 Click Deploy":

« [プログラム設計事始] メソッドの外部設計(3) | トップページ | [TDD の練習(5)] app.config を読み込んで保持していてくれるオブジェクト »