OSS愛あふれる「Microsoft Connect」レポート 第4回
米国Connectをコピーして翌日開催した「Connect Japan」基調講演
「あらゆる開発者のためのAzure」を具現化、Visual StudioとAKSの統合
2017年11月22日 12時30分更新
日本マイクロソフトは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ポータル上で地図をクリックするだけで)レプリケーションできる。「最寄りのレジストリからコンテナーイメージをロードすることで、低遅延、低ネットワークコストになる」(廣瀬氏)。
次に、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のマニフェストでコンテナーホストにデプロイする様子を紹介した。
尚、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クラスターに接続する仕組み。これによって、AKSで稼働しているコンテナー環境に、Visual Studioから直接デバッグ、ステップ実行ができる。「Visual Studio Codeにも対応しており、MacやLinux環境からでも、またローカルにKubernetes環境が全く無くても、コンテナーに直接デバッグやステップ実行ができる」(廣瀬氏)。
この連載の記事
-
第5回
クラウド
誰がケネディを殺したのか――公開された暗殺文書をマイクロソフトのAIで解読 -
第3回
クラウド
MS、Azure上で作成した機械学習モデルをiOS端末へ展開可能に -
第2回
クラウド
マイクロソフト、OSSのNoSQLデータベース「Cassandra」のAPIをサポート -
第1回
クラウド
マイクロソフトが「MariaDB Foundation」にプラチナメンバーとして参画 -
クラウド
OSS愛あふれる「Microsoft Connect」レポート - この連載の一覧へ