日本マイクロソフトが5月24~25日に開催した開発者向けカンファレンス「de:code 2016」では、過去最大の150を超えるセッションが行われた。本稿ではその中から、日本マイクロソフトの新井真一郎氏と、レッドハットの大溝桂氏の両名で行われた「Microsoft Loves Red Hat ~AzureとOpenShiftが生み出すフルオープンなPaaS~」セッションの様子を紹介しよう。
レッドハット OpenShift ソリューションアーキテクト 大溝桂氏
レッドハットの大溝氏は、OpenShiftのソリューションアーキテクトだ。もともと外資系ベンダーでJavaやC言語を使用した業務システムの開発や運用支援を行っており、DevもOpsも経験があるという。新井氏は日本マイクロソフトでOSSエバンジェリストの肩書きを持ち、同社のOSS推進のまとめ役だ。
Red HatとMicrosoftは2015年11月に提携し、AzureでのRed Hat Enterprise Linux(RHEL)をネイティブサポートした。Azure上でRHELが利用できるメリットとして、(1)数分でRHELが動作可能になる「スピード」、(2)RHELが(構成次第で)1時間あたり6.12円で利用でき課金は1分単位という「コスト」、そして、(3)好きな時に好きなだけ構成を増減できる「スケール」の3点を挙げる。
Azureであることの利点に関しては「信頼できるクラウド」という点を強調。国内の東西リージョンを利用することで高い可用性が得られるだけでなく、日本マイクロソフトとレッドハットの両社からRHELのサポートが受けられる。
Azure上でのRHELの構築方法には3パターンあり、1つはAzure Market Placeから構築済みのイメージをデプロイする方法、もう1つはARM(Azure Resource Manager)からコマンドラインでのデプロイを自動化する方法、3つ目はすでにオンプレミスで動いているイメージをAzure上に持ってくるという方法だ。
OpenShiftがDevOpsに効く理由
日本マイクロソフト クラウド&エンタープライズビジネス本部 OSSエバンジェリスト 新井真一郎氏
昨年11月の2社の提携は、RHELだけでなく、OpenShiftなどRed Hatのすべての製品をAzureでサポートするという広範囲な内容だった。OpenShiftがAzure上で動くことのメリットについて、大溝氏は、アプリ開発者側にとってはPHPやNode.jsなどをサポートしていること、インフラエンジニアとしては高信頼かつ柔軟なクラウド基盤上でDockerベースのPaaSが利用できる点を挙げていた。
OpenShiftは、DevOpsの実装に大変役立つと大溝氏は説明する。コンテナ化されていない開発と運用を考えた場合、インフラ担当者はインフラだけでなくアプリケーションが必要とする設定まで考慮しなければならないので、アプリケーション担当者とインフラ担当者の役割分担があいまいになる。これが、Dockerを使うことで、アプリケーション担当者はアプリとライブラリに集中して開発ができるようになり、一方のインフラ担当者はOSとインフラに集中できるようになる。両者の役割分担を明確にできるようになったわけだ。
また、コンテナのクラスタ管理を行うKubernetesについても説明。Kubernetesはデプロイ管理、Podの管理・監視、スケーリングを行うことでコンテナのクラスタ管理を行うOSSであり、もともとはGoogleが開発していた。
OpenShiftはDockerのポータビリティとKubernetesのコンテナ管理をまとめたもので、これによってPaaS環境を円滑に運用できるという。DevOpsのDev側、継続的インテグレーションの観点では、開発者が変更をコミットすることで自動的にテスト用ビルド、テスト用コンテナを作成。これをテスト環境に自動デプロイして、テストを行うという開発のサイクルを円滑にまわすことができる。一方のOps側、継続的デリバリの観点で言えば、あらゆる環境に同じ方法でデプロイするのでアプリケーションとドライバのバージョンアップ不整合の問題が起こらない。そのリリースプロセスも自動化できる。
DockerとKubernetesを使いやすくまとめたのがOpenShift
実際にAzure上にOpehShiftをインストールするデモも行われた。OpenShiftを利用するためには管理のためのマスターノード、配信やルーティングを行うインフラノードも必要なので、ここではnode1/node2を含め4つのノードをつくり、さらにマスターノードとインフラノードはパブリックIPを用意して外部にも接続。node1/2を含む全ノードはプライベートネットワークで接続する。デモでは、これらをAzureのテンプレートで作成していた。
また、OpenShiftによるPaaS環境のユーザー管理はLDAP、Azure Active Directory(AD)、OpenID、GoogleIDと幅広くサポートしていることも紹介。その上で、オンプレミスとの連携やユーザー数の多さから、Azure ADでの管理をお勧めしていた。
OpenShiftによるPaaS環境のID管理にはAzure ADをお勧めしていた
まとめとして両氏は、「企業サービスをより迅速に提供するためにはAzureにRHELをインストールし、その上でOpenShiftでのDockerベースのアプリ開発・運用を行うことで継続的インテグレーションが可能となる」とアピール。今後の話としてOpenShift Enterprise 3.3が秋ごろリリースされ、このバージョンではさらに継続的インテグレーションのための機能強化が行われるほか、アプリケーションをAPIサービスとして公開できるようにする予定であることに触れた。