<オリジナル投稿 2013年8月28日 本ポストの情報はオリジナル投稿時点のものです。マイクロソフトの正式な見解や製品の仕様を示すものではないことをご了承ください。>
ここのところ、「DevOps」、「継続的デリバリー」をテーマに、Visual Studio の開発プラットフォームと、System Center のシステム管理プラットフォームでの継続的デリバリーのデモ環境構築をしています。昨日、マイクロソフトのパートナー様向けのイベント Partner Technical Days で Enterprise DevOps というテーマでの講演をし、そこで、25分くらい時間を割いて、アプリの障害が発生してから、それをアラートで検知し、開発チームに情報を引き渡し、テストし、開発し、継続的インテグレーションを行い、さらに、Lab Management 疑似本番環境で自動でテストを行い、本番環境に自動デプロイするまでをご覧いただきました。
製品やコンポーネントで言ってしまうと、
- Visual Studio
- Team Foundation Server
- Visual Studio
- IntalliTrace
- Test Manager
- Lab Management
- System Center
- Operations Manager
- IntalliTrace in Production
- Virtual Machine Manager
- Orchestrator
- Operations Manager
が登場したことになります。ふつうに、製品/コンポーネントだけ見ると、「数が多い」と感じることでしょう。ただ、講演でも言っているように、「やりたいこと」ありきで考えたときに、Visual Studio も System Center も開発とシステム管理のプラットフォームになっていることがよくわかります。実は登場したこれらは、ほとんど “裏方” なのです。
例えば、開発ならば、開発者は、Visual Studio だけ起動すればいいです。マネージャなら、Web I/F か、Excel で事足ります。テスターは、Test Manager だけ見ていればいいです。
運用ならば、IT Pro は、Operations Manager のコンソールだけ見ていればいいです。VMM も Orchestrator も裏方です。
ただし、IT Pro は、日々の運用の業務として、もちろん、仮想マシンの管理、システム自動化の仕組みづくりがありますので、今回のシナリオとは別に、VMM や Orchestrator をメインにした業務ももちろんあります。開発は?というと、よく見る現場のように、開発環境を現場の開発者が作るとか、テスト環境を毎回構築するとかの価値を生みだすための下ごしらえは、System Center のおかげで IT Pro がやってくれるようになります(そうならないと困りますよね?「また開発現場が勝手に環境増やした」とか、「運用に任せるといつになっても環境ができない」とか言っている場合ではありません)。逆に言うと、IT Pro は継続的デリバリーのために、システム運用に開発環境も含めなくてはいけません。
ということで、実は、利用者である開発者や運用者からすると非常にシンプルなソリューションとして「やりたいこと」ができるようになります。デモで一通りご覧いただくと、画面やツールを行き来していて複雑に見えてしまうのですよね。デモだけでセッションを構成すればシーンを説明しながら進められるのですが、どうしても大切な概念をお話したうえでになるので、40分~50分のセッションでは難しいこともあります。
さて、この投稿では流れだけをお伝えします。
アプリ障害発生 [エンドユーザー/Webブラウザ]
↓
障害アラート検知と問題切り分け [Ops/SCOM]
↓
アプリ障害検知と意思決定 [Dev/TFS]
↓
アプリ障害分析と追加情報の要請 [Dev/Visual Studio]
↓
障害の追加情報の収集 [Ops/IntelliTrace in Production on SCOM]
↓
アプリのデバッグ [Dev/Visual Studio]
↓
アプリの改修 (Webテスト作成と実行→コード修正→テスト実行) [Dev/Visual Studio]
↓
アプリ修正コードのコミット [Dev/Team Explorer on Visual Studio]
↓
継続的インテグレーション (ゲートチェックイン) [Dev/TFS] (バックエンドで自動実行)
↓
アプリ改修を通知 [Dev/TFS]
↓
アプリ改修を確認し、自動デプロイ実行 [Ops/SCOM]
↓
自動デプロイの Runbook を実行 [Ops/SCORCH]
↓
Lab ビルド起動 [TFS]
↓
最新ビルド取得 [TFS]
↓
Lab 環境の構築 [TFS/Lab Management/SCVMM]
↓
デプロイメント [TFS/Lab Management]
↓
テスト自動実行 [TFS/Lab Management] (単体テスト/Webテスト/UIテストを全部実行)
↓
Lab ビルド結果を通知 [TFS/SCORCH]
↓
DB バックアップ [SCORCH 別 Runbook]
↓
デプロイメント [SCORCH]
↓
アプリ障害アラートに結果通知 [SCORCH]
↓
障害のクローズ [SCOM]
さて、これらについて画面ショット付きで解説を書こうかどうか迷っています。書くのは結構大変だったりします。やってみればわかることですが、初めて構築するとやっぱり大変です。私がいうのもなんですが、情報がやはりまだまだ少ないです。ただそれでも3日あればデモ環境としては構築できました。今やれば頭も体も覚えているので、1日半あればできると思います。一つ一つはよくできたすぐれた製品なので、構築は難しくないです。