OSSプロジェクト「Azure VNet for Containers」を解説
コンテナーや光通信技術をオープンソース化、Azureのネットワーク
2017年04月06日 07時00分更新
今やマイクロソフトはOSS開発企業になった。Apache Software Foundation、Linux Foundation、R Consortium、Node.js FoundationといったOSSコミュニティに参画してコードを提供しているほか、Visual Studio Code、.NET、ASP.NETなどをオープンソースとしてGitHub上に公開し、マイクロソフトと非マイクロソフトの開発者が一緒になって新機能開発や改善を行っている。
コンテナーのOSSプロジェクトへの貢献も積極的だ。マイクロソフトのAzure公式ブログ(米国時間4月3日の投稿)で、Azure仮想ネットワーク(Azure VNet)とOSSのコンテナーオーケストレーターを接続するGitHubのOSSプロジェクト「Azure VNet for Containers」が解説されていたので、内容を紹介したい。
Azureネットワークでコンテナーをネイティブに利用
Azure VNet for Containersは、Azureで動作しているコンテナーに最適なネットワーク環境を提供することを目的としたOSSプロジェクトだ。コードはGO言語で記述され、LinuxとWindowsの両方に対応する。
Azureには、コンテナー化されたアプリケーションを実行するための仮想マシン(VM)を簡単に構築、管理できるサービスとして「Azure Container Service(ACS)」が用意されているが、Azure VNet for ContainersはACSにプラグインして利用することもできるし、個々の仮想マシン(VM)に手動で展開することもできる。
Azure VNet for Containersを実装すると、コンテナーをAzure VNetに接続した際に、VNet内のコンテナー、VM、その他リソースが直接接続可能になる。また、ネットワークセキュリティグループ、ルートテーブル、ロードバランサー、オンプレミス接続などのAzure VNetの機能がコンテナーで利用可能になる。
Azure VNet for Containersは、(1)コンテナーのネットワークインターフェースを提供するネットワークプラグイン、(2)VNetからのIPアドレスを管理するIPAMプラグインの2つのプラグインで構成されている。
コンテナー用の一般的なプラグインモデルには、KubernetesやApache Mesosが採用する「Container Network Interface(CNI)モデル」、Dockerなどが採用する「Container Network Model(CNM)モデル」の2つがあるが、Azure VNet for Containersのネットワークプラグインは、両方のモデルが実装されている。また、ACSエンジン(Azure VNet for Containersに実装されたコンテナージェネレーター。OSSとして公開されている)と直接統合されるように設計されている。これにより、Azure VNet for Containersを使うことで、Azureネットワークサービスは主要なコンテナプラットフォームをネイティブに利用できるようになる。
スイッチ仕様や光通信技術のオープン化
同ブログではほかにも、Open Compute Project(OCP)で仕様を公開しているL3スイッチソフトウェア「SONiC(Software for Open Networking in the Cloud)」や、Azureのネットワーク仮想アプライアンス(NVA)でのOSS活用、光通信技術のオープン化など、AzureネットワークサービスのOSSへの取り組みが紹介されていた。
SONiCは、コンテナー用のDocker、Key-Valueデータベース用のRadis、BGPルーティングソフトウェアQuagga、レイヤ2ネットワーク機器アドバタイズプロトコルデーモンであるLLDPDなど、既存のOSSテクノロジーをベースに開発されており、Ansibleを使ってデプロイメントできる。マイクロソフトがブログで強調したのは、「OSSプロジェクトで構築したSONiCの仕様をコミュニティに還元ことで、ネットワーク分野のOSSの進歩に好循環をもたらした」という点だ。
また、Azureのネットワーク仮想アプライアンス(NVA)は、WAF、ファイアウォール、ゲートウェイやルーター、アプリケーション配信コントローラー、IDS/IPS、WANオプティマイザー、SD-WANソリューションなどの機能をVMにソフトウェア実装するもの。Azure Marketplace経由でAzure VNetに展開できる。
AzureのNVAの90%以上はLinuxまたはFreeBSDをベースにしており、NGINX、pfSenseなどOSSを含んでいる。マイクロソフトも自社サービス「Azure Application Gateway」のWAFを、オープンソースの「OWASP ModSecurityコアルールセット(CRS)」をNVAでVMに実装する形で構築している。
最後に、光通信技術のオープン化についても言及があった。マイクロソフトは、Azureのデータセンター間ネットワークや、Azureデータセンターと企業・ビルなどの間を接続する都市部ネットワークに自社開発の光通信技術を取り入れている。
マイクロソフトは、「光通信への開発投資が、ユーザーに高速なサービスを提供すると同時に、ネットワーク業界全体が恩恵を受けるものにする」として、この光通信技術のシステムについてもオープン化した。通信技術を実装するためのビルディングブロックは誰でも使えるようになっている。