ALM Essentials(4): ALMを支援するMicrosoftのツール群(オンプレミス型)
Team Foundation Serverの機能概要と環境構築パターン
自社イントラネット内などのオンプレミス環境で、アプリ開発のライフサイクルを全体的に管理できるALMツールとして、マイクロソフトのTFS環境を導入した場合の、ALM環境の全体像について解説する。
はじめに
前回(第3回)~最終回(第5回)までの3回は、ALM(アプリケーション・ライフサイクル・マネジメント)を支援する各ベンダーのツール、具体的には下記の3種類について紹介する。
- マイクロソフトが提供するSaaS型のALMツール群: Visual Studio Team Services
- [今回]マイクロソフトが提供するオンプレミス型のALMツール群: Team Foundation Server
- アトラシアンが提供するSaaS型/オンプレミス型のALMツール群: JIRA Software+Bitbucket(Server)+Bamboo+HipChat+Confluence
前回のVisual Studio Team Servicesに引き続き、今回はTeam Foundation Serverの仕組みについて簡単に紹介しよう。
マイクロソフトの提供するALM(Team Foundation Server)
- Team Foundation Server(以下、TFS)
※以下は、本文中で解説しない、図内にある各省略語の補足説明(説明内容は前回と同じ)。
- 「Dev」=開発者。「End User/Biz」=エンドユーザーやビジネスの意思決定者。「Ops」=運営担当者。「AnyOne」=それ以外の人。
- 「Eclipse/CLI」=Eclipseやコマンドライン。「Team Explorer Everywhere」=Windows 以外のプラットフォームからTFSに接続するための機能。
- 「Excel/PowerPoint/Feedback Client」=ExcelやPowerPointやFeedback Client。「Team Explorer」=Visual StudioからTFSに接続するための機能。
- 「System Center」=システム管理プラットフォームのSystem Center。
- 「Web I/F」=TFS上のページなどのWebインターフェース。
TFSで採用されている技術やソフトウェアの概要を以下にまとめる。
【Team Foundation Server】
- バックログ管理: 顧客からの要求(ユーザーストーリー)などを管理する。
- タスク管理: 作業項目などのタスクを管理する。
- バグ管理: TFSは、RedmineやTracなどのITS(Issue Tracking System: 課題管理システム)/BTS(Bug Tracking System: バグ管理システム)と同様に、アプリケーションを計画し、開発して、リリースするチームのためのプロジェクトマネジメントの機能を保有している。
- バージョン管理
・Team Foundation Version Control(TFVC): TFSは「シェルブセット」というファイルの中間バージョンをソース管理リポジトリに保存できる。ソース管理リポジトリにあるので、他のユーザーがアクセスできる。また、ゲートチェックイン(=変更が正常にマージ&ビルドできる場合のみチェックインを受け付ける機能)に対応。
・Git: TFSは分散型バージョン管理システム(DVCS)に対応している。 - 自動ビルド
- 自動テスト
- 自動デプロイ
- リリースマネジメント: TFSはJenkinsなどのCI(継続的インテグレーション)、CD(継続的デプロイメント)、任意の承認タイミングで本番環境にデプロイできる継続的デリバリーの機能を保有している。
- チャット: TFSは「Team Room」というチャットの機能を保有している。エディションによって利用可能。
- テスト管理: TFSは要件やストーリー、バックログ項目に基づいたテスト計画に対応する機能を保有している。エディションによって利用可能。
TFSの特徴を以下の表にまとめる。
項目 | Team Foundation Server |
---|---|
導入までの時間 | OSとTFSのインストールなどで半日程度 |
導入までの費用 | OSとソフトウェアのライセンスが必要 |
メンテナンス | 自分で管理 |
カスタマイズ | 自由にカスタマイズ可能 |
ビルド | 標準ではWindowsプラットフォームに限定されるものの、別途ビルドマシンを準備し、ビルドの際に利用するように設定することであらゆる言語に対応できる |
機能追加 | TFSのバージョンに依存(3カ月に1度、アップデートされる) |
連携 | ExcelやPowerPointなどのBizが利用しているツールと連携できる |
日本語対応 | UI(ユーザーインターフェース)も含めて全て日本語化されている |
上記の表の通り、TFSの強みはそのカスタマイズ性だ。Visual Studio Team Servicesでは3週間ごとの機能追加は自動的に反映され、それを除外する方法はなかったが、自分で環境を構築するTFSでは自由にカスタマイズが可能である。
一方で、自分で環境を構築するため、導入コスト(導入までの時間、導入までに必要な費用)や運用コスト(導入後のサーバーやアプリケーションのメンテナンス)が高くついてしまう面もある。
これらを鑑みると、TFSはVSTSを利用した後、ある程度自分たちで独自のカスタマイズをしたいチームに適しているといえる。
■
次回はアトラシアンの提供するALMのツール群をご紹介する。アトラシアンはVSTSやTFSと違ってAll-in-Oneのツールではなく、複数のツールを組み合わせてALMを支援するツールを提供している。
2. いまさら聞けない「ALM」。3つの構成要素とは?
ALMを実践するための基礎知識として、ALMの3つの構成要素「Business(ビジネス)」「Development(開発)」「Operations(運用)」について説明する。
3. Visual Studio Team Servicesの機能概要と環境構築パターン
効率的にアプリを開発・運用するには、開発ライフサイクルの流れをスムーズにするツールの活用が欠かせない。その環境の一例として、マイクロソフトが提供するSaaS型のALMツール群の全体像を解説する。
4. 【現在、表示中】≫ Team Foundation Serverの機能概要と環境構築パターン
自社イントラネット内などのオンプレミス環境で、アプリ開発のライフサイクルを全体的に管理できるALMツールとして、マイクロソフトのTFS環境を導入した場合の、ALM環境の全体像について解説する。
5. JIRA Software/Bitbucket/Bamboo/HipChat/Confluenceの機能概要と環境構築パターン
オープンソース・ソフトウェアも便利だけど、アプリ開発のライフサイクルを一貫して効率よく管理するには、アトラシアンが提供するツール群がもっと便利。SaaS型/オンプレミス型の両環境の全体像を解説する。