Java クラウド開発者向けに Azure のオプションを拡充

このポストは、10 月 22 日に投稿された Lots of options for Java Cloud developers with Azure! の翻訳です。

Microsoft Azure では、クラウド アプリを Java で開発している方々を支えていきたいと考えており、クラウド ネイティブなアプリと連携させたい、あるいはオンプレミス アプリからクラウド サービスを使用したいと望む Java 開発者様向けに数多くのリソースを開発してきました。

4 月には私も記事を投稿し、その時点で利用可能なクラウド開発のさまざまなオプションをご紹介しました。それ以降も、マイクロソフトは Java コミュニティと協力し、オプションのさらなる拡充を図ってきました。今回の記事では、マイクロソフトが現在 Java 開発者向けに提供しているサービスの最新情報をお伝えします。

 

Azure で使用できる Java 開発ツール

クラウド API をお探しの場合は、Azure SDK for Java をご利用ください。Blob ストレージMedia ServicesQueue ストレージService Bus キューSQL DatabaseTable ストレージといった Azure クラウド サービスにアクセスする Java アプリやマイクロサービスを構築することができます。この SDK は Windows、Mac、Linux の各プラットフォームで使用できます。またオープン ソースとなっていますので、ほかの機能が必要な場合にも GitHub  からソース コードをダウンロードして手を加えることができます。

管理性に優れた ID サービスをお探しなら、Azure Active Directory Library for Java  をお使いください。全世界の 80% の企業で利用されている ID サービスに接続できます。

MongoDB の一般的な Java API を使用して Java アプリを NoSQL ソリューションに接続したい方には、Azure で MongoDB を使用できる MongoLab をご用意しています。また、マイクロソフトの DocumentDB サービスでも Java SDK を提供しています。

Azure は皆様のお好みの UI で使用できます。Eclipse で開発されている方は、Azure Toolkit for Eclipse を使用すると、Windows、Mac、Linux で Eclipse プロジェクトの構築と Azure クラウド サービスへの発行が可能です。IntelliJ IDEA Android Studio  の両方、またはそのいずれかを利用している場合は、マイクロソフト サービス向け MS Open Tech ツール プラグイン を使用すると、Android アプリを Office 365、Azure Mobile Services、Azure Storage に接続することができます。また、IntelliJ IDEA から Azure クラウド サービスに Java アプリを発行することもできます。

ステートレスなアプリを作成し永続的に管理する場所をお求めの場合に最適なのが、Azure Redis Cache です。使い方も簡単です。詳細については、チュートリアル「Java で Azure Redis Cache を使用する方法」を参照してください。

 

Java の最良のパートナー

マイクロソフトは、提供しているサービスの強化には、オープン ソース コミュニティとの協力が欠かせないと考えています。Azul Systems とは長期的なパートナーシップを築き、Azure クラウドに対応したオープン ソースの Java を開発してきました。Azul Zulu® は、マルチプラットフォーム ビルドの OpenJDK™ としてリリースされました。もちろん Microsoft Azure で使用可能です。

Zulu は Azure Toolkit for Eclipse での JDK デプロイメントの 1 つであり、IntelliJ 用のマイクロソフト サービス向け MS Open Tech ツール プラグイン でも同様です。また、Azure Virtual Machines ギャラリーでは Zulu 8 を実行する仮想マシンがすぐに利用可能な形で用意されています。

Hortonworks とのパートナーシップ においては、Azure で簡単に使用、実行できる Hadoop ベースのサービスを HDInsight で提供しています。また、Cloudera とのパートナーシップ を通じて、Hadoop ベースの Cloudera Enterprise 仮想マシン  を提供しています。

Java ベースの Cassandra を使用している Java 開発者に向けては、DataStax と提携し、Cassandra Enterprise を提供 しています。このほかにも、Azure Virtual Machines ギャラリーでは Jelastic や Oracle などによるサービスも多数提供しています。

 

継続的インテグレーションとデプロイメントのためのツール

Jenkins をお使いの方は、Jenkins Slave Plugin for Azure を使用して Jenkins の Slave  として Azure Virtual Machines をプロビジョニング、管理することができます。また、作成したアプリケーションをクラウド ストレージにデプロイする際にも、Azure Storage plugin for Jenkins を使用できます。

Hudson をお使いの方には、Hudson Azure Slave PluginAzure Storage Plugin for Hudson  をご用意しています。

マイクロソフトは CloudBees とも提携しており、CloudBees Jenkins Enterprise を Azure でご利用いただけます。これは Jenkins のセキュリティ確保と最適化を行うプラグイン群で、オープン ソースの Jenkins および Jenkins コミュニティで作成されたすべてのプラグインと互換性があります。詳細については、CloudBees のブログ を参照してください。

ビルドやデプロイメントの管理を Apache Ant  で行う場合は、最新リリースの Azure Toolkit for Eclipse を使用すると、Eclipse の外からでもコマンド ラインで Azure クラウドへのデプロイが可能です。この機能の詳細については、こちらの記事 を参照してください。

 

Linux や Windows で Linux 仮想マシン イメージの利用をすぐに開始

Azure で実行されている VM の 25% は、Linux ベースです。マイクロソフトは VM Depot というオープン ソース リポジトリを用意し、Microsoft Azure Virtual Machines で実行される Linux イメージを提供しています。VM Depot では、多数の Java ベースの VM イメージ を入手することができます。また、WebSphereWebLogicJDK6JDK7JDK8  など、広く使用されている JDK や Java ベースの Web アプリケーション サーバーが事前に構成されている仮想マシンも各種ご用意しています。

 

Azure CLI および Azure Resource Manager テンプレートを使用して Azure のデプロイメントを自動化

Linux や Mac、Windows でコマンド ラインからデプロイメントを管理する場合は、Azure コマンド ライン インターフェイスをご利用ください。複雑でインタラクティブなクラウド インフラストラクチャを Azure にデプロイする場合は、Azure Resource Manager を使用すると再利用可能なテンプレートを作成できます。また、Azure Resource Manager のクイックスタート テンプレートも数百種類を用意しており、これを活用するとデプロイ作業をより迅速に行えます。これらのテンプレートはすべてオープン ソースとなっており、GitHub で公開されています。

 

作成したアプリをコンテナー化し Azure Marketplace で配信

作成したアプリを Docker コンテナーで配信する場合は、Azure Marketplace のコンテナー アプリ カテゴリをご覧ください。Docker Hub から厳選された公式リポジトリを検索し、デプロイすることが可能です。Docker 化されたアプリケーションは、単一コンテナーのものでもマルチコンテナーのものでも、Azure Resource Manager テンプレートAzure の Linux 用 Docker 仮想マシン拡張機能を使用してデプロイできます。

Azure では、次のようなものが公開されています。

 

自分自身でカスタマイズした Docker イメージを構築し Azure で実行する場合は、まずこちらの VM イメージ  で Ubuntu サーバーを Microsoft Azure にデプロイし、Docker Engine をインストールします。

 

Azure で Cloud Foundry インフラストラクチャを使用

現在進めている Cloud Foundry とのパートナーシップ に基づき、標準の Cloud Foundry インフラストラクチャを Azure でデプロイすることができます。Azure で Cloud Foundry をセットアップする方法の詳細は、こちらのページで説明されています。また、Cloud Foundry の Azure Resource Manager テンプレート や、Azure Active Directory と Cloud Foundry を統合したイメージもご利用いただけます。

 

Azure におけるリアクティブ プログラミング

リアクティブ プログラミングを実践しているプログラマの方は、TypeSafeAzure 用  に拡張した Reactive Maps Activator テンプレート をご利用ください。Azure で Play Framework を使用する場合のチュートリアル や、マイクロソフトのリアクティブ プログラミングへの取り組みを紹介するページ も併せてご確認ください。

 

Application Insights で Java Web アプリケーションを監視

Application Insights を使用すると、実行中の Java Web サイトやサービスの可用性、パフォーマンス、利用状況を監視できます。Java アプリとその依存関係に関する情報をさまざまな視点から把握でき、アプリケーションの正常性や普及状況に関するメトリックス、例外に関するデータを簡単に追跡できます。また、インタラクティブなツールを使用すると、パフォーマンスに関する問題の検出や診断、データの絞り込みやセグメント化、特定のイベントの詳細な調査なども可能です。Application Insights Java SDK をサーバー アプリケーション、または既に実行中のサイトやサービスに追加して、ぜひこの機能をご利用ください。この SDK はオープン ソースとなっており、GitHub で公開されています。

 

Team Foundation Server と Visual Studio Online で Java のビルドとチームを管理

マイクロソフトは Java IDE を提供していませんが、別の形で Java プロジェクトをサポートしています。Team Foundation ServerVisual Studio Online は、Java 開発チーム向けに無料のツール (最大 5 ユーザーまで) を提供し、計画作成、ソース管理、共同作業、ビルド、テスト、デプロイメントを支援しています。

また、Eclipse などのお好みの IDE のほか、Ant や Maven などのビルド テクノロジ、Git などのソース管理システム、Jenkins などのコミュニティ統合ツール  も変わらず使用していただけます。この詳細については、こちらのブログ記事をお読みください。Visual Studio Online を最大限に活用したい Java 開発者の方は、Visual Studio Online の Java に関する新しいページをご覧ください。

 

Java Web アプリ

JAR ファイルを所有していて、それを Azure にデプロイして実行する場合には、Java が有効化されている Web アプリを使用すると、Tomcat や Jetty で動作する Java プログラムを Azure にデプロイできます。下記の 2 つのページでその例を紹介しています。

 

モノのインターネット (IoT) に対応した Java SDK

Microsoft Azure IoT device SDK for Java では、ユーザーが自身でカスタマイズした Azure IoT Hub を使用して Azure IoT サービスで接続と管理を行うデバイスやアプリケーションの作成を支援します。

 

ドキュメント、ヒント、テクニック

Java デベロッパー センターでは、Microsoft Azure Cloud Services 用のすべての Java API に関するドキュメントや、Java 開発者向けのヒントとテクニックを公開しています。Java 開発に関する詳細なガイドは、こちらのページをご覧ください。

Javadoc をご覧になりたい方は、AzureAzure StorageDocumentDBApplication Insights のそれぞれのサイトをご利用ください。

また、Microsoft Virtual Academy では、Java 開発者に向けた「Microsoft Azure での Java の利用」というコースが公開されました。このコースでは、Tomcat で実行される Java のサンプル アプリ を使用して、Access Control ServiceBlob ストレージMedia ServicesQueue ストレージService Bus キューSQL DatabaseTable ストレージなどの Azure サービスに Java からアクセスする方法を説明しています。

Java で Azure サービスを使用する場合は、Brady Gaster のブログ記事「Java 用 Azure 管理ライブラリの利用開始」や、これに関連する Channel 9 のビデオ をご覧ください。

 

マイクロソフトから Java への貢献

マイクロソフトはオープン ソース プロジェクトへの取り組みを継続し、オープン ソース コミュニティへの貢献も果たしています。Java に関しては、OpenJDK の開発ストリームに協力し、ローカル TCP でのスループット向上とレイテンシ短縮 や、TCP でのファイル転送のスループット向上 などに貢献しています。

 

無料評価版を試して感想をお寄せください!

まだ Azure をご利用でない方は、こちらのページから Azure の無料評価版をお試しください。

また、皆様が Azure で Java をどのように使用しているのか、どのようなプロジェクトに取り組んでいるのか、参考事例としてぜひお聞かせください。