Visual Studio Team Services の最新情報: 2017 年 12 月のまとめ


執筆者: Buck Hodges (Director of Engineering, VS Team Services)

このポストは、12 月 7 日に投稿された What’s brewing in Visual Studio Team Services: December 2017 Digest の翻訳です。

 

今月はお伝えしたいことがたくさんあります。前回の投稿以来、3 回のスプリントで機能がリリースされてきました。また 11 月には Connect(); カンファレンス (英語) が盛大に開催されました。それでは、各機能をご説明しましょう。

Connect();

Connect(); カンファレンスでは、Visual Studio Team Services (VSTS) やその他の Visual Studio 製品ファミリなどの開発者ツールに重点を置き、ソフトウェア開発や DevOps に関するさまざまなニュースを発表すると共に、トレーニングの機会を提供しています。DevOps および Visual Studio Team Services (VSTS) に関するセッションはすべてオンデマンドで視聴できますので、ライブ ストリーミングを見逃した方はこちら (英語) からご覧ください。

Brian Harry (投稿記事、英語) の一般セッションでは、Azure DevOps の現況をお伝えしました。大きな発表としては、セットアップが容易な新しい Azure DevOps Project (英語)TFS 2018 のリリース、Linux および Windows に続いてリリースされたホスト型 Mac 用ビルド エージェント (英語)、VSTS 以外のプラットフォームへの GVFS (英語) の拡大をねらった GitHub との提携 (英語) などが挙げられます。発表の概要については、彼自身が執筆した Connect(); での発表に関するブログ記事 (英語) を参照してください。また、セッションのようすはこちら (英語) でご覧いただけます。

マイクロソフトでの DevOps の実践

先日、DevOps の導入と VS Team Services を大規模に運用する方法について、一連のプレゼンテーションを広範に行いました。この中で、マイクロソフトでの DevOps の実践 (英語) に関して、計画策定、設計、テスト、ライブ サイトなどについて取り上げました。また、先日の VS Live! カンファレンスの基調講演では、マイクロソフトで大規模に DevOps を実践する中で得られた教訓 (英語) についてご説明しました。このときは、機能フラグによる有効化の制御、サーキット ブレーカーを使用した回復性の向上、ライブ サイトの管理と問題の根本原因追求、テストの高速化や信頼性向上など、マイクロソフトが学んだ主な教訓について 1 時間ほどお話ししました。さらに詳細な内容に興味をお持ちのお客様は、Ignite 2017 での DevOps 関連プレゼンテーション (英語) をご覧ください。

Azure DevOps Project

新たに提供が開始された Azure DevOps Project (英語) では、簡単に Azure の使用を開始でき、わずか数ステップでアプリをお好みの Azure サービスで稼働させることができます。アプリの開発、デプロイメント、監視に必要なものはすべて、DevOps Project がセットアップします。

DevOps Project でプロジェクトを作成すると、Azure リソースがプロビジョニングされると同時に、Git コード リポジトリが確保され、Application Insights が統合され、Azure へのデプロイメントに使用する継続的配信パイプラインがセットアップされます。DevOps Project ダッシュボードでは、コードのコミット、ビルド、デプロイを Azure ポータルで一元的に監視できます。

DevOps Project の主なメリット

  • 新規アプリと DevOps パイプライン全体の立ち上げと実行までわずか数分
  • .NET、Java、PHP、Node.js、Python などの主要フレームワークを広くサポート
  • まっさらな状態からの開始と GitHub のアプリケーションの利用に対応
  • 標準で統合されている Application Insights によって、すばやい分析と有用なインサイトの取得が可能
  • Visual Studio Team Services (VSTS) によるクラウド ベースの CI/CD を実現

DevOps Project は VSTS を基盤としており、アプリケーションの開発やデプロイメントを迅速に開始できます。Azure へのデプロイメントの詳細については、こちらのドキュメント (英語) を参照してください。

コード (YAML) ビルドによる構成のパブリック プレビュー

VSTS で CI ビルドを定義する場合、基本的な選択肢として、Web ベースのインターフェイスを使用することも、CI プロセスを YAML ビルドでコードとして構成することも可能です。YAML ビルドによる定義には、「コードとして構成できる」というメリットがあります。

なぜこれがメリットと言えるのでしょうか? 皆様は、アプリを変更していないのに、ビルド プロセスを変更したせいでビルドが壊れたり、予想外の結果が生じたりした経験はありませんか?

YAML ビルドによる定義は、コードと同一のブランチ構造に従います。このため、プル リクエストやブランチ ビルド ポリシーに沿ってコードを確認することで、変更を検証することができるのです。この方法だとコード ベースの他のコードと併せて変更のバージョン管理を行えるため、前述のような問題の特定と修正 (または回避) が大幅に簡単になります。

