SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【デブサミ福岡2015】セッションレポート(AD)

【デブサミ福岡2015】Microsoft <3 Javaで広がる今後の世界

Developers Summit 2015福岡 講演レポート

  • このエントリーをはてなブックマークに追加

 2014年2月にサティア・ナデラ氏がCEOに就任して以来、マイクロソフトは大きく変わろうとしている。その象徴といえるのが、オープンソース化戦略の推進だ。本セッションでは、マイクロソフトのJavaに対する取り組みについて、クラウド・プラットフォームMicrosoft Azureで提供されているサービスを中心に紹介された。

  • このエントリーをはてなブックマークに追加

日本マイクロソフト株式会社 テクノロジー・エバンジェリスト 日本Javaユーザ・グループ幹事 寺田佳央氏

日本マイクロソフト株式会社 テクノロジー・エバンジェリスト 日本Javaユーザ・グループ幹事 寺田佳央氏

新CEOの就任以後、JavaなどのOSSに積極関与するマイクロソフト

 寺田佳央氏は「皆さんのマイクロソフトに対するイメージを変えたい」と述べ、セッションを開始した。2014年2月にサティア・ナデラ氏が三代目CEOに就任して以来、同社はオープンソース化とクロスプラットフォーム化戦略を推進している。Java、PHP、Rubyなどのオープンソースコミュニティに対して積極期にコミットしている。例えば、OpenJDKプロジェクトではJava VMに対するパフォーマンス向上のためにソースコードレベルで修正を行い貢献するほか、さまざまな開発者向けドキュメントの公開も行っている。

 この方針転換がなければ、寺田氏が本年7月にマイクロソフトに入社することはなかっただろう。氏はサン・マイクロシステムズと同社を吸収合併したオラクルで約9年、Javaを中心に手がけてきたという経歴を持つ。「入社後に受けた新入社員研修には、オープンソースに積極的に取り組む、というプログラムがありました。これが今のマイクロソフトの文化なのです」(寺田氏)。

 これらマイクロソフトの変化を象徴しているのが、2014年3月に同社提供のクラウド・プラットフォームの名称がWindows AzureからMicrosoft Azureへと変更されたことだ。現在のAzureは、OSから構成管理、データベース、ミドルウェアなどのすべてのレイヤーで、オープンソースのテクノロジーを自由に使うことができる。

 寺田氏が長く取り組んできたJavaでいえば、統合開発環境のEclipse、NetBeans、アプリケーションサーバのTomcat、GlassFish、WebLogic、WebフレームワークのJava EE、Springなど、商用を含めて通常Webアプリケーション開発で使われているものがすべて利用可能だ。

 JavaでWebアプリケーションを開発するといっても、その目的はさまざまだ。寺田氏は、目的のカテゴリー別にAzure上のサービスを置き換えて見せた。

  • PaaS:迅速なサービス展開
  • Docker:DevOps/Microservices
  • IaaS:基幹システムなどミッションクリティカル

 この中で寺田氏が「安心して皆さんにお勧めできる」と語ったのがDockerとIaaSだ。PaaSは簡単に展開できるメリットはある一方、少し柔軟性に欠ける部分がある。その部分で、よりやりやすくできるのがDocker、IaaSということになる。

 IaaSでは、ハイパーバイザー上で、作りたい環境を簡単に構築できる。ウィザード形式で環境、リージョン、マシンなどを選択していけば、すぐに環境が立ち上がる。

開発生産性を高めるJavaとコンテナ型サービスDockerの組み合わせ

 Dockerは、2014年10月に発表されたDocker社との提携により、AzureにおいてLinuxのコンテナとして提供が開始された。本セッション参加者への会場アンケートでは、本番環境で使っている人はまだ少ないようだ。マイクロソフトはDockerに強くコミットしており、次期Windows Serverで採用するとしている。

 DockerはJava界からも注目されている。寺田氏が世界最大のJavaイベントJavaOne 2015のセッションを検索したところ約400中25がヒットした。また世界で約100人いるJavaチャンピオンの一人Adam Bien氏は「JavaとDockerを組み合わせると非常に開発生産性が高い」と自身のブログに書いている。同じくJavaチャンピオンであるMarkus Eisele氏は「組み合わせにより、非常に素晴らしいサービスをいち早く提供できるようになる」と記述している。

 寺田氏は「Dockerが提供され、注目されている背景には、開発環境の統一が困難という事情がある」と語る。例えば、JDK、Tomcat、MySQLを使う場合、バージョンの組み合わせは無数にある。それはテスト環境、本番環境でも起こっている。

 この問題解決のために行われてきたのは、管理台帳に記載しての管理化や、仮想マシンイメージの共有だ。しかし、管理台帳を利用した場合、記載内容に従い人間が直接操作をするためミスが発生する可能性がある。また台帳に対する更新漏れによって、台帳の記載内容と実際の環境で設定が異なる事態も発生する。仮想マシンで共有した場合、1つのイメージを渡すのに数十ギガ必要かもしれない。さらには、仮想マシンに対して施した変更に対する追従が困難だ。こうした問題を解決するのが、アメリカのDocker社が開発・提供するコンテナ管理ソフトウェアDockerだ。

 コンテナ型サービスは、仮想マシンに対して以下の利点をもっている。

  • サイズが小さい
  • オーバヘッドが低い
  • 移植性が高い
  • 開発・運用の効率改善

 そこから"Immutable Infrastructure"、"Microservices Architecture"、"DevOps"といった言葉と共にDockerが使われる場面が多くあるという。

 Dockerではミドルウェア、Webアプリケーションのデプロイ方法などのシステム構築を全部コード、スクリプトで書く。以後、システムの構成変更は、コードに対して実施する。

 Dockerコンテナの構造だが、まずホストOS(現在はLinux)があり、その上にDockerのエンジンをインストールする。その環境で、スクリプトで作成したコンテナをどんどん動かしていく。

 Azureでは、Dockerのエンジンを動作させるために、いくつかの方法を提供している。例えば、Dockerコンテナを稼働させるために最適化した、CoreOS(軽量Linux)というものを組み込んでいる。CoreOSは、Azureのポータルから選択すれば、エンジンがインストールされた形でサービスが立ち上がる。

 Dockerを使うにはDockerfileを作る。ADD、COPY、FROMなどのコマンドに対して引数を書き、環境構成を作る。一回そのテキストファイルを作ると、それを元に同じコンテナを作っていくことができる。

 また、例えばJDKやGlassFishなどの新バージョンが出たときは、そのURLを書き換えてやれば差分だけ取ってきてくれる。同様にWebアプリケーションのデプロイで、アプリケーションの部分が変わった場合、warファイルだけを取ってきてサービスを提供できるようになる。

 ここで寺田氏はデモを披露した。AzureポータルのMarketplaceに選択肢があり、そこでCoreOSを選び、必要な構成、設定情報などを記入する。リソースグループを設定し、リージョンとして東京、東日本を選択し、OKボタンを押す。寺田氏は「選択するインスタンス・タイプは結構重要で、システム構築する(後述:docker build)際の時間の差や、サービスのパフォーマンスに影響するので、必要に応じて選んでほしい」と語った。続けてDockerfileを作れば、準備はOKだ。

 Dockerfileからのイメージ作成は、docker buildというコマンドの実行で行う。コンテナの起動はdocker runを使い、自分が作成したイメージファイルを指定すれば、自動的に立ち上がる。

 基本的に、設定ファイルを作り、コマンドを2個叩けばいいだけだ。これで環境が統一しやすくなる。

Azure上にはJavaで利用可能なサービスが多数用意されている

 Docker以外にも、AzureのSDK提供により、いろいろなサービスをJavaから制御できるようになっている。すべてOSSのJavaプロジェクト管理ツールMavenによるもので、POMファイルにちょっとした設定をすれば、普通に開発ができる。

 このAzureSDKの中で、扱いやすいとして寺田氏のオススメはブログサービスで、デモも披露された。またAzure上でPaaSとして提供されているSQLサーバをJavaから普通に扱うことができることも強調された。

 続けて寺田氏が紹介したのが、Visual Studio Onlineだ。これは開発ツールではなくチームで開発する際に必要な機能がまとめられたもので、SaaSとして提供されている。これにより、今まで面倒だった大規模なチーム開発におけるツール構成が、より簡単になる。

 最後に寺田氏は、「Azureを試して使い勝手が悪いと感じたことがあれば、フィードバックしてほしい」と呼びかけた。「今のマイクロソフトのすごさは、フィードバック対応力だと思っています。ちょっとしたことでもいい。フィードバックが次の時代のAzureをよくしていきます」と語り、セッションを閉じた。

 Microsoft Azureに対するフィードバック先はコチラ。

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9085 2015/11/20 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング