Azure Dev Spaces は、デモでは素晴らしく見えるものの、実際の使用時にイライラさせられる可能性があるテクノロジの 1 つです。
今年の Build カンファレンスで披露され、その後プライベート プレビューとしてリリースされたこのおもちゃは、今週パブリック プレビューとしてリリースされました。The Register は、リアルタイムのコンテナー コードのデバッグを楽しむために、このおもちゃを手に入れたいと考えていました。
正直に言うと、うまくいっていません。これはパブリックプレビューですが、本番環境で安定稼働させるにはかなりの作業が必要です。
開発スペースの魅力
Azure Dev Spacesは、開発者に対し、コンテナ開発においてMicrosoftのAzure Kubernetes Service(AKS)をターゲットにすべきだと、正々堂々と説得することを目的としています。レドモンド氏は、開発者が使い慣れたVisual Studio環境(他の環境も利用可能)と使い慣れたツールで最初の一歩を踏み出せば、後戻りすることはなくなるだろうと考えています。
Intrepid Reg のレポーターが Azure Dev Spaces でブレークポイント ファンダンゴを披露
理論上は、選択した環境( El Regの場合はVisual Studio 2017 )でDev Spacesを有効にすると、コードがクラウドに同期されます。その後、ビルドされ、AKSにコンテナとしてデプロイされます。優れた点は、ローカルで実行しているかのようにコードを編集・デバッグできるため、ローカルワークステーションにDockerやKubernetesのコンポーネントを大量にインストールする必要がないことです。
このコンセプトは確かに魅力的で、開発者が直面する一般的なワークフローの問題、特にエンドツーエンドテストの分野における問題に対処します。The Registerでは時々コードモンキーをするのが好きなので、このツールを試してみることにしました。
Visual Studioに「ああ、ダメだ」と入力する
最初からいくつかの制限事項に気づくでしょう。Kubernetes 1.9.6以降が必要で、クラスターがAzureの限定されたリージョンのいずれかで実行されていることを確認する必要があります。これらの設定に不安を感じる場合は、今すぐ読むのをやめた方が良いでしょう。
Microsoftは役立つガイドを提供していますが、そこには誤りが散見されます。これはおそらく、現在の機能セットに合わない以前のバージョンのAKS向けに書かれたものと思われるためでしょう。これは、レドモンドが最近採用している急速なリリースサイクルによるものです。
80 年代にコンピュータ雑誌の BASIC リストを入力し、避けられない印刷の誤字のためにデバッグすることに長年を費やしてきた謙虚なEl Regハッカーである私にとって、これはあまり心配するほどのことではなく、むしろ学習の機会なのです。
正しく設定すれば、少なくともVisual Studio 2017では、統合は驚くほどシームレスです。Azure Dev Spacesへのビルドを指定すると、開発者が事前に作成したクラスターを選択できるダイアログが表示され、あっという間にプロジェクトにコンテナ対応に必要なスキャフォールディングが施されます。
少なくとも、理論上はそうなります。プロセスは遅いのです。本当に、本当に遅いのです。そして、他の作業を進めるために中断しようとすると、問題が発生する可能性があります。その結果、Azure Dev Spaces によって行われた作業を復元するよりも、最後に確認された適切なチェックポイントまでロールバックする方が簡単な状態にプロジェクトが陥ってしまうのです。
忍耐は美徳です。できるならそれを身につけましょう
忍耐はそれ自体が報われるものであり、Azure Dev Spaces が作業を完了すると、コンテナー内でコードが起動し、プロジェクトをほぼ通常どおり実行できるようになります。
しかし、やはり遅いです。最初のビルドとデプロイは、私たちが構築した「Hello World!」のような例でさえ、コーヒーブレイクの時間です。そして、そのビルドとデプロイが中断されたら…それはクラスターにとって良い知らせではありません。最初のクラスターはクラッシュして燃え尽きてしまい(というか「障害状態のまま放置」され)、復旧を試み続けるよりも、削除して再作成するしかありませんでした。
繰り返しになりますが、忍耐が鍵となります。Azure Dev Spaces は、ローカルで実行する場合よりもはるかに長い時間放置しても、宣伝どおりに動作します。コンテナー内で実行されているコードはステップ実行してデバッグできるため、エンドツーエンドのテストに非常に役立ちます。ただし、パフォーマンスは「氷河のように遅い」としか言いようがありません。
Balan Subramanian 氏の Azure DevEx 製品チームは、「あらゆる開発者にとって Azure 上で快適なエクスペリエンスを実現する」という使命を負っています。しかし残念ながら、Dev Spaces のエクスペリエンスは、この開発者にとって満足できるものではありませんでした。動作が遅く、やや不安定で、適切な設定が必要なのです。
しかし、これはまだプレビュー段階の技術であり、本格的に普及するまでには長い道のりが残されています。視覚的なデバッグに慣れ、Visual Studio の世界に満足している開発者にとって、Azure Dev Spaces は、コンテナ化という馴染みのない環境を包み込む、まさに馴染みのあるラッパーとなるでしょう。ただ、まだその段階ではないのです。®
11月にロンドンで開催されるServerless Computingでは、サーバーレスとFunction as Service(FaaS)の最新動向を紹介し、ビジネスへの活用方法を解説します。詳細とチケット情報は、こちらのウェブサイトをご覧ください。