この機能のしくみについての背景情報など、YAML ビルドについての考えを Chris Patterson がブログ記事で語っています。ぜひこちら (英語) からご覧ください。

: この機能を使用するには、プレビュー (英語) として提供されている YAML ビルド定義をプロファイルとアカウントの両方で有効化する必要があります。

この機能はすぐにお試しいただけます。.vsts-ci.yml という名前の新規ファイルを VSTS の Git リポジトリのルートに追加し、そのファイルに以下を追加するだけです。

queue: Hosted VS2017
steps:
- script: echo hello world

変更をコミットすると、ビルド定義が自動的に作成され、キューに追加されます。以下を参考にしながら “hello world” からステップアップしてみてください。

CI/CD パイプライン向けのホスト型 Mac 用エージェントのパブリック プレビュー

VSTS に、macOS で実行されるクラウド ホスト型 CI/CD エージェントが追加されました。これにより、Apple アプリ (iOS、macOS、tvOS、watchOS 用) の構築やリリースをクラウドで行えるようになり、専用の Mac ハードウェアを設置してメンテナンスする必要がなくなります。これで、VSTS のホスト型 CI/CD エージェントは Linux、macOS、Windows の 3 種類のオペレーティング システムに対応しました。ホスト型エージェントの詳細については、こちらのドキュメント (英語) を参照してください。

ホスト型 macOS 用エージェントを使用するには、ビルドまたはリリース パイプラインで [Hosted macOS Preview] を選択します。

エージェントを使用しないビルド タスク

ビルド プロセスは、実行するタスクによって構成されます。これまで、マイクロソフトが提供するホスト型エージェントと、お客様独自のプライベート エージェントのどちらでも、これらのタスクはすべてエージェントで実行されていました。ただし、REST API の呼び出しや、一定時間のビルドの一時停止など、エージェントを必要としない一般的なタスクも存在します。

今回新たに、以下のエージェントを使用しないビルド タスクがカタログに追加されました。

エージェントを使用しないフェーズをビルド定義に追加し、上記のタスクのいずれかを追加すると、VSTS で実行できます。

エージェントを使用しないタスクを独自に拡張して追加することもできますが、その場合は以下の制限があります。

  • エージェントを使用しないタスクではスクリプトを実行できません。
  • HTTP エンドポイントを呼び出す HttpRequest ハンドラー、または Azure Service Bus にメッセージを送信する ServiceBus ハンドラーのいずれかの事前定義された実行ハンドラーを選択する必要があります。

このようなタスクの作成例は、InvokeRestAPI (英語) および PublishToAzureServiceBus (英語) のそれぞれのタスクのページをご確認ください。

リリース ゲートのパブリック プレビュー

継続的な監視は、DevOps パイプラインに不可欠な要素です。デプロイ後にリリース プロセス内のアプリの正常性を確保することは、デプロイメント プロセスを成功させることと同じくらい重要だからです。企業では、運用環境内のアプリについては、正常性を自動検出したり、ユーザーから報告されたインシデントを追跡したりするために、さまざまなツールを導入しています。これまで承認担当者は、リリースを昇格させる前にシステム全体からアプリの正常性を手動で監視する必要がありました。そこで新たに、Release Management でリリース パイプラインへの継続的監視の統合がサポートされました。この機能を使用すると、リリースを進める前に、アプリの正常性に関するシグナルがすべて同時に正常な状態を示すまでシステムで繰り返し正常性が確認されるようにすることができます。

注: この機能を使用するには、プレビュー (英語) として提供されているリリースの承認ゲートをプロファイルで有効化する必要があります。

まず、リリース定義でデプロイ前とデプロイ後のゲートを定義します。各ゲートでは、アプリの監視システムに対応する正常性に関するシグナルを 1 つまたは複数監視できます。組み込みのゲートとして、「Azure Monitor (Application Insight) のアラート」と「作業項目」を使用できます。Azure Functions を使用すると、他のシステムと柔軟に統合できます。

リリースの実行時には、すべてのゲートがサンプリングされ、それぞれの正常性に関するシグナルの収集が開始されます。サンプリングは一定間隔ごとに繰り返され、すべてのゲートから収集されたシグナルが同時に正常を示すまで続けられます。

監視システムの起動直後は、新しいデプロイメントに関する情報が十分でないために、正確なサンプリングが得られない場合があります。[Delay before evaluation] オプションを使用すると、サンプリングされたゲートがすべて正常であっても、指定した期間中はリリースが進行しません。

ゲートのサンプリング中は、エージェントやパイプラインは一切使用されません。詳細については、リリース ゲートのドキュメント (英語) を参照してください。

成果物のソースとして Docker Hub や Azure Container Registry を使用する

