注意事項:これらの新機能は今後三週間にわたって順次展開されます
このスプリントは //Buildカンファレンスにおける、私たちの CI/CD 領域において非常に重要なものです。
私たちの目標の一つは、アプリケーションのデプロイメントの自動化を開始するまでの最初の一歩に対する障壁を低く抑えることです。 チームがアプリケーションを展開して検証することが容易であることは、アプリケーションをどのくらい迅速に出荷できるかの大きな要因となります。 私たちのCI / CDシステムは完全にオープンしていますが、Azureとの深い統合を行うことで、展開を非常に簡単にすることができます。 また、開発と運用の両方にまたがる豊富なワークフローのための多くの機会を提供します。 そのために、私たちはVSTS + Azureを最高のエンドツーエンドのDevOpsエクスペリエンスにするよう努力し続けています。
このスプリントでは、この目標を実現するための新しい機能を提供します。 サポートしているアプリの種類が大幅に拡大しました。
展開するVM上でオートメーションエージェントを使用し、アプリケーションデプロイメントの配置に使用します。 これは、私たちのRelease Managementのためにも最も求められている機能であり、我々は提供開始できることに興奮しています。
私たちはコンテナにますます注目し続けています。 このスプリントでは、KubernetesとService Fabricのネイティブサポートを紹介します。後者はWindowsコンテナに最適です。
Azure Web Apps向けにはすでに素晴らしい機能が提供されていますが、ネイティブタスクでサポートしているアプリケーションタイプを拡張して、Node、PHP、Linux Web Appsにコンテナを追加しました。 また、Azureポータル設定UIでより多くのオプションを使用してCI / CDを設定するためのエントリーポイントを広げ、AZ CLIからAzure Web AppsのCI / CDを設定する機能を追加しました。
もっと詳細に紹介しましょう!
Release Managementでは、堅牢ですぐに使えるマルチマシン展開がサポートされるようになりました。 これで、複数のマシン間で展開を調整し、アプリケーション全体の高可用性を確保しながらローリングアップデートを実行できるようになりました。
エージェントベースのデプロイ機能は、ビルドとデプロイで同じエージェントを使用します。 ただし、エージェント・プール内のプロキシ・サーバーのセットにビルド・エージェントとデプロイ・エージェントをインストールし、リモート・ターゲット・サーバーへのデプロイメントを駆動する現行の方法とは異なり、各ターゲット・サーバーにエージェントを直接インストールします。インストール後、 ターゲットマシン上で完全なタスクカタログを使用することができます。
デプロイメントグループは、エージェントがそれぞれにインストールされているターゲット(マシン)の論理的なグループです。 デプロイメントグループは、単一ボックスのDev、マルチマシンのQA、UAT / Prodのマシンのファームなどの物理環境を表します。 また、物理環境のセキュリティコンテキストも指定します。
エージェントを登録したどのVMに対しても使用できます。 また、Azure VM拡張をサポートししているので、Azureに登録することも非常に簡単にでき、VMがスピンアップしたときにエージェントを自動インストールします。 Azure VMがVSTSに登録されると、Azure VMのタグが自動的に継承されます。
デプロイメントグループを作成したら、そのデプロイメントグループで実行する内容を設定するだけです。 タグを使用して、どのマシンで何が実行されるかを制御し、ロールアウトの速度や速度を制御できます。
デプロイメントを実行すると、ログにグループ全体の中からターゲットマシンの進捗状況を示します。
この機能はRelease Managementに統合されたので、追加のライセンスは必要ありません。
展開に使用されるもう一つの一般的なパターンは、アプリケーションの各バージョン用の完全なマシンイメージを作成し、それを展開することです。 それを簡単にするために、新しいBuild immutable machine imageタスクでビルドします。アプリケーションをデプロイした後、仮想マシンイメージを生成するためにPackerを使用します。 タスクは、展開スクリプトまたはPacker設定テンプレートのいずれかを使用してマシンイメージを作成し、Azureストレージアカウントに格納します。 このイメージは、このタイプの固定イメージ展開に適したAzure Virtual Machine Scale Setデプロイメントに使用することができます。
このリリースでは、デフォルトでDocker拡張のタスクの大部分を製品に取り込み、改善し、コンテナシナリオのセットを簡単にするための一連の新しいタスクとテンプレートを導入しました。
- Docker:Dockerイメージを構築、プッシュ、Dockerイメージの実行もしくは、Dockerコマンドを実行します。 このタスクは、DockerまたはAzure Containerレジストリで使用できます。 ACR(訳注:Azure Container Registory)で組み込みのサービスプリンシパル認証を使用することで、さらに使いやすくすることができます。
- Docker-Compose:複数のコンテナのDockerアプリケーションをビルド、プッシュ、または実行します。 このタスクは、DockerまたはAzure Containerレジストリで使用できます。
- Kubernetes:kubectlコマンドを実行して、Azure Container ServiceでKubernetesクラスタをデプロイ、構成、または更新します。
- Service Fabric:コンテナをService Fabric Clusterに展開します。 クラウド内のWindowsコンテナを実行するための最良の選択肢は、Service Fabricです。 実際、これはVSTS自体の各スプリントの開発で使用しています。
Azure Web Application向けの多くの機能拡張を行っています。
- Azure App Serviceデプロイメントタスクは、Node.js、Pythonアプリケーションの配置をサポートします。
- Azure App Serviceデプロイメントタスクは、コンテナを使用してAzure Web App for Linuxへのデプロイをサポートします。
- AzureポータルのContinuous Delivery(訳注:ポータルでは「連続配信」)が拡張され、Nodeアプリケーションがサポートされるようになりました。
また、CI / CDを設定するためのAzure CLIの最新バージョンにCI / CDサポートを導入しました。 次に例を示します。
az appservice web source-control config --name mywebapp --resource-group mywebapp_rg --repo-url https://myaccount.visualstudio.com/myproject/_git/myrepo --cd-provider vsts --cd-app-type AspNetCore
新しいプレビュータスクである**Install SSH Key(Preview)**は、ビルドまたはリリース前にSSHキーをインストールし、完了するとエージェントから削除します。 インストールされた鍵は、Gitリポジトリまたはサブモジュールからコードを取得したり、deploymenet scriptを実行したり、SSH認証を必要とするその他の処理に使えます。 今後、パスフレーズやその他の機能をサポートできるように改善します。
今後数週間のうちに、古いビルド定義エディタを廃止します。 私たちは、より直観的な体験を提供し、いくつかの不便な点を修正し、新機能を追加するために、新しいエディタを設計しました。テンプレートを使用したり、タスクを追加したり、設定を変更する方が簡単になることを願っています。プロセスパラメータを使用することで、タスクに深く関わることなく、最も重要なデータを簡単に指定できるようになりました。このブログで詳しく学んでください。
2017年7月1日、チームサービスのホストされたビルドプールでXAMLビルドコントローラのサポートを停止します。 それでもXAMLベースのビルドは可能ですが、独自の(プライベート)コントローラ/エージェントをセットアップする必要があります。 これは、クラウドVM(Azureなど)または自社のオンプレミスハードウェアで対応できます。 プライベートXAMLコントローラとエージェントを使用するには、アカウントに十分なプライベートパイプラインが必要です。 詳細については、 I’m looking for the hosted XAML build controller. Where did it go?.をみてください。
時間の経過とともに、新しいパイプライン/タスクベースのビルドバージョンに移行する予定です。新しいバージョンではホスティングされたビルドを含むあらゆる機能にアクセスできます。
Visual StudioビルドおよびMSBuildタスクを使用すると、特定のバージョンのVisual Studioを選択できます。 これまでVisual Studio 2017のバージョンが利用できなかった場合、これらのタスクは自動的に次の使用可能なバージョンを選択します。
私たちはこの挙動を変えています。Visual Studio 2017を選択しても、エージェントには存在しない場合、ビルドが失敗します。
この変更は次の理由で行われました。
- .NET Coreなどの新しいアプリケーションタイプは、古いビルドツールではコンパイルされません。 明示的にVisual Studio 2017以上が必要です。
- 正確に同じバージョンのVisual Studioを使用すると、予測可能で、より一貫性のある結果になります。
- ビルドタスクで以前のVisual Studioを使うフォールバックが発生すると、理解しにくいコンパイルエラーが発生することがあります。
Tip
Team Servicesでホストされたエージェントを使用している場合、必ずHosted VS2017キューを選択してください。 プライベートエージェントを使用している場合は、Visual Studio 2017がインストールされたエージェントを持つプールに接続されたキューを使用し、以前のバージョンのVisual Studioのみを持つエージェントは使用しないでください。
ビルド定義のこの新しい設定を使用すると、ユーザーは手動で多数のビルドを検索することなく、作業項目と関連づけられたビルドを追跡できます。作業項目に関連付けられたそれぞれの成功ビルドは、作業項目フォームの開発セクションに自動的に表示されます。
この機能を有効にするには、ビルド定義のOptionsで設定を切り替えます。
注:この機能はTeam Services GitまたはTFVCリポジトリをビルドする定義でのみ使用でき、新しいビルド定義エディタでのみ使用できます。
Delivery Plansがプレビューを終了し、VSTSの基本アクセスレベルに含まれていることをお知らせします。 Delivery Plansは、イテレーションベースのカレンダーで、作業状況を追跡することにより、ユーザーがチーム間の可視性と調整を促進するためのツールです。 ユーザーは、アカウント内のすべてのプロジェクトから、チームまたはバックログレベルを含めるように計画を調整できます。 さらに、PlansのField Criteria を使用すると、*Markersで重要な日付を強調表示している際に、ユーザーごとの視点をカスタマイズできます。
Delivery Plansは現在VSTSでのみ利用可能です。 ただし、今後のTFS 2017 Update 2リリースに含まれる予定です。
詳細については、Delivery Plansのマーケットプレイスページをチェックし、拡張機能をインストールしてください。
マーケットプレースのWork Item Search previewをインストールして使用していただきありがとうございます。 私たちの最も高い評価をいただいた拡張機能の一つです。 今回のリリースでは、VSTSの組み込み機能とすることで、作業項目の検索を簡単に使用できるようになりました。
検索ボックスを使用して作業項目の検索を開始できます。
あなたのプロセスのカスタマイズするページを近代化しました。 ページには、プロセス内のコンテキストまたはプロセス内の作業項目タイプを明確に示すために、上部に三点リーダー(訳注:…)が表示されます。
また、作業項目フォームのカスタマイズを開始する方がはるかに簡単です。 作業項目のコンテキストメニューからCustomizeを選択すると、自動的に継承されたプロセスが作成されます(まだカスタマイズを使用していない場合)。
最後に、コレクションのすべてのフィールドを表示するページを追加しました。 以前は、プロセスからフィールドを削除できましたが、そのフィールドはコレクションから削除されませんでした。 これで、Fieldページに移動し、フィールドを選択してコレクションから完全に削除することができます。
ユーザーは必要に応じてOOBプロセス(Agile、Scrum、CMMI)のいずれかからフィールドを設定したり、デフォルト値を設定することができました。以前はユーザーがこれらのフィールドの一つ(優先度、説明、ビジネス値など)を編集したときに、編集ダイアログに定義とレイアウトという2つのタブしかありませんでした。 新しいリリースでは、ユーザーがこれらのフィールドを必要とするか、デフォルト値を与えることを可能にする新しいタブ、Optionsを追加しました。 たとえば、Business Valueフィールドを必須にするか、Priorityフィールドをデフォルト値の「3」に設定することができます。
Filesハブをいくつか更新して、表示と編集の操作性を向上させました。
現在のフォルダ内のREADMEを表示したり、Markdownファイルをプレビューしたり、ファイルを以前のバージョンと比較したり、blame(訳中:git blameのこと)が確認できるピボットを追加しました。
編集のために、変更をプレビューしたり、簡単にコメントを追加したり、新しいブランチにコミットしたり、作業項目をリンクできます。
Git LFSファイルロック機能を追加しました。これにより、2人以上の人が同じファイルを一度に編集しようとすると、大きなファイルを扱うチームが仕事を失うのを避けることができます。誰でもファイルの編集を開始できるようになる前に、ロックを取ってサーバーに通知します。 他の誰かがロックを試みると、サーバーは要求を拒否し、他の人がすでにそのファイルで作業していることを第2の人に知らせます。この機能を使用するには、Git LFS 2.1以上にアップグレードしてください。
ブランチポリシー設定のエクスペリエンスを再設計し、いくつかの素晴らしい新機能を追加しました。 最も強力な機能の一つは、ブランチフォルダのポリシーを構成できることです。 ブランチフォルダーを選択し、コンテキストメニューからBranch policiesを選択すると、*Branchesビューから実行できます。
これにより、ブランチフォルダ内のすべてのブランチに適用されるポリシーを設定できる新しいポリシー設定UXが開きます。
ビルドポリシーを使用している場合、一つのブランチに対して複数のビルドを設定できるようになりました。 トリガのタイプを指定する新しい自動または手動トリガーのオプションもあります。手動トリガはpull requestを完了する前に一度だけ実行する必要があり、実行に時間がかかる自動テストの実行などに便利です。 ビルドポリシーには、複数のビルドを構成する場合に便利な表示名もあります。
手動トリガービルドポリシーを設定したら、プルリクエストのPoliciesセクションでQueue buildオプションを選択して実行します。
必要なレビューアポリシーについては、管理者がポリシーが適用されるときにプルリクエストのタイムラインに追加されるノートを指定する機能を追加しました。
Share Pull Requestアクションは、レビューアに通知する便利な方法です。 今回のリリースでは、チームやグループのサポートが追加されたので、一回のpull requestで参加者全員に通知できます。
新しいコメント通知であなたのPRの会話の最新状態を通知します。あなたが作成したPRの場合、ユーザーが新しいコメントスレッドを追加したり、既存のスレッドに返信したりするたびに、自動的に通知されます。 別のユーザーのPRにコメントすると、作成または返信するコメントスレッドへの今後の返信が通知されます。
これらの通知は、既定の購読の一部として利用でき、Notificationsページで設定できます。
Azure Active Directory(Azure AD)を使用してTeam Servicesのグループを管理しているチームは、pull requestでこれらのグループを使用できるようになりました。pull requestを作成するときに、Azure ADグループを割り当てられます。 他のレビューアやグループと同じように追加されます。
Azure ADグループは、プルリクエストに投票するときに他のグループと同様に動作します。 プルリクエストに投票するグループのメンバーは、そのグループの投票としてカウントされた投票を持つことになります。 ブランチポリシーを使用していて、repo用に特定のレビュー担当者を設定している場合、Team Servicesグループに加えてAzure ADグループを使用できるようになりました。
プルリクエストを確認するためにAzure ADグループが追加されると、そのグループには、グループの電子メールアドレスを使用してプルリクエストアクティビティについて通知されます。
pull requestファイルビュー、Gitコミットの詳細、Gitプッシュの詳細、TFVCシェルフセットの詳細、TFVCチェンジセットの詳細、TFVCチェンジセットハブ、およびGitヒストリーハブは、新しいツリービューコントロールで更新されました。 ツリービューにはいくつかのユーザビリティの改善があります。 まず、ビューを変更して、空のフォルダノードを自動的に折りたたんで、表示中のファイルの数を最大にする凝縮したツリービューを表示します。
ツリーはよりコンパクトな方法でコメントを表示します。 コメントを含むファイルには、各コメントスレッドの子アイテムが表示され、スレッドを作成したユーザーを示すアバターが表示されます。 新しいコメントスレッドと応答を持つスレッドは青い点で示され、応答の数はカウントで要約されます。
Java開発者はMavenアーティファクト(NuGetパッケージのJava相当)にコードをパッケージ化してコンポーネントを共有します。Team Servicesのお客様は、NexusやArtifactoryなどのサードパーティサービスを使用してMavenの成果物をホストする場所を必要とし、ニーズを満たすことができました。 Team Services Package ManagementがMavenのアーティファクトをホストできるようになりましたことを誇りに思っています!getting started guideをご覧ください。
私たちはNuGet Installer(現在はNuGet Restoreと呼ばれています)のタスクを大幅に更新し、NuGet CommandとNuGet Tool Installerの2つの新しいNuGetタスクを追加しました。 特に、NuGet CommandとNuGet Restoreタスクは、デフォルトでnuget.exe 4.0.0を使用するようになりました。
NuGet Tool Installerは、NuGet RestoreタスクとNuGet Commandタスクの両方で使用されるNuGetのバージョンを制御します。 デフォルトでは、タスクは一般的な、テスト済みのバージョンを使用します。上書きしたい場合、他のNuGetビルドステップの前にNuGet Tool Installerのステップを追加するだけです。
NuGet Restoreは、Visual Studioビルドステップの前にパッケージを復元する最も一般的なシナリオ用に最適化されました。 また、単一のNuGetフィードを共有する小さなプロジェクトをサポートします。チームサービスフィードを選択し、自動生成されたNuGet.Configに追加できます。
同じ電子メール通知の受信者は一行のto:に一緒に含まれ、一つの電子メールが送信されるようになりました。 以前は、個々の電子メールが各受信者に送信されていました。この挙動は誰が通知を受け取ったのかがわらなかったため、電子メールでイベントに関する会話をすることが困難でした。この機能は、複数の受信者を対象にできる既定のチーム購読と同様に適用されます。たとえば、pull requestが変更されると、pull requestのすべてのレビュー担当者に一つの電子メールが送信されます。
この機能はデフォルトでオンになっていますが、アカウント管理者は、ユーザープロファイルメニューのPreview FeaturesパネルからアカウントレベルのCombine email recipientsをオフにすることで無効にすることができます。
メール受信者の組み合わせの詳細については、combining email recipientsをご覧ください。
Out-of-the-box通知機能は、プレビューの対象外となり、すべてのアカウントで利用可能になりました。ユーザーとチームは、以下のようなアカウントに直接関連するアクティビティがある場合に電子メールで自動的に通知されます。
- 作業項目がユーザに割り当てられたとき
- ユーザーまたはチームがpull requestにレビュー担当者として追加されたとき
- ユーザーまたはチームが更新されたpull requestのレビュー担当者であるとき
- 他のユーザーがpull requestのコメントに応答したとき
- ユーザーが要求したビルドが完了したとき
- 拡張機能がインストールまたは要求されているとき(管理者のみ)
ユーザープロファイルメニューの通知設定に移動し、適切なトグルをオフにすることで、ユーザーごとの購読の解除ができます。注:これらのデフォルトのサブスクリプションは、現在のアカウントにのみ適用されます。
アカウント管理者は、設定の下にあるアカウントレベルのNotificationsハブに移動することで、これらの自動登録を無効にすることができます。これらのサブスクリプションのいずれかを無効にするには、"…"アクションの下にあるDisableをクリックします。サブスクリプションが無効になると、ユーザーは個人の通知設定ページに表示されなくなります。
out-of-the-box notificationをご覧ください。
無料の拡張機能の提供者は、選択された期間の全体的な取得までの集計、取得によるextensionページビューの日々の傾向、Team ServicesとTFS Connectedへの取り込み、ページビューから取得への変換など、新しい取得データにアクセスできるようになりました。 このデータは、独自のカスタムレポートを作成する際に役立つXLS形式でダウンロードすることもできます。
Q&Aタブでは、ユーザーによるすべての質問のスナップショットが表示されます。 以前の返信に返信したり編集したりして、拡張機能ユーザーとのエンゲージメントをよりうまく管理することで、行動をとることができます。
Azureサブスクリプション所有者とcontributerの権利を割り当てられているユーザーはVisual Studio Marketplaceを通じて拡張機能が購入できる機能を追加しました。 以前は、Azure adminと共同管理者(co-admins)だけが購入できました。これには完全なサブスクリプション管理者権限が委任されていなければなりませんでしたが、これはAzureクラッシックポータルでのみ可能でした。Azureポータルの所有者またはcontributorとしてユーザーを追加すれば、マーケットプレイスを通じてチームの拡張機能の購入ができます。
私たちはあなたがこれらの機能について何を考えているのか聞いてみたいと思います。WebポータルでSmileアイコンや嫌な顔アイコンを選択したり、Team Services Developer Communityから他のコメントを送ることを躊躇しないでください。 いつものように、あなたが私たちに見せたいものについてのアイデアを持っているなら、UserVoiceであなたのアイデアを追加したり、既存のものに投票してください。
ありがとうございました。
Jamie Cool