大溝:最近のマイクロソフトさんの“オープンソース・ラブ”な感じはすごいですよね。
新井:マイクロソフトは、もともと自社でOSを作り、アプリケーションも開発言語も提供してきました。これまでは自社製品だけでフルスタックでやってきたのです。しかしながら、今の時代、ユーザーはさまざまなものを使います。顧客の選択肢は多種多様になっているのです。そのようなニーズに応えるため、より多くの選択肢をユーザーに提供するほうが重要だと考えるようになりました。今は、売り手が選択肢を決める時代ではなくなったのです。
日本マイクロソフト OSSエバンジェリスト 新井真一郎氏
そして、もう1つクラウドの存在があります。マイクロソフトは今、クラウドのベンダーに変わろうとしており、そこに注力しています。クラウド上では、ユーザーはマイクロソフトの製品も使いますが、オープンソース製品も使います。そうであれば、Azureの上でさまざまなオープンソース製品を扱えるようにします。たとえば、Javaを利用したい場合は、Javaを選択できるようにし、JBossを利用したい場合にはJBossを利用していただきたい。顧客が今まではJavaを使っていたのに、Azureに来てみたら他のものを使わなければならないというのではダメなのです。
PaaSに関しても、OpenShiftを使ってDockerベースでさまざまなものを簡単に使えるようになるといいですね。
寺田:今は、私のようにUNIX文化で育った人が培ってきたノウハウを、Azure上でそのまま使えます。そういう点からも、今回のRed Hat との提携は多くの人が期待するところだと思います。
Azure上のRed Hat製品を2社で手厚くサポート
大溝:今回の提携は、Red Hat Enterprise Linux(RHEL)がAzureでネイティブサポートされるのもありますが、Azureが「Red Hat Certified Cloud and Service Provider(CCSP)」になったことが大きいです。これで、Red Hatの製品が正式なサポートのもとAzureで使えるようになりました。Red Hat製品でユーザーが欲しいと思うものすべてがAzureで使えます。Azureは課金も細かい時間単位で使えるので、製品をちょっと試してみたい場合にも便利です。
新井:L1-L3のサポートを受けられるのも大きいですよね。Azure上でRed Hat製品を使っていて何か問題があった際に、最初から2社協働で調査し対処できるのは素晴らしいことです。以前のように、問題を日本マイクロソフトからエスカレーションして、その時に初めてRed Hatさんと連携するのとは大きな違いです。
大溝:Red Hatの中にもAzure専任のサポート担当者がいます。サポート体制はかなり手厚いと思います。日本の顧客はサポート体制を重視するので、ここは協業による大きなメリットです。
JavaのPaaSとしてAzureを使うことが本当に簡単になった
新井:ところで寺田さん、マイクロソフトがJavaに対しても取り組んでいることを改めて紹介してくれませんか。
日本マイクロソフト シニア・テクノロジー・エバンジェリスト 寺田佳央氏
寺田:マイクロソフトは、Visual StudioでもJavaが扱えるよう取り組んでいますし、最近ですとマイクロソフトが「Eclipse Foundation」に参加したというのも大きな話題でした。Eclipseについては、かねてよりプラグインを提供していまして、それを入れていただければJavaで開発したウェブアプリケーションをすぐにAzureにデプロイできるようになります。その際アプリケーションサーバは何を選んでもかまいません。JDKも自由に選べます。それらをEclipseで全部パッケージ化すれば、Azureに丸ごとデプロイできます。設定も、ユーザーインターフェースがウィザード形式なので簡単です。
大溝:AzureのMarketplaceでアプリケーションサーバを選んだりしなくていいのですね。このプラグイン使って手元で設定をしっておけば「ぽんっ」とAzureに上げられる。これはかなり便利。
寺田:はい。AzureをJavaのPaaSとして使うことは、本当に簡単になっています。Dockerも簡単に利用できます。もちろん、IaaSでJavaを使ってもいいのですけどね。今やJavaの開発者は、Azureでさまざまな環境を選べるようになりました。
プラグインとしては、もう1つ「Team Explorer Everywhere」という機能もあります。こちらはVisual Studio Team Servicesという、チーム開発のための基盤を利用できるものです。Javaでチーム開発する際に必要なことが、Eclipse上で簡単に行えます。コードを開発するだけでなく、バージョン管理やテストを行うことができます。これを上手く使えば、DevOps的なこともすぐに実現できます。
新井:これまでマイクロソフトの環境で開発を行っていた人も、それまで経験のなかったJavaを使って開発をするかもしれません。ところでOpenShiftとJavaの関わりはどんな感じになっていますか?
OpenShiftはロジックとインターフェースの切り離しが簡単
大溝:OpenShiftのメリットはテンプレートを利用すれば、実行環境が簡単に作れるところです。もちろんJBossを使うような環境もすぐに実現できます。最近の開発では、クリティカルなロジック部分はJavaで書いてバックエンドのサーバで動かし、フロントやクライアント部分の仕組みは変化する可能性もあるのでスクリプト言語を使って構築する。ロジックとインターフェースは切り離す形の開発が増えています。そんな時にもOpenShiftなら、バックはJavaでしっかりした環境を、そしてフロント部分の開発言語はさまざまなものから適切なものを選ぶことができます。Dockerベースになっているので、必要なものを選ぶだけですぐに使えます。
新井:Red Hatと言うとJavaイメージが強いのですが、OpenShiftはかなり柔軟なのですね。
レッドハット OpenShift ソリューションアーキテクトの大溝桂氏
大溝:選択肢はものすごく広いです。OpenShiftも現在のバージョン(v3)からDockerコンテナベースになったのですが、すごく柔軟で便利になりました。通常、開発用と本番用でまったく同じ環境を利用することはできません。そんな場合も、コンテナなら同じ環境をすぐに展開できます。OpenShiftでまずは開発環境を作って、そこからクラウドのAzureに持っていって動かすといったことも簡単です。このポータビリティの高さが、コンテナの便利なところです。
Javaには「Write once, run anywhere(一度書けばどこでも動く)」のコンセプトがあります。とはいえ、実際はなかなかそううまくいきませんでした。動かす環境が異なれば、ライブラリも異なり、その違いを調整しコンパイルし直してから動かすことになるのが普通でした。Javaをずっとやっている人でも、このコンセプトは信用していないでしょう。それがコンテナだと「Build once, deploy anywhere」にできてしまいます。
新井:そういう意味では、コンテナのほうが当初のJavaの思想に近いのかもしれませんね。