Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベストプラクティス

1,011 views

Published on

Visual Studio Team Services / Team Foundation Server を活用することで開発効率を改善することができますが、いろいろな機能があるためどう活用すべきか悩まれている方も多いのではないでしょうか。
本セッションでは、Visual Studio Team Services/Team Foundation Server のベストプラクティスを利用者の声とともにお届けします。

製品/テクノロジ: Microsoft Azure/TFS/VSTS

武田 正樹
日本マイクロソフト株式会社
開発ツール推進部
テクノロジー スペシャリスト

額賀 義則
株式会社 日立産業制御ソリューションズ
生産統括本部 業務改革本部 生産技術部
技師

井上 宗治
株式会社ジュピターテレコム
情報システム本部 システム企画部

Published in: Technology
  • Be the first to comment

[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベストプラクティス

  1. 1. 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~ 利用者からのベストプラクティス 日本マイクロソフト株式会社 武田 正樹 株式会社日立産業制御ソリューションズ 額賀 義則 株式会社ジュピターテレコム 井上 宗治
  2. 2. セッション概要 1 • Visual Studio Team Services / Team Foundation Server を 活用して開発効率を高めるための手法を実際の利用事例から 紹介 Visual Studio Team Services Team Foundation Server 2015 Update 2 以降
  3. 3. Agenda 2 株式会社日立産業制御ソリューションズ様 株式会社ジュピターテレコム様
  4. 4. 3
  5. 5. 背景 4 • VB.NET でパッケージソフトの開発をしているプロジェクト • プロジェクトの繁忙期ではなく、改善ができる状態だった • 管理の手間をかけず、ソースコード品質を担保する仕組みを 作りたい • 問題が発生すると構成管理台帳などの管理資料の準備が必要 この手間を回避したい
  6. 6. これまでの品質担保のフロー 5 単体テストを実施 - 3rd パーティーツールを使用 追加 / 変更したソースコードに静的コード解析を実施 - 3rd パーティーツールを使用 ローカルマシンでビルドを実施、 成果物を共有フォルダに保存 単体テスト完了後、 開発者ごとに作業漏れ防止用のチェックリストを作成、 受け入れ基準を満たしているかを管理者が確認 1 2 3 4 手作業で実施
  7. 7. 実施内容 6 • 定義したビルドタスクが成功した場合のみ、チェックインを 許可する仕組みを導入 • 受け入れ基準をビルドタスクとして定義することで、 ゲートチェックイン通過 = 受け入れ基準を満たす • ソースコード変更者と成果物の関連付けのためラベルを導入 • Visual Studio 拡張機能で開発に必要なもの一式を インストールするためのメニューを追加
  8. 8. 運用イメージ 7 TFSサーバー チームプロジェクト 参照モジュール (前提モジュール) 静的コード解析結果 実行モジュール (ビルド結果) プログラム 静的解析サーバー 開発者用PC 静的コード解析用 プログラム 静的解析結果 Visual Studio プログラム 実行モジュール 参照モジュール 静的解析結果 ビルド定義/ プログラム
  9. 9. 運用イメージ 8 TFSサーバー チームプロジェクト 参照モジュール (前提モジュール) 静的コード解析結果 実行モジュール (ビルド結果) プログラム 静的解析サーバー 開発者用PC 静的コード解析用 プログラム 静的解析結果 Visual Studio プログラム 実行モジュール 参照モジュール 静的解析結果 ビルド定義/ プログラム ①関連モジュールと プログラムを取得
  10. 10. 運用イメージ 9 TFSサーバー チームプロジェクト 参照モジュール (前提モジュール) 静的コード解析結果 実行モジュール (ビルド結果) プログラム 静的解析サーバー 開発者用PC 静的コード解析用 プログラム 静的解析結果 Visual Studio プログラム 実行モジュール 参照モジュール 静的解析結果 ビルド定義/ プログラム ②プログラム修正
  11. 11. 運用イメージ 10 TFSサーバー チームプロジェクト 参照モジュール (前提モジュール) 静的コード解析結果 実行モジュール (ビルド結果) プログラム 静的解析サーバー 開発者用PC 静的コード解析用 プログラム 静的解析結果 Visual Studio プログラム 実行モジュール 参照モジュール 解析結果 ビルド定義/ プログラム ③静的コード解析実行
  12. 12. 運用イメージ 11 TFSサーバー チームプロジェクト 参照モジュール (前提モジュール) 静的コード解析結果 実行モジュール (ビルド結果) プログラム 静的解析サーバー 開発者用PC 静的コード解析用 プログラム 静的解析結果 Visual Studio プログラム 実行モジュール 参照モジュール ビルド定義/ プログラム 静的解析結果 ④-1 ゲートチェックインで 静的コード解析結果の有無 やビルド成否を確認 ④-2 実行モジュールと プログラムにラベルを設定
  13. 13. 現状の成果と今後 12 • 管理者が手を動かさなくても、ソフトウェア品質を確保する 仕掛けを準備することができた • 運用項目の目的と手段を明確にすることができた • 利便性向上、運用負荷の低減、運用フローから外れないよう、 開発に必要なすべての操作を Visual Studio から実施可能に ⇒ 操作手順を単純化、開発者にメリットを実感できるように • 構成管理台帳や管理資料などの作成自動化
  14. 14. 13 事例からの学び ビルド機能を活用することでソースコードの品質を担保 • ゲートチェックインでチェックインの基準を作成 • Git の場合ブランチポリシーで受け入れ基準を設定可能 既存の業務フローを自動化 • ルールから外れた自動化をしても誰も使わない
  15. 15. TFVC でのソースコード管理に関する FAQ 14 • Visual Studio 2012 以降 + Team Foundation Server 2012 以降の組み合わせでタイムスタンプを有効化可能です • Visual Studio にインストールされている “tf folderdiff” コマンドをご利用ください • ケースバイケースです • ブランチとマージに関する運用ルールを決める事が重要です
  16. 16. きっかけは Azure 16 • 一般的な 3 層構造システムをパブリック環境に構築 • ソースコード管理 & 自動ビルド・デプロイで使用 • ビルドタスクが用意されているため、簡単に実装できた Git Visual Studio Team Services 成果物 ビルド デプロイ Web+AP DB パブリック環境
  17. 17. Azure IaaS への自動デプロイで躓く 17 • 社内イントラネットと VPN 接続したプライベート環境 • インターネットへのポートの公開はポリシー上難しい • この影響で、リリース手順ミスも頻発。開発効率が低下 Git Visual Studio Team Services 成果物 ビルド プライベート環境 デプロイ先 デプロイ
  18. 18. Azure IaaS への自動デプロイ 解決方法 18 • 自動ビルド・デプロイを DMZ 上のビルドマシンで実施 • 必須だった 1週間に1回のデプロイが実現。 プロジェクトの成功にも貢献 Git Visual Studio Team Services ソースコードをコピー プライベート環境 デプロイ先ビルドマシン DMZ 成果物
  19. 19. 所感 19 • Azure 利用がなければ使うことはなかった • Azure へのビルド・デプロイはとても便利 • 利用開始からまだ 1 年未満のためまだまだ利活用できてない。 開発効率向上が見込めるものはどんどん活用していきたい。 • Azure PaaS 環境へのデプロイは比較的情報収集可能だった。 一方で、IaaS 環境へのデプロイの情報が難しかった。 もう少し How To 情報が公開させていると非常に助かる。
  20. 20. 20 事例からの学び Microsoft Azure との高い親和性 • Visual Studio Team Services は Azure の 1 サービス • ビルドタスクには、Microsoft Azure へのデプロイタスクが 多く用意されている ビルドエージェントで自前のビルドマシンを利用可能 • ビルドマシンを Azure IaaS 環境内に置くことがポイント
  21. 21. ビルドエージェント 21 • Hosted Agent にないビルド環境を使用 • 環境固定したい場合 • イントラネット環境へのデプロイを行う場合 Hosted 基本はこちらを使用 Hosted VS 2017 Visual Studio 2017 / .NET Core 専用 Hosted Linux Preview Linux ベースのビルドマシン
  22. 22. ビルド機能とリリース機能の切り分け 22 ビルド機能 リリース機能 ビルドタスク 共通 ビルドエージェント 共通 ソースコードの取得 ○ ○ Artifact の取得 ○ ゲートチェックイン (TFVC) ○ ブランチポリシー (Git) ○ 承認 ○ パイプライン処理 ○ 並列実行 ○
  23. 23. まとめ 23 • Team Foundation Server ソース管理機能 +ゲートチェックイン / ブランチポリシー = 品質担保 • Microsoft Azure PaaS / IaaS 環境 + Visual Studio Team Services 自動デプロイ = ミス撲滅 目的を明確にしたうえでのツール利活用を!
  24. 24. リソース 24 • 技術情報 (英語) https://www.visualstudio.com/ja-jp/docs/overview • 手順書 https://docs.com/takeda-masaki • ハンズオンセミナー 6 月 14 日(水)弊社品川オフィスにて開催 https://azure.microsoft.com/ja-jp/community/events/
  25. 25. セッションアンケートにご協力ください  専用アプリからご回答いただけます。 decode 2017  スケジュールビルダーで受講セッションを 登録後、アンケート画面からご回答ください。  アンケートの回答時間はたったの 15 秒です!
  26. 26. Ask the Speaker のご案内 本セッションの詳細は『Ask the Speaker Room』各コーナーカウンタにて ご説明させていただきます。是非、お立ち寄りください。
  27. 27. © 2017 Microsoft Corporation. All rights reserved. 本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

×