Microsoft は、Visual Studio Code またはプライベート プレビューの Visual Studio を使用しているユーザー向けに、クラウドでホストされる開発環境を提供しています。
マイクロソフトは 2013 年に Visual Studio Online というものを導入しました。これは 2015 年に Visual Studio Team Services となり、その後 Azure DevOps になりましたが、月曜日の不安定さの後、再び安定しているようです。
ただし、2013 バージョンはコーディング用ではありませんでした。ホストされたソース管理、問題追跡、ビルドサービスなどのためのもので、基本的にはオンプレミスの Team Foundation サービスのホスト版でした。
同社は現在、Visual Studio Onlineを、皆さんが期待するオンラインコーディング環境に近い形でリニューアルしました。2つのバージョンがあります。1つはVisual Studio Codeをベースとし、ブラウザとVisual Studio Codeデスクトップアプリケーションの両方で動作します。リモート側では、4コア、8GB RAM、64GB SSD、またはプレミアムオプションで8コア、16GB RAM、64GB SSDを搭載したLinux仮想マシン(VM)が稼働します。先週のIgniteイベントで発表されたように、このオプションは現在パブリックプレビュー中です。
もう1つの選択肢は、Windows Visual Studio IDEのフル機能とリモート側のWindows VMを使用するものです。このオプションはプライベートプレビュー段階です。Visual Studioの複雑さとWindowsデスクトップアプリケーションのデバッグの問題から、より野心的な選択肢となっています。
これらはリモートマシン上で実行されますが、App Sharing(またはApp Casting)と呼ばれるサービスを介してローカルに表示されます。この機能は、リモート開発者がエディター内で共同作業できるようにするサービスであるLive Shareの次期リリースの一部です。
独自のデスクトップをリモート環境として設定することもできます。これはセルフホスティングと呼ばれ、無料ですが、独自の環境に接続するにはAzure課金アカウントが必要です。
Visual Studio Online は、VS Code リモート開発拡張機能と呼ばれる機能を使用します。VS Code の UI はローカルで実行されますが、一部の拡張機能を含む開発サービスはリモートで実行されます。Windows では、この機能を使用することで、Windows Subsystem for Linux を使って開発しながら、Windows 側では VS Code を使用できます。これは VS Online でも同様に動作します。主な要件は、インターネットにアクセス可能な Git リポジトリです。リモート VM にファイルをドラッグ&ドロップでアップロードし、自動または事前設定されたポート転送によって Web アプリケーションを実行・デバッグできるため、localhost 上のアプリケーションにアクセスできます。
ウェブアプリケーションを実行し、テストとデバッグのためにローカルホストに接続することができます。
重要なのは、リモート環境をどのように構成するかです。このサービスは、MicrosoftのOryxビルドシステムと、使用されている主要なプログラミング言語に基づくVS Code拡張機能検出機能を用いてリポジトリ内のコードを検査することで要件を解決しようとしますが、devcontainer.jsonファイルを使用して、必要なVS Code拡張機能と環境作成後に実行するコマンドのリストを指定することもできます。これには、リポジトリからシェルスクリプトを実行することも含まれます。
最も柔軟なアプローチはDockerコンテナを指定することですが、現時点では試験的な機能フラグが必要です。Microsoftは、こちらに豊富なサンプルコンテナを用意しています。開発環境を正しく指定するには多少の手間がかかりますが、一度指定すれば完全に移植可能となり、他の開発者が使用したり、将来プロジェクトに戻らなければならない場合でもすぐに使用できるようになります。
このアプローチには、VS Online を使用するかどうかに関係なく、開発者が複数のプロジェクト タイプのサポートをマシンにロードする必要がないという利点もあります。これは、多くの異なるプラットフォームで作業する必要がある場合に特に困難になる可能性があります。
オンライン環境では複数の同時ログインはサポートされていません。ただし、Live Share機能を使用すれば、他のユーザーと一緒にコードを編集できます。
課金は「環境ユニット」という分かりにくいシステムに基づいて計算されます。アクティブなスタンダードシステムは1時間あたり125ユニット、プレミアムシステムは242ユニットを消費します。非アクティブな環境は1時間あたり2ユニットかかります。1ユニットあたりのコストは0.00269ポンドです。Microsoftは、フルタイムの開発者が1か月あたり100時間使用し、コストは37.46ポンドと見積もっていますが、会議やトレーニングに費やす時間によっては、この金額は実際よりも低くなる可能性があります。
VS Online を使用するのではなく、リモート デスクトップ テクノロジを使用して開発者 VM に接続してみませんか?
この方法も有効ですが、VS Online のアプローチを優先する理由がいくつかあります。まず、環境を事前に構成またはコンテナ化することで、単一の VM を管理するのではなく、必要に応じてインスタンスを作成および破棄できるようになります。次に、ローカルで実行されるエディターに入力するとレイテンシが少なくなり、特に低速接続時において優れたエクスペリエンスが得られます。
クリックして拡大
Visual Studio Online は魅力的だけど、Microsoft のエコシステムには手を出したくないという方は、Gitpod という代替案を検討する価値があるかもしれません。設定可能な Docker イメージをベースにしたワークスペースが提供され、Eclipse Foundation のプロジェクトである Eclipse Theia エディターを使用できます。Eclipse Theia エディターは Visual Studio Code によく似ており、多くの拡張機能をサポートしています。
「他の『オープンソース』プロジェクトとは異なり、オープンソース財団でホストされているプロジェクトは、多様なコミュニティの利益に反する単一ベンダーの決定から保護されています」とホームページには記載されています。
Gitpod ワークスペースは Google Kubernetes サービスでホストされています。Gitpod はオープンソース開発者向けには月間 100 時間まで無料でご利用いただけます。非商用利用の場合は 100 時間まで 9 ドル、無制限利用の場合は 39 ドルです。
MicrosoftのVS Onlineサービスは期待できそうですが、プレビュー版の簡単なテストではいくつか不具合があり、Igniteでもすべてのデモがスムーズに動作したわけではありませんでした。しかし、このサービス、Gitpodなどの代替サービス、あるいはセルフホスト型のサービスなど、概念的には理にかなっています。®