このページの本文へ

OSS愛あふれる「Microsoft Connect」レポート 第4回

米国Connectをコピーして翌日開催した「Connect Japan」基調講演

「あらゆる開発者のためのAzure」を具現化、Visual StudioとAKSの統合

2017年11月22日 12時30分更新

文● 羽野三千世/TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

 日本マイクロソフトは11月17日、米国ニューヨークで11月15日(日本時間では16日早朝)に開幕した開発者向けイベント「Connect 2017」の内容を日本向けに紹介するイベント「Connect Japan 2017」を開催した。

 Connect 2017では、マイクロソフトが提供するIDE(統合開発環境)Visual Studioと、同社がオープンソース化したコードエディターVisual Studio Codeの機能拡張が多数発表された。この機能強化の方向性を示すビジョンとして、同社は「Any Developer. Any App. Any Platform」を掲げている。

 “Any Developer. Any App. Any Platform”のビジョンを具現化した例は、Azureのコンテナー関連サービスとVisual Studio/Visual Studio Codeの統合に見ることができる。マイクロソフトは10月にKubernetesのマネージドサービス「Azure Container Service(AKS)」を発表した。AKSとVisual Studio/Visual Studio Codeを組み合わせることで、様々な言語で開発したアプリケーションを一気通貫でDockerイメージ化し、AKSを使ったAzure上のKubertenesクラスターに簡単に展開できる。

 Connect Japan 2017のキーノートに登壇した日本マイクロソフトの廣瀬一海氏は、Visual Studioで作成したDockerイメージを、コンテナーレジストリサービス「Azure Container Registry」に登録し、AKSで構築したKubernetesクラスターにデプロイするデモを披露した。

日本マイクロソフト マイクロソフトクラウドプラットフォーム技術部 テクノロジースペシャリストの廣瀬一海氏

 廣瀬氏は、「コンテナーは、.NET Coreであったり、RubyやPythonであったり、好きな言語を組み合わせて1つのアプリケーションを動かすことができるもの」と説明。Visual Studio/Visual Studio Codeでは、様々な言語で開発したコードをビルドするタイミングでDockerイメージまで作成することができる。「従来は、コードを書き、DockerファイルをビルドしてDockerイメージをつくっていた。Visual Studioであれば一気通貫でDockerイメージの作成まで完了する」(廣瀬氏)。

 さらに、Visual Studio/Visual Studio Codeで作成したDockerイメージは、「発行」するだけでAzureのコンテナーレジストリ「Azure Container Registry」に送り込むことができる。デモでは、Windows上のVisual Studioで開発したASP.NET Core 2.0のWebアプリをVisual Studio上でDockerイメージ化し、Azure Container RegistryにLinuxベースのDockerイメージとして登録する様子を紹介した。Azure Container Registryでは、登録したコンテナーイメージをAzureの任意のリージョンに(Azureポータル上で地図をクリックするだけで)レプリケーションできる。「最寄りのレジストリからコンテナーイメージをロードすることで、低遅延、低ネットワークコストになる」(廣瀬氏)。

1.Visual Studio/Visual Studio Codeではビルド時にDockerイメージまで作成できる

2.Visual Studio/Visual Studio CodeからDockerイメージをAzure Container Registryに登録

 次に、AKS。「Azureでは従来からKubernetesをサポートしていたが、AKSはKubernetesをマネージドで、よりAzureに統合した形で提供する」。AKSは、Azureにホストされるコントロールプレーン(Kubernetes Master)と、Kubernetesが管理するコンテナーホストのクラスターを構築・運用するサービス。Kubernetesマスターの利用料金は無料で、ユーザーはコンテナーホストのクラスターに対する仮想マシンの料金のみを支払えばよい。AKSは、今後、AzureだけでなくオンプレミスのAzure Stackでも利用可能になる予定だ。

 デモでは、AzureポータルでAKSクラスターを作成。名前、Kubernetesのバージョンなどを設定し、サービスプリンシパルID(AKSからAzureのVMを起動したりする際に必要)を発行、コンテナーホストのVMのサイズを指定する。「作成後は、AKSをAPIでコントロールするので、AKS側で設定することはほとんどない」と廣瀬氏。Azureポータル上にあるAzure CLIやローカルのコマンドプロンプトからAPIでAKSにアクセスし、Kubernetesのコントロールコマンド(kubectl)を使って操作できる。

 廣瀬氏は、Azure CLIでAKSへアクセスするAPIキーを取得後、ローカルのコマンドプロンプトからAKSへ接続。先ほどVisual Studioで作成してAzure Container Registryに登録したDockerイメージをコマンドプロンプトから操作し、Kubernetesのマニフェストでコンテナーホストにデプロイする様子を紹介した。

3.AzureポータルでAKSクラスターを作成

4.Azureポータル上にあるAzure CLIやローカルのコマンドプロンプトからAPIでAKSにアクセスし、Kubernetesのコントロールコマンド(kubectl)を使って操作できる

 尚、11月15日のConnect 2017では、Visual Studio/Visual Studio Codeの新機能として、「Visual Studio Connected Environment for AKS」が発表された。廣瀬氏のデモのように、Visual Studio上でDockerイメージを作成してAzure Container Registryへ登録するまでは一気通貫であり、AKSからAzure Container Registryのイメージを呼び出すことは簡単にできる。一方で、コンテナー化したコードにバグがあった場合は、バグ修正したコードを再度イメージ化してレジストリに再度プッシュする必要がある。

Visual Studio Connected Environment for AKSは、Visual Studioから直接AKSクラスターに接続する仕組み

 Visual Studio Connected Environment for AKSは、Visual Studioから直接AKSクラスターに接続する仕組み。これによって、AKSで稼働しているコンテナー環境に、Visual Studioから直接デバッグ、ステップ実行ができる。「Visual Studio Codeにも対応しており、MacやLinux環境からでも、またローカルにKubernetes環境が全く無くても、コンテナーに直接デバッグやステップ実行ができる」(廣瀬氏)。

■関連サイト

カテゴリートップへ

この連載の記事
  • 角川アスキー総合研究所
  • アスキーカード