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

More Related Content

PDF
[SC12] あなたのチームのセキュリティスキルは十分ですか?DevSecOpsを見据えたセキュリティ人材の育成方法
PDF
[DO09] 獲れたて OSS x DevOps!自動化三昧を満喫セヨ
PDF
[SC01] DevSecOps on Azure : セキュリティ問題に迅速に対応するためのパイプライン設計
PDF
[TL02] "Shift Left" で問題の早期発見を実現する、最新 Visual Studio の品質チェック・テスト機能の使い方
PPTX
Ecsとlambdaのバッチ処理
PDF
[DO12] ナビタイムジャパン CTO 菊池氏が語る IT リーダのための開発を加速させる DevOps の実践例
PPTX
.NETラボ2021年9月 Blazorのカスタム認証を通じてDIの便利さを学ぶ
PDF
[TL12] "炎上案件ストッパー"はかく語りき 「プロジェクトの成果をあげるために意識した一つの事」
[SC12] あなたのチームのセキュリティスキルは十分ですか?DevSecOpsを見据えたセキュリティ人材の育成方法
[DO09] 獲れたて OSS x DevOps!自動化三昧を満喫セヨ
[SC01] DevSecOps on Azure : セキュリティ問題に迅速に対応するためのパイプライン設計
[TL02] "Shift Left" で問題の早期発見を実現する、最新 Visual Studio の品質チェック・テスト機能の使い方
Ecsとlambdaのバッチ処理
[DO12] ナビタイムジャパン CTO 菊池氏が語る IT リーダのための開発を加速させる DevOps の実践例
.NETラボ2021年9月 Blazorのカスタム認証を通じてDIの便利さを学ぶ
[TL12] "炎上案件ストッパー"はかく語りき 「プロジェクトの成果をあげるために意識した一つの事」

What's hot (20)

PDF
[CT02] War is over : ブラウザエバンジェリスト達とWebの未来を語ろう
PPTX
.Netlab202107
PDF
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
PDF
Visual studio online and Agile
PDF
保守性の高いアプリケーション設計について
PDF
.NET Lab2022年2月
PDF
その Web サイト、その Web アプリを最新の IE11 に対応しよう
PDF
TFS超入門。いつやるの。今でしょ
PDF
[SC06] Windows と Azure、2つの Information Protection をディープに解説!
PDF
テストツールで効率化 Internet Explorerバージョンアップに伴う Webコンテンツの移行作業
PDF
【Embedded Technology 2010 ( #ET2010 )】 マイクロソフトブース| 開発チームをシンプルにコラボレーションする Team...
PPTX
WindowsにおけるUIスレッドの基礎
PPTX
Sf素人が2週間でアプリケーションビルダーに挑戦してみた
PDF
はじめてのTeam foundation server執筆裏話
PDF
Team Foundation Serverで出てくるキーワード
PDF
13-E-7 クラウドサービスとゲーミフィケーション: 「TwilioQuest 3」を用いた開発者オンボーディング
PDF
JenkinsとSeleniumの活用事例
PDF
STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015
PPTX
テスト自動化の現場で困ること SI-Toolkitが解決すること
PDF
[CT03] 企業がセキュリティエンジニアを育成するためのポイント Deep Dive
[CT02] War is over : ブラウザエバンジェリスト達とWebの未来を語ろう
.Netlab202107
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
Visual studio online and Agile
保守性の高いアプリケーション設計について
.NET Lab2022年2月
その Web サイト、その Web アプリを最新の IE11 に対応しよう
TFS超入門。いつやるの。今でしょ
[SC06] Windows と Azure、2つの Information Protection をディープに解説!
テストツールで効率化 Internet Explorerバージョンアップに伴う Webコンテンツの移行作業
【Embedded Technology 2010 ( #ET2010 )】 マイクロソフトブース| 開発チームをシンプルにコラボレーションする Team...
WindowsにおけるUIスレッドの基礎
Sf素人が2週間でアプリケーションビルダーに挑戦してみた
はじめてのTeam foundation server執筆裏話
Team Foundation Serverで出てくるキーワード
13-E-7 クラウドサービスとゲーミフィケーション: 「TwilioQuest 3」を用いた開発者オンボーディング
JenkinsとSeleniumの活用事例
STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015
テスト自動化の現場で困ること SI-Toolkitが解決すること
[CT03] 企業がセキュリティエンジニアを育成するためのポイント Deep Dive
Ad

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

PDF
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
PDF
DEV-005_200 時間以上お客様と向き合って見えた Team Foundation Server による開発業務効率化の実現方法
PDF
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
PDF
アジャイル開発&TFS導入
PDF
Go azure tfs_service
PDF
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
PDF
Agile japan2010 rakuten様プレゼン資料
PDF
Net advantage 2012 volume2 最新情報 Windows Forms / ASP.NET 編
PDF
Essentials of container
PDF
Ignite ui 2012 最新情報 jQuery UI 編
PDF
ワンクリックデプロイ101 #ocdeploy
PDF
Netadvantage 2012 volume2 最新情報 Reporting 編
PDF
今、おさえておきたい DevOps
PDF
【Agile Conference tokyo 2011】 継続的フィードバック
PDF
Jupyter勉強会 20160701 at NII
PDF
PDF
Microsoft Team Foundation Service 入門
PDF
Ignite UI 2012 最新情報 jQuery Mobile 編
PDF
[Biz reach qa meetup] qa team_build
PDF
博士論文公聴会
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
DEV-005_200 時間以上お客様と向き合って見えた Team Foundation Server による開発業務効率化の実現方法
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
アジャイル開発&TFS導入
Go azure tfs_service
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
Agile japan2010 rakuten様プレゼン資料
Net advantage 2012 volume2 最新情報 Windows Forms / ASP.NET 編
Essentials of container
Ignite ui 2012 最新情報 jQuery UI 編
ワンクリックデプロイ101 #ocdeploy
Netadvantage 2012 volume2 最新情報 Reporting 編
今、おさえておきたい DevOps
【Agile Conference tokyo 2011】 継続的フィードバック
Jupyter勉強会 20160701 at NII
Microsoft Team Foundation Service 入門
Ignite UI 2012 最新情報 jQuery Mobile 編
[Biz reach qa meetup] qa team_build
博士論文公聴会
Ad

More from de:code 2017 (20)

PDF
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
PDF
[AI10] ゲームキャラクターのための人工知能と社会への応用 ~ FINAL FANTASY XV を事例として ~
PDF
[DO07] マイクロサービスに必要な技術要素はすべて Spring Cloud にある
PDF
[SC09] パッチ待ちはもう古い!Windows 10 最新セキュリティ技術とゼロデイ攻撃攻防の実例
PDF
[SC10] 自社開発モバイルアプリの DLP 対応化を Microsoft Intune で可能に
PDF
[DI12] あらゆるデータをビジネスに活用! Azure Data Lake を中心としたビックデータ処理基盤のアーキテクチャと実装
PDF
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
PDF
[AI03] AI × 導入の速さを武器に。 ” 人工知能パーツ ” Cognitive Services の使いどころ
PDF
[SP04] これからのエンジニアに必要な「マネジメント」の考え方
PDF
[DO17] セゾン情報システムズの CTO 小野氏による、伝統的 Sier におけるモダン開発への挑戦
PDF
[DO13] 楽天のクラウドストレージ使いこなし術 Azure と OSS で少しずつ進めるレガシー脱却
PDF
[DO11] JOY, Inc. : あなたの仕事場での喜びは何ですか?
PDF
[DO08] 『変わらない開発現場』を変えていくために ~エンプラ系レガシー SIer のための DevOps 再入門~
PDF
[DO06] Infrastructure as Code でサービスを迅速にローンチし、継続的にインフラを変更しよう
PDF
[DO05] システムの信頼性を上げるための新しい考え方 SRE ( Site Reliability Engineering ) in Azure, o...
PDF
[DO04] アジャイル開発サバイバルガイド 〜キミが必ず直面する課題と乗り越え方を伝えよう!〜
PDF
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ
PDF
[SP03] 「怠惰の美徳~言語デザイナーの視点から」
PDF
[SP02] Developing autonomous vehicles with AirSim
PDF
[SP01] CTO が語る! 今注目すべきテクノロジー
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
[AI10] ゲームキャラクターのための人工知能と社会への応用 ~ FINAL FANTASY XV を事例として ~
[DO07] マイクロサービスに必要な技術要素はすべて Spring Cloud にある
[SC09] パッチ待ちはもう古い!Windows 10 最新セキュリティ技術とゼロデイ攻撃攻防の実例
[SC10] 自社開発モバイルアプリの DLP 対応化を Microsoft Intune で可能に
[DI12] あらゆるデータをビジネスに活用! Azure Data Lake を中心としたビックデータ処理基盤のアーキテクチャと実装
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[AI03] AI × 導入の速さを武器に。 ” 人工知能パーツ ” Cognitive Services の使いどころ
[SP04] これからのエンジニアに必要な「マネジメント」の考え方
[DO17] セゾン情報システムズの CTO 小野氏による、伝統的 Sier におけるモダン開発への挑戦
[DO13] 楽天のクラウドストレージ使いこなし術 Azure と OSS で少しずつ進めるレガシー脱却
[DO11] JOY, Inc. : あなたの仕事場での喜びは何ですか?
[DO08] 『変わらない開発現場』を変えていくために ~エンプラ系レガシー SIer のための DevOps 再入門~
[DO06] Infrastructure as Code でサービスを迅速にローンチし、継続的にインフラを変更しよう
[DO05] システムの信頼性を上げるための新しい考え方 SRE ( Site Reliability Engineering ) in Azure, o...
[DO04] アジャイル開発サバイバルガイド 〜キミが必ず直面する課題と乗り越え方を伝えよう!〜
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ
[SP03] 「怠惰の美徳~言語デザイナーの視点から」
[SP02] Developing autonomous vehicles with AirSim
[SP01] CTO が語る! 今注目すべきテクノロジー

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