この機能では、アプリ更新用のリリースを Docker Hub レジストリや Azure Container Registry (ACR) に保存されているイメージから自動作成できます。これは、ACR の geo レプリケーション機能を使用してリージョンごとに変更をロールアウトするシナリオや、運用環境用のイメージしか存在しないコンテナー レジストリから特定の環境 (運用環境など) にデプロイするシナリオをサポートするための最初のステップとなります。

今後は、リリース定義の成果物を追加するエクスペリエンスで、[+ Add] から Docker Hub や ACR を構成していただけます。

VSTS をシンボル サーバーとして使用する

VSTS シンボル サーバー (英語) を使用すると、シンボルをホスト、社内で共有できます。シンボルは、実行可能ファイルのデバッグを容易にするための詳細情報を提供するもので、特に C や C++ などのネイティブ言語で作成されているアプリケーションの場合に有用です。詳細については、デバッグ用のシンボルの発行に関するドキュメント (英語) を参照してください。

注: この機能を使用するには、プレビュー (英語) として提供されているシンボル サーバーをアカウントで有効化する必要があります。

フィードで NuGet.org からのパッケージを保存する

NuGet.org をアップストリーム ソースとして使用できるようになりました。これにより、VSTS フィードを通じて NuGet.org からパッケージを使用できるようになります。詳細については、発表時のブログ記事 (英語) を参照してください。

計画のフィルタリング

配信計画 (英語) 拡張機能で、コンポーネントをフィルタリングできるようになり、作業項目とボードのグリッドのフィルタリングと同じエクスペリエンスが提供されます。このフィルターは操作性が向上しており、チーム メンバー全員が一貫性のあるインターフェイスで操作できます。

プル リクエストに関する Azure Active Directory の統合の改善

プル リクエストのレビュー担当者として Azure AD グループを追加する際の操作が大幅に簡素化されました。これまでは、任意の AAD グループをレビュー担当者として追加する場合、事前にそのグループに VSTS へのアクセス許可を明示的に付与する必要がありました。

今後は、そうした追加の構成を行わなくても、プル リクエストのレビュー担当者として AAD グループを追加でき、メール通知と投票のロールアップも正常に動作します。

プル リクエスト ポリシーのパス フィルター

ビルドの検証やテストの実行を目的として、1 つのリポジトリに複数の継続的インテグレーション (CI) パイプラインで構築されたコードが含まれていることがよくあります。統合ビルド ポリシーにパスのフィルタリング オプションが追加され、必要なプル リクエスト ビルドを簡単に複数構成し、それぞれのプル リクエストに自動的にトリガーを設定できるようになりました。必要な各ビルドに対してパスを指定し、トリガーや要件のオプションなどを自由に設定できます。

ビルドの他に、状態ポリシーについてもパスのフィルタリング オプションを使用できます。これにより、カスタム ポリシーやサードパーティのポリシーに特定のパスを適用することができます。

プル リクエストのメンション

プル リクエストのコメントや作業項目についての議論の中で、プル リクエストをメンションできるようになりました。プル リクエストをメンションする方法は作業項目をメンションする場合と似ていますが、ハッシュ記号 (#) ではなく感嘆符 (!) を使用します。

プル リクエストに言及する場合に「!」を付けると、インタラクティブなエクスペリエンスで最近のプル リクエストのリストが表示され、そこからプル リクエストを選択できます。また、キーワードを入力してリストに表示される候補を絞り込んだり、メンションするプル リクエストの ID を入力したりすることもできます。プル リクエストをメンションすると、インラインでそのプル リクエストの ID とタイトル全文が表示され、詳細ページへのリンクとして機能します。

TFS Database Import Service の一般提供開始

TFS Database Import Service の一般提供が開始 (英語) されました。これを使用すると、オンプレミスの Team Foundation Server (TFS) からクラウドでホストされる SaaS サービスの Visual Studio Team Services (VSTS) に移行できます。

これで、移行を開始する場合にマイクロソフトに承認を求める必要がなくなりました。詳細をご確認のうえ、こちらのページからご利用ください。

VSTS CLI のパブリック プレビュー

VSTS CLI は、Windows、Linux、Mac から VSTS および TFS のプロジェクトの作業や管理を行うための新しいコマンド ライン インターフェイス (英語) です。この新しいオープン ソースの CLI は、プル リクエスト、作業項目、ビルドなどを、使いやすいコマンド プロンプトやターミナルから操作できます。また、Bash、PowerShell、その他のお好みのスクリプト言語を使用して、VSTS や TFS での操作を自動化することも可能です。

VSTS CLI では、以下を含むさまざまなことができます。

  • ビルドをキューに追加する
  • ビルドの詳細を表示する
  • プル リクエストを作成する
  • プル リクエストにレビュー担当者を追加する
  • プロジェクトや Git リポジトリを新規作成する
  • 作業項目を更新する

詳細については、VSTS CLI のドキュメント (英語) を参照してください。ソースは、vsts-cli リポジトリ (英語) で確認できます。

複数のブランチでコードを検索

コード検索で複数のブランチのインデックス作成がサポートされ、既定のブランチ以外のブランチも検索できるようになりました。検索用インデックスを作成するリポジトリごとに、ブランチを 5 個追加できます。プロジェクト管理者は、追加するブランチを設定画面の [Version Control] ページで構成できます。

Wiki 検索

チームが Wiki ページに掲載するコンテンツは時間の経過と共に増加し、VSTS のいくつものプロジェクトにまたがるようになるため、関連するコンテンツの検索が徐々に難しくなっていきます。共同作業のメリットを最大限に活かすためには、すべてのプロジェクトに含まれるコンテンツを簡単に検索できるようにする必要があります。Wiki の検索 (英語) では、VSTS アカウント内のすべてのプロジェクトのタイトルやページの内容から、関連する Wiki ページを簡単に検索できます。

: この機能を使用するには、プレビュー (英語) として提供されている、コードと作業項目の新しい検索エクスペリエンス、および新たに追加された Wiki の検索をプロファイルで有効化する必要があります。

今月の拡張機能: RippleRock の SenseAdapt

この拡張機能 (英語) は、有用な情報のグラフをすばやくシームレスに作成する、アジャイル チーム向けのツール セットです。アカウントで追加の構成を行う必要はありません。SenseAdapt でサポートされている主なシナリオとしては、以下のようなものがあります。

  • シンプルで実用性の高い視覚化情報を使用して、プロジェクトの完了日を予測したり、関係者とやり取りしたりする。
  • チーム メンバーに作業状況の周知を図る。作業やそれに関連するシステムをシンプルに視覚化することで、状況改善へのモチベーションを刺激し関心を向けさせることができます。
  • 成果に影響を及ぼす選択肢を把握し、目標にかかわる情報に基づいて意思決定を行うガバナンスを確立する。
  • アジャイルの原則である透明性、視覚化、データに基づく頻繁なフィードバック ループを取り入れることで、より多くの価値を生み出す。
  • 多くの SAFe プロジェクトの指標をわかりやすくシンプルな形で確認する。

視覚化機能は 12 種類あり、追加の構成を行うことなく、数分程度でチームのさまざまな役割や目的に応じて活用できます。この機能をインストールするには、こちらのページ (英語) にアクセスしてください。

作業項目を作成する拡張機能

作業項目の拡張機能を独自に作成したいと考えているお客様は、作業項目フォームの作成について解説しているこちらのブログ記事 (英語) をぜひお読みください。この記事では手順が詳細に説明されているため、拡張機能の構築に必要なことを具体的に理解できます。

香港での VSTS の提供

2014 年、マイクロソフトは Visual Studio Team Services (VSTS) をグローバルなサービスにするという目標を掲げました。この目標に向けて、全世界のお客様に高いパフォーマンスを提供することと、各地のデータ主権に関する要件に準拠することに取り組んでいます。2014 年から 2016 年にかけては、ヨーロッパ (英語)オーストラリア (英語)インド (英語)ブラジル (英語) で VSTS インスタンスの提供を開始しました。さらに、2 か月前には、新たにカナダ (英語) で VSTS インスタンスの提供を開始しました。この取り組みの一環として、米国とヨーロッパではアカウントの作成数が多いため、さらにインスタンスを増やしました。米国に 4 つ、ヨーロッパに 1 つの追加となります。

そしてこのたび、新たに香港 (Azure の東アジア リージョン) で VSTS インスタンスの提供を開始することを発表しました。

アカウントを新規作成する際、既定ではユーザーに最も近いリージョンが使用されます。香港に近い地域のお客様の場合は、東アジア リージョンが既定で選択されます。また、これまでと同様に、リストから他のリージョンを選択することも可能です。東アジア リージョンはどなたにもご利用いただけます。既に Visual Studio Team Services アカウントを所有していて、そのアカウントを東アジア リージョンに移動する場合は、サポートまでお問い合わせください。

まだ VSTS インスタンスが設置されていないリージョンの中で設置をご希望の場所がありましたら、UserVoice (英語) からお知らせください。VSTS の提供地域を世界全体に拡大する取り組みについて、今後の発表にご注目ください。

まとめ

今回も、記事内で紹介しきれなかったことが多数あります。詳細については、10 月 6 日 (英語)10 月 30 日 (英語)11 月 28 日 (英語) の各スプリントに関するリリース ノートに記載されていますので、ぜひ全文をお読みください。VSTS に関する計画や開発の最新情報については、DevOps ブログ (英語) をご確認ください。

ではまた!

@tfsbuck

 

Comments (0)

Skip to main content