約1年前にMicrosoftは、Windows Server Containers in Azure Kubernetes Service (AKS)のプレビュー版をローンチした。そして今回、プライベートクラスタとマネージドIDを含んだWindows Server Containers in AKSを一般向けにリリースすると発表した。
Windows Server ContainersがGAになったことで、ユーザ企業は、自らのWindowsアプリケーションをAzureのマネージドKubernetesサービス上で動作するように、リフト・アンド・シフトできるようになる。加えて、これら企業の開発者には、Azure PortalやCLI(Command Line Interface)といった標準ツールによるAKS内のWindowsノードプールの生成、アップグレード、スケールアップが可能になる — クラスタの状態管理は、Azureが自動的に行ってくれる。
さらに、WindowsアプリケーションとLinuxアプリケーションを、同じひとつのAKSクラスタ上で並行運用することも可能である — これによって企業は、自社のビジネスプロセス用のアプリケーションを、これまでより簡単にバンドルできるようになる。MicrosoftでAzure Compute部門を担当するバイスプレジデントのBrendan Burns氏は、今回のGAリリースについて、自身のブログ記事に次のように書いている。
ひとつのAKSクラスタ上でWindowsアプリケーションとLinuxアプリケーションを並べて運用することで、より広いアプリケーションセットの運用プロセスを現代化できると同時に、アプリケーション環境の密度の向上(と、それによるコスト低減)が可能になります。
Microsoft Azure MVPでDocker CaptainのElton Stoneman氏は、InfoQに次のように話している。
AKSでWindowsノードがGAに達したのは素晴らしいことです — すべてのアプリをクラウド上のコンテナへ移行する道程において、本当の意味でのマイルストンになります。KubernetesではWindowsアプリでもLinuxアプリでも、同じアプリケーションマニフェスト言語を使用しますから、すべてのアプリケーション間に一貫性のレイヤが生まれます。古い.NET Frameworkのアプリも、.NET CoreやGo、あるいはNode.jsで記述された新しいアプリも、すべて同じアーティファクト — DockerfileとKubernetesマニフェスト — で構築と実行が可能になるのです。すべてのアプリを、GitHubアクションを使って開発し、デプロイし、Azure Container Registryにイメージをパブリッシュするという、同じシンプルなワークフローでAKSにデプロイすることができます。
KubernetsサービスでWindows Containersをサポートするパブリッククラウドベンダは、Microsoftだけではない。例えばAmazonは、昨年10月にElastic Kubernetes Service (EKS)でのWindows Continerの提供を発表している。ただし、いくつかの制限付きだ。Googleも今年初め、プレビュー版としてGoogle Kubernetes Engine (GKE)にWindows Containersのサポートを導入しており、先日その一般供与を開始した。
Stoneman氏は次のようにも述べている。
この数か月間、AKSのWindowsノードをプレビュー版で使用するユーザと作業していましたが、信頼性も高く、使いやすいものでした。自社のWindowsアプリを、最初はコードを変更せず、そのままの形でコンテナに移行して、段階的に分解して分散システムに移行する、というロードマップを描いている企業はたくさんあります。AKSでWindowsノードがGAになったことで、これがAzureで完全にサポートされるパスになりました。最初は.NET FrameworkのモノリスをWindows Podにシフトして、徐々にその機能をLinux Podで動作するように切り出して、同じAKSクラスタ上で運用すればよいのです。
Windows Containers in AKSのサポートに合わせて、Microsoftは、プライベートクラスタとマネージドIDのサポートも発表した。これらは開発者に対して、より多くのセキュリティ能力を提供すると同時に、コンプライアンス要件の充足を容易にすることを目的とするものだ。プライベートクラスタは、クローズネットワーク — インターネットに接続されていないネットワーク内で、マネージドKubernetesを利用可能にするものだ。プライベートクラスタを使えば、金融や医療など、高度に規制された産業のセキュリティ要件を満足することが可能になる。
プライベートクラスタのサポートに続いて、AKSではマネージドIDがサポートされ、Azure Monitor for ContainersやAzure Policyなど、他のAzureサービスとのセキュアなインタラクションが可能になった。さらには、開発者が自身でサービスプリンシパルを管理したり、認証情報を頻繁にローテーションする必要もなくなった。
最後に、Burns氏は自身のブログ記事に、AKSとAzure Advisorのより緊密な統合に向けた開発の継続と、AKSエクスペリエンスに業界のベストプラクティスを取り入れるという目標について記している。さらにMicrosoftは、開発者へのアドバイス提供手段としてKubernetes用のVS Codeエクステンションにユーザ学習機能を取り入れることと、セキュリティ上のアドバイスをAzure Security Centerに統合することを約束している。学習手段とフレームワーク、そしてツールを提供することにより、開発者、運用担当者、アーキテクトがAzure上でKubernetesの運用を実現できるようになる、とBurns氏は述べている。