DE-131 Visual Studio が実現するクラウド時代の Rapid Release – The Microsoft Conference 2014

昨日(2014年10月23日)参加した、相澤 克弘さんのセッション「Visual Studio が実現するクラウド時代の Rapid Release」のメモを共有します。会場は満席で立ち見が非常に多く、入場制限もあったそうで大人気のセッションでした。

 

実は私のコミュニティでも、関連した内容の勉強会を12/20に開催します。そちらも、是非!よろしくお願いいたします。

 

セッションのゴール

  • Visual Studio があらゆる開発において非常に効率が良いツールであることを知る
  • Visual Studio + Azure は唯一無二の効率的な開発環境を作れることを知る
  • 実際に使うにはどう始めればよいかを知る

 

変遷

  • 1998 (Visual Studio 6.0) クラサバ・Webアプリ
  • 2002 .net
  • 2005 ライフサイクル
  • 2008 RIA
  • 2010 クラウド
  • 2012 DevOps ストアアプリ
  • 2013 Visual Studio Online

Visual Studio は 2005 からアプリケーションライフサイクルを扱うようになった。

 

開発プロセスと Visual Studio

  • 開発・テスト環境構築
  • コード作成・チームコラボレーション - メンテナンス開発
  • テスト -  メンテナンステスト
  • デプロイ

アジャイル、エンタープライズアジャイルが採用されつつある

 

開発・テスト環境構築

  • 開発環境の課題
    • ハードウェアの調達
    • ソフトウェア・ライセンスの調達 にコストや時間がかかる
    • 開発が一つの閉ざされたチームでやるのは少なくなった
    • データの共有、連携が必要
  • テスト環境の課題
    • 調達のコストと時間
    • 実運用レベルの負荷テストは現実困難
    • テストで利用したサーバーが遊休資産化してしまう

 

Azure + Visual Studio で開発・テストに必要なすべての環境を即座に低コストで用意

  • クラウドのリソースを利用して、手持ちのPCでもすぐに最新アプリ開発環境を用意
    • Windows RT でも使える
  • テスト環境 本番に近い環境を低コストで即時に用意
  • Visual Studio を経由して、コード・テスト・デプロイ・監視 のサイクルを統合的に行える
  • 他のサービスでやろうとしたときは、使い分け、それぞれの担当者に連絡・・・が必要となるはず

 

Visual Studio から Azure をコントロール・デバッグ

  • ソースコードは Visual Studio Online に。
  • サーバーエクスプローラ
    • Azure からサービスを制御
    • サイト作成もここからできる
    • Azure の管理ポータルに入る必要はない
    • 様々なサービスをここからコントロールできる
  • 発行で Azure にデプロイできる
  • Visual Studio 機能検索
  • Azure に発行したものをデバッグする サーバーエクスプローラーからアタッチ
    • ブレークポイント ステップ実行

 

ダッシュボード

  • バーンダウンチャート
  • キャパシティに対するタスクの量
  • すべてのバグ(Closed,….)

 

WORK

  • TFS キャパシティ、カンバンボード の説明

 

テストの効率化

  • テスト設計・準備 - ビルド準備、ケース・データ準備
  • テスト実施 - カバレッジ、工数割り当て
  • 問題修正 - 最新管理、障害再現性
  • レポート作成 - 最新状況確認

Visual Studio でカバーできる

 

自動UIテスト

  • アプリケーションを一回操作する - 録画 – それがストスクリプトなる – テストの再生 – 結果
  • テストリソースを活用して繰り返してテストを実行することができる
  • 100 工数 3回で 300
  • 100 1回目 150になる、が自動化していれば数回でペイする

クロスブラウザのテスト 非常に簡単に行える

  • IE, Chrome, Firefox

 

受け入れテスト

  • フィードバックを受け入れる機能がある
  • 依頼者がフィードバックをリクエストする
  • 受けた人(テスター)がフィードバックを返す
  • バックログに入るのでタスクとして管理

Request Feedback

 

リリースの効率化

  • コード作成、ビルド、リリース、運用
  • 開発イテレーション - ワークフロー承認 - しかるべきところにリリース
  • Visual Studio – Team Foundation Server Release Management

リリースの回数が多ければ多いほど有効になる

 

メンテナンス開発での Visual Studio 活用

  • .net ターゲットバージョン選定
    • Visual Studio 2013 では .net 2.0 移行のバージョンが指定可能
    • ソリューションファイルを最新で開くと、古い VS で開けない?=>2013では大丈夫になっている
    • 最新の機能を使える
  • ソリューションファイル操作
  • コードレンズ
    • コードの中に関数の参照情報、変更情報を埋め込んだもの
    • コードの変更のための仕様書の見直し、コードの構造の見直し
    • これらをすべて Visual Studio だけみれば対応できる
    • (※たしか TFSと連携しないと使えないはずです)
    • 誰がどう変更したのか?コード上で名前を見て対応できる
  • コードクローン分析
    • 突貫工事でコピーして、ちょっと変えて作ってしまった
    • 後でメンテナンスを下げて、バグの温床となる
    • この構造を、自動的に検知してくれる。
  • コード構造の把握
    • 何かメンテナンスしなければならないとき、最新の仕様書を確認して・・・
    • とするが、どこにあるのか?わからなかったり、最新の仕様書がなかったり、はよくあるはず
    • 代わりに Visual Studio が検証して構造を把握してくれる – 依存関係グラフの作成
  • メンテナンステスト
    • テストの影響分析
    • Test Manager をつかって、アプリケーションを変更したとき、
    • どこをもう一度テストしなければならないのか?を自動的に判断する
    • (※ここのスライドが非常にわかりやすい、後で動画で確認してください!)

 

成功事例

  • 日本郵政スタッフ社 開発を3日で立ち上げ。
  • ビービーシステム 自動テスト。リリースが2か月から3日になった。工数も30%に削減。
  • ソフトバンク・テクノロジー 頻繁なリリースを Release Management で工数1/20 に削減し品質を向上

 

すぐに使える!サポートプログラム

  • msdn
  • 無料枠 超えてもいったん止まるので 安心して開発環境として
  • ultimate なら 1万5千円分無料で使える 月額4,000円くらいが平均?なので、開発に自由に試せる

 

SHIN-ICHI の感想

はい。私も Visual Studio + Team Foundation Server / Visual Studio Online  + Azure が最強だと思います。勉強会で私もそのことを伝えたいです。