| Azure DevOps Server | |
|---|---|
| 開発者 | マイクロソフト |
| リリース | 2005年 (2005年) |
| 安定放出 | |
| オペレーティング·システム | マイクロソフトWindows |
| タイプ | アプリケーションライフサイクル管理 |
| ライセンス | トライアルウェア |
| Webサイト | azure.microsoft.com/en-us/services/devops/server/ |
Azure DevOps Server は、以前はTeam Foundation Server ( TFS ) およびVisual Studio Team System ( VSTS ) として知られていましたが、バージョン管理( Team Foundation Version Control (TFVC) またはGit を使用)、レポート作成、要件管理、プロジェクト管理(アジャイルソフトウェア開発チームとウォーターフォールチームの両方に対応)、自動ビルド、テスト、リリース管理機能を提供する Microsoft 製品です。アプリケーションのライフサイクル全体をカバーし、DevOps機能を実現します。[ 2 ] Azure DevOps は、多数の統合開発環境(IDE)のバックエンドとして使用できますが、すべてのプラットフォームでMicrosoft Visual StudioおよびEclipseに特化しています。[ 3 ]
Azure DevOps には、オンプレミス (「サーバー」) とオンライン (「サービス」) の 2 つの形式があります。[ 4 ] 後者の形式はAzure DevOps Services (以前は Visual Studio Online と呼ばれ、2015 年に Visual Studio Team Services に名称変更されました) と呼ばれています。クラウド サービスは、Microsoft Azureクラウド プラットフォームによって支えられています。オンプレミス版の Azure DevOps と同じコードを使用し、若干の変更を加え、最新の機能を実装しています。ユーザーはMicrosoft アカウントを使用してサインインし、環境をセットアップしてプロジェクトを作成し、チーム メンバーを追加します。短い開発サイクルで開発された新機能は、まずクラウド バージョンに追加されます。これらの機能は、約 3 か月間隔で更新としてオンプレミス バージョンに移行されます。[ 5 ]
Azure DevOps は、マルチティアのスケーラブルなアーキテクチャに基づいて構築されています。主な構造は、処理ロジックと Web アプリケーション ポータル (チーム Web アクセスまたは TWA と呼ばれる) の維持を担当するアプリケーション層で構成されています。Azure DevOps は、Windows Communication Foundation Web サービスを使用して構築されています。スケーラビリティをサポートするために、アプリケーション層は負荷分散でき、データ層はクラスタリングできます。[ 6 ]
プライマリコンテナはプロジェクトコレクションです。プロジェクトコレクションは、チームプロジェクトのグループを含むデータベースです。プロジェクトコレクションデータベースのデータはウェアハウスデータベースに集約され、そこでデータが非正規化されてAnalysis Servicesキューブへのロード準備が整います。ウェアハウスとキューブにより、複雑なトレンドレポート作成とデータ分析が可能になります。
Azure DevOps は既存のSharePointファームと統合できます。[ 7 ]エンタープライズ プロジェクト スケジューリングを必要とするチームをサポートするために、Azure DevOps はMicrosoft Project Serverとも統合されます。
Microsoft は、Azure DevOps に接続するための2 つのスタンドアロン再配布API を提供しています。Java SDK と.NET Framework SDK です。これらの API により、クライアントは Azure DevOps に接続できます。Azure DevOps はサービス指向アーキテクチャに基づいて構築されているため、Web サービスを呼び出すことができるほぼすべてのツールと通信できます。もう 1 つの拡張可能なメカニズムは、システム アラートの購読です。たとえば、作業項目が変更された、またはビルドが完了したというアラートです。[ 8 ]拡張可能なシナリオで使用すると、これらのアラートは Web サービスに送信され、作業項目を変更または更新するアクションをトリガーします (高度なビジネス ルールを実装したり、特定のシナリオに基づいて作業項目をプログラムで生成したりするなど)。
データウェアハウスは、カスタムデータウェアハウスアダプタを作成することによって拡張することもできます。[ 9 ]
Azure DevOps は、Visual Studio 2010 以降、Microsoft Test Manager (MTM) 2012、および 2013 をサポートしています。Eclipse、Visual Studio の旧バージョン、およびその他の環境は、Microsoft Source Code Control Integration Provider を使用して Azure DevOps に接続できます。[ 10 ]
Microsoft ExcelとMicrosoft Projectもサポートされており、作業項目の管理を支援します。これにより、作業項目の一括更新、一括入力、一括エクスポートが可能になります。Microsoft Projectは、ウォーターフォール型ソフトウェア開発手法に準拠する場合の作業スケジュール作成に使用できます。ExcelとProjectはどちらも双方向のデータ更新をサポートしています。例えば、プロジェクトマネージャーがProjectでスケジュールを作成し、その作業をAzure DevOpsにインポートして開発者が作業を更新した後、スケジュールも更新されるといったことが可能です。
Team Foundation Server 2012では、Microsoft PowerPointがAzure DevOpsと統合され、要件管理プロセスを支援する迅速なストーリーボード開発が可能になりました。この統合により、拡張可能なストーリーボード図形が提供され、PowerPointの組み込み機能を使用してあらゆる種類のインターフェイスモックアップを作成し、アニメーション化することができます。これらのストーリーボードは、作業項目にリンクすることも可能です。
チームの地理的な分散の拡大に対応し、関係者をより早い段階でより頻繁にプロセスに参加させるために、マイクロソフトはフィードバック クライアントを追加しました。[ 11 ]このツールを使用すると、ユーザーはアプリケーションを操作し、音声やビデオで表示内容を注釈付けし、画面をキャプチャして、開発チームに状況に応じたフィードバックを提供できます。
Azure DevOps の中核となるのは「作業項目」であり、これは実行する必要のある作業、追跡すべきリスク、テスト ケース、バグなどです。作業項目はXMLドキュメントで定義され、拡張性が非常に高いです。[ 12 ]作業項目は、これらの情報やその他の情報を含むプロセス テンプレートにまとめられ、開発フレームワークを提供します。Azure DevOps には、Microsoft Solutions Framework for Agile、Scrum、CMMI 用のプロセス テンプレートが含まれています。[ 13 ]
作業項目は、さまざまな関係性を用いて相互にリンクさせることができ、階層構造のツリー構造やフラットな関係性を構築できます。また、Webページ、ドキュメント、ソースコード、ビルド結果、テスト結果、ソースコード管理システム内の特定のバージョンなど、外部成果物にもリンクさせることができます。
ワークアイテムシステムの柔軟性により、Azure DevOpsは要件管理からバグ追跡、リスクおよび課題追跡、レビュー結果の記録まで、さまざまな役割を担うことができます。拡張可能なリンク機能により、要件からソースコード、テストケース、結果に至るまでのトレーサビリティが確保され、監査目的や変更履歴の把握のために報告することが可能です。
Azure DevOpsは、2種類のソース管理をサポートしています。1つは、Team Foundation Version Control(TFVC)と呼ばれる独自のソース管理エンジンで、もう1つはTFS 2013のリリースに伴い、コアソース管理リポジトリとしてGitをサポートするようになりました。
TFVC は、チームがリポジトリ内にあらゆる種類の成果物を保存できる集中型バージョン管理システムです。[ 14 ] TFVC は、クライアント ツールを使用する際に、サーバー ワークスペースとローカル ワークスペースの 2 種類のワークスペースをサポートしています。[ 15 ]サーバー ワークスペースを使用すると、開発者はチェックアウトのためにファイルをロックし、ファイルが編集されていることを他の開発者に通知できます。このモデルに対するよくある不満は、開発マシン上のファイルが読み取り専用としてマークされることです。また、サーバーに接続できない場合は、開発者は「オフライン」にする必要があります。ローカル ワークスペースは、これらの問題を回避するように設計されています。ローカル ワークスペースのシナリオでは、ファイルは読み取り専用ではなく、作業する前にチェックアウトする必要もありません。ファイルが開発者のローカル マシン上にある限り、サーバーが接続されているかどうかは関係ありません。競合はチェックイン時に処理されます。
リモート クライアントのパフォーマンスを向上させるために、Azure DevOps にはプロキシ サーバーをインストールする機能が含まれています。[ 16 ]プロキシ サーバーを使用すると、ソース管理コンテンツを開発者に近いサイトにキャッシュして、長いネットワーク トラベルとそれに伴う遅延を回避できます。チェックインは引き続き Azure DevOps アプリケーション 層に対して直接実行されるため、プロキシ サーバーは読み取りシナリオで最も効果的です。
Azure DevOpsは、ソースコード管理エンジンの一部として、開発者がチェックインするコードが構成可能なルールに従っていることを確認できるよう、多くの機能をサポートしています。また、Azure DevOpsはコード分析機能もサポートしており、この機能は単独で使用するとFxCopと呼ばれます。
TFS 2013 のリリースに伴い、Microsoft はGitのネイティブサポートを追加しました。これは Microsoft 独自の実装ではなく、libgit2 [ 17 ]ライブラリに基づく標準実装です。Microsoft は標準ライブラリを使用するアプローチを採用したため、Azure DevOps で任意の Git クライアントをネイティブに使用できるようになりました。これにより、Git をサポートするあらゆるプラットフォームおよび IDE 上のツールが Azure DevOps に接続できるようになります。さらに、開発者がEclipse用の Microsoft Team Explorer Everywhere プラグインを使用しない場合は、eGit [ 18 ]を使用して Azure DevOps に接続することもできます。
レポートインフラストラクチャは、リレーショナルデータベースであるデータウェアハウス[ 19 ]とSQL Server Analysis Servicesデータキューブ[ 20 ]で構成されています。このオプションがインストールされると、これらのソースの両方がSQL Server Reporting Servicesを介してレポートに使用できます。これらは標準的なデータベースおよびキューブ構造であるため、これらのデータソースを参照できるツールであれば、どれでもレポートを作成できます。これには、Cognos、Tableau、Excel、その他のレポートツールなどが含まれます。各既製のプロセステンプレートには、ビルド情報、テスト結果と進捗状況、プロジェクト管理、アジャイルレポート(バックログ概要、リリースバーンダウン、スプリントバーンダウン、ベロシティ)、バグおよび問題データをカバーするレポートサービス用のレポートセットが含まれています。新しいレポートはSSRS用レポートビルダーを使用して作成でき、既存のレポートはどれでも変更できます。
TFS 2013では、「軽量レポート」と呼ばれる新機能が導入されました。これは、クエリ結果に基づいてリアルタイムのレポートを作成する機能を提供し、データウェアハウスやキューブに依存しないものです。
Team Build (TFS 2015 より前) は、Team Foundation Server に含まれるビルド サーバー アプリケーションです。Team Build は、MSBuildとWindows Workflow Foundation の2 つのコンポーネントで構成されています。MSBuild は、 Apache Antに似た宣言型 XML 言語です。
Windows Workflow はビルド プロセスの全体的な流れを制御し、Azure DevOps にはビルド中に実行される一般的なタスクを管理するための多くの事前構築済みワークフロー アクティビティが含まれています。[ 21 ]ビルド システムは拡張可能で、ユーザーは独自のワークフロー アクティビティを作成したり、MSBuild をプロセスに挿入したり、外部プロセスを実行したりできます。
ビルドプロセスは、スケジュールビルド、継続的インテグレーション、ゲート付きチェックイン、ローリングビルドなど、さまざまな種類のビルドに合わせて構成できます。
Azure DevOps のビルドプロセスもトレーサビリティメカニズムの一部であり、Team Build は Azure DevOps で作成および保存される多くの成果物を集約します。開発者がチェックイン時にソースコードを作業項目に関連付けると、Team Build は各ビルドの変更点(ソースコードの変更、作業項目の変更、テスト結果など)をレポートできます。バグやプロダクトバックログアイテム(PBI)が解決され、ビルドに統合されると、これらの成果物を追跡する作業項目が自動的に更新され、どのビルドに正常に統合されたかが示されます。テストツールと組み合わせることで、テスターは各ビルドで変更されたコードだけでなく、ビルドごとに変更されたバグ、 PBI 、その他の作業についても統合的に把握できます。
2013 年半ば、マイクロソフトは InCycle Software から InRelease という製品を購入しました。[ 22 ] InRelease は Team Foundation Server 2013 に完全に統合されました。この機能は、真の継続的デプロイメントソリューションを可能にすることで、自動ビルドおよびテスト プロセスを補完します。ツールは TFS 2013 用に「リリース管理」と改名されました。リリース管理機能により、チームは、開発、テスト、および運用環境への制御されたワークフロー ( Windows Workflow Foundationによって提供) 駆動型のリリースを実行できるようになり、1 つ以上のリリースの進捗状況を監視するためのダッシュボードが提供されます。
Team Foundation Server の最初のバージョンは 2006 年 3 月 17 日にリリースされました。[ 23 ]