Azure Dev Spacesのパブリック プレビューを発表 (Announcing the public preview of Azure Dev Spaces)


本日、Azure Dev Spacesのパブリック プレビューを発表できて、興奮しています。Azure Dev Spacesは、常にクラウド、自分のチームとのつながりを保ちながら、自分のアプリケーションに取り組むことができる、Azure Kubernetes Service (AKS) 向けのクラウド ネイティブ開発エクスペリエンスです。我々は、過去1年にわたって、異なる言語、プラットフォームで作業し、Kubernetesを検討している多数の開発者と話してきました。彼らは、Kubernetesが提供する、インフラストラクチャの管理やオーケストレーションを行う必要なしに、コンテナーとマイクロサービスを使ってクラウド ネイティブ アプリケーションを構築する機会に興奮しています。また、我々は、自社の既存アプリケーションをKubernetesに移行し、それから、アプリケーション機能をマイクロサービスに抽出することで、そのアプリケーションを漸進的にモダナイゼーションしているエンタープライズ チームを、目にしています。AKSは、アプリケーション開発チームが、クラウド内のKubernetesを活用するのをより簡単にし、Azure Dev Spacesは、AKS上でのアプリケーション構築のための、使い慣れていながらも強力な開発者ワークフローを可能にします。

コンテナー/マイクロサービス パターンによって、各マイクロサービスを独立して管理、アップデートできる、スケーラブルで持続的なクラウド スケールのアプリケーションを構築できるようになります。開発チームにとって、このパターンの主要な利点は、開発が並列化されることです。しかし、マイクロサービスは、ワークフローに新たな課題を持ち込みます。チームで作業している開発者 (ほとんどの開発者) が持つようになった検討事項は、「自分のサービスが、同時に変更されつつある他のサービスに依存している場合、どのようにして自分のサービスで作業するか?」、「チームの全メンバーが変更をコミットする準備ができるまでの間、全メンバーが作業できるベースラインを、どのようにして確立するか?」、「自分のマイクロサービスは、アプリケーションが必要とする特定の機能に対処するだけという設計なので、自分のマイクロサービスへのあらゆる変更を、どのようにしてエンド ツー エンドでテストするか?」というものです。Azure Dev Spacesは、こういった課題を解決し、好みのツールを使ってAKS上でクラウド ネイティブ アプリケーションを構築するのを助ける、新サービスです。

Azure Dev Spacesを使ったKubernetesの作業の開始

Azure Dev Spacesは、コンテナー開発の最初の一歩を踏み出すのを簡単にします。自分のコードをビルドしコンテナー内で実行するために必要となる、Dockerfileなどの成果物をスキャフォールドするために、好みのコード エディターを使って、Azure Dev Spacesを使えます。これによって、自分のアプリケーションを迅速にコンテナー化できるようになります。自分のコードがクラウドに同期され、そこで、自分のコードがビルドされ、コンテナーとしてAKSにデプロイされます。あたかもこのコードが自分のマシン上でローカルに実行されているかのように、このコードを編集、デバッグできるようになります。自分のローカル マシンにDockerやKubernetesのツールをインストールする必要はなく、DockerfileやHelmチャートといった、DockerやKubernetesの概念について学ぶ必要もありません。しかし、こういった驚くべきテクノロジを深く掘り下げる準備ができた時には、その旅を始めるために、適切な成果物がすべて提供されています。

Azure Dev Spacesを活用するのは、簡単です。Dev Spaceを選択し、その中で自分のアプリケーションを起動するだけです。数秒で、Azure上のAKS内で自分のアプリケーションが実行されます。

Azure Dev Spaces

Dev Space内で自分のアプリケーションが実行されているので、それを変更し、すべてAzure上でそれをデバッグできます。

Azure Dev Spaces

Azure Dev Spacesを使った、自分のアプリケーション向けのマイクロサービスとコンテナーの活用

自分が作業しているアプリケーションが多数のマイクロサービスを持っている際に、Azure Dev Spacesは真に輝きます。自分のアプリケーションがいくつかのマイクロサービスを使っていると、並行開発の生産性の恩恵を受けるのが、ますます難しくなってきます。自分が、マイクロサービスで構成されているアプリケーションに取り組んでいるチームに入ったばかりの開発者だと、想像してみてください。あなたは、どのサービス、または、どの一連のサービスに取り組む必要があるかを知っていますが、アプリケーションの異なるサービスがどのようにして互いに呼び出しているかを知りません。また、あなたは、自分のコードをコミットし、自分のチームの統合テスト環境にそれをデプロイした時に、自分の変更とともにアプリケーション全体が動作し続けるという、優れたレベルの信頼を求めています。通常、自分のサービスが他のサービスに対して持っている依存関係をモックしますが、自分が変更の任務を負っているサービスを呼び出しているサービスに、どのようにして対処すればいいのでしょうか? そして、たとえ自分のマシン上でローカルにすべてのアップストリーム、ダウンストリームの依存関係を再現できたとしても、特にそれらが異なる言語で書かれており、ローカルにインストールしなければならないランタイムを必要としている場合には、それらを設定するためだけにかなりの時間を費やすことになります。結局、目の前の作業に取り組むために使いたい多くの時間を失うことになります。そして、自分のマシン上に、片付ける必要のある散らかったものが残されます。

我々は、特にこういった懸念に対処し、クラウド アプリケーション構築時であっても、Visual StudioやVisual Studio Codeで期待される生産性の高いエクスペリエンスを得られるようにするために、Azure Dev Spacesを構築しました。Azure Dev Spacesが有効化されたAKSクラスターに接続されたIDEやエディターを使って、常にアプリケーション全体の文脈で動作しながら、自分のサービスを編集、デバッグできます。クラスター内に自分独自のスペースを作成し、そこで作業します。あらゆるスペースは、自分のアプリケーションで構成されているパブリック エンドポイントに対応する、固有のURLエンドポイントを持ちます。それから、自分が修正しようとしているサービス、または一連のサービスをクローンし、自分のプライベート スペースでそれらを「up」できます。開発の一環として、自分のサービスだけをデバッグしたいことが多いでしょう。あたかも自分のサービスがローカルで実行されているかのように、単にブレークポイントを設定し、自分のサービスをデバッグできます。自分のサービスに取り組んでいる際、テスト リクエストでアプリケーション全体向けの特別なエンドポイントにアクセスできます。Azure Dev Spacesは、リクエストを、自分のアプリケーション内の一連の既定のマイクロサービスを通して賢くルーティングします。自分のスペース内で「up」したサービスに対しては、Azure Dev Spacesは、テスト リクエストで、あらゆるアップストリーム呼び出しをこれらのマイクロサービスにルーティングします。自分のスペース内で、取り組んでいる複数のサービスに対してブレークポイントを設定し、複数のサービスとアプリケーション全体にわたってデバッグすることすらできます。

次のビデオは、Webfrontendと呼ばれる別のサービスによって呼び出される、MyWebApiと呼ばれるサービスに取り組む方法を示しています。自分独自のスペースでMyWebApiに取り組むことができますが、Webfrontendをモックしたり、自分のスペースにWebfrontendをコピーする必要なしに、エンド ツー エンドでMyWebApiをテストすることもできます。我々のGitHubリポジトリに、ここで使われているサンプルがあります。これは単純な例ですが、数十、数百のマイクロサービスを持つアプリケーション内でマイクロサービスのサブセットに取り組み、アップストリーム、ダウンストリームのマイクロサービスが絶えず変更される際に、同じ機能を活用できます。

Azure Dev Spaces

Azure Dev Spaces、Azure Dev Spacesと連携するための開発セットアップの構成、自分の開発ワークフローの一環でのAzure Dev Spacesの使用に関するさらなる詳細については、クイックスタートとチュートリアルをご覧ください。

次は何か

我々は、5月のBuildでAzure Dev Spacesのプライベート プレビューを発表しました。今回、Azure Dev Spacesを誰もが利用可能にすることができて、興奮しています。作業を開始するには、https://aka.ms/get-azdsにアクセスしてください。

現在、Azure Dev Spaces内では、Linux上の.NET CoreとNode.jsで開発できます。Visual Studio、Visual Studio Codeから独立してマイクロサービスを編集、デバッグすることに加えて、お客様が、統合テストといった他のシナリオや自社のGitHubフローのサポートのために、Azure Dev Spacesを使い始めていることを目にして、我々は興奮しています。我々は、今後数か月のうちに、追加の言語やこういったシナリオのサポートを発表する予定です。我々の目標は、クラウド ネイティブ開発をますます掘り下げる皆さんを適切なエクスペリエンスでサポートし、クラウド ネイティブ開発で迅速な生産性を可能にすることです。クラウド ネイティブ開発で、他の課題をお持ちでしょうか? Azure Dev Spacesに関するフィードバックがありますか? コメントで我々にお知らせいただくか、GitHubで我々のエンジニアリング チームとつながってください。

Balan Subramanian

Balan Subramanian (Azure Developer Experience)
@balansubr

Balanは、すべての種類の開発者向けにAzure上での快適なエクスペリエンスを作成する任務を負っている、Azure DevEx (開発者エクスペリエンス) 製品チームを主導しています。このチームは、Azureサービス向けのツール、Azure向けのSDKやCLI、OSS統合、Azure Container Registry、Azure Lab Services、Azure Redis Cacheといったサービスを構築、管理しています。彼は、構築しているアプリ、DevOpsの両方で開発者がクラウド ネイティブに向かうのを助けることに、特に興味を持っています。Balanは、Microsoftに来る前は、Heroku、AWSで開発者向けの新サービスを立ち上げました。


2 thoughts on “Azure Dev Spacesのパブリック プレビューを発表 (Announcing the public preview of Azure Dev Spaces)

Leave a comment