Azure App Service で Java SE on Linux をサポート
Posted on
3 min read
このところ、Java と活気ある Java コミュニティに大きな変化が起きています。Java は開発者や企業の間で最も広く使用されているプログラム言語であり、Oracle の Java SE と Eclipse Foundation の Jakarta EE (旧称 Java EE) の間で共有されています。現在は、世界中の 1,200 万人以上もの Java 開発者が最新アプリケーションを開発し、多くの IT 企業でデジタル トランスフォーメーションが進められています。今日のクラウドの繁栄において Java は非常に重要な存在となっています。
既存または開発が進められているさまざまな Java アプリでは、クラウド サービスのメリットを最大限に活用して、時間とコストを抑えながらすばやく安全にアプリケーションを開発することができます。また、世界中の地域で広く利用できることもあり、開発者にとって非常に魅力的なクラウド ソリューションといえます。
このたび、Azure App Service のパブリック プレビューとして Java SE 8 ベースの Linux アプリケーションのサポートを開始します。今回以降のバージョンは、近日リリース予定の LTS バージョンと同様、サポート期間が延長されます。これにより、修正プログラムが自己適用 (バグ修正やセキュリティ更新プログラムがマイクロソフトによって管理) されるスケーラビリティの高い Web ホスティング サービスで Java Web Apps を構築、デプロイできるようになりました。さらなるパフォーマンス機能として、インテリジェントな動的スケーリング構成では、複数のインスタンス、アプリケーション、リージョンで数百万以上のユーザーをサポートすることができます。
Java Web アプリのメリット
Azure App Service では、エンタープライズ クラスのインフラストラクチャに必要なさまざまな処理が自動化されており、開発者は作業の生産性を高めることに注力できます。これは、グローバル セキュリティ コンプライアンスや DevOps 機能などの厳しいテストをクリアした Microsoft Azure のインフラストラクチャが基盤となっています。開発者の生産性のメリットはその点にとどまりません。Java Web アプリには次のような利点があります。
- フル マネージド型のエンタープライズ プラットフォーム – ログの集約、メール通知、Azure ポータルのアラートなどを使用できます。近日中には、バージョン更新に修正プログラムの自動適用が追加されます。
- パフォーマンス監視 – お好みのアプリケーション パフォーマンス管理 (APM) 製品と統合して、アプリケーションを監視および管理することができます。
- グローバルなスケーリングと高可用性 – マイクロソフトのすべてのグローバル データセンターでは、低レイテンシ、自動/手動スケーリング (スケールアップ/スケールアウト) をサポートすると共に、99.95% の可用性を保証しています。
- セキュリティとコンプライアンス – App Service は ISO、SOC、PCI、GDPR に準拠しています。
- 認証と承認 – Azure Active Directory に組み込みの認証機能では、ロール ベースのアクセス制御 (RBAC) を使用して IP アドレス制限を管理することができます。
- 自動ビルドと CI/CD のサポート – 一般提供時には、Maven、Jenkins、Visual Studio Team Services をサポートする予定です。
Java Web アプリを Azure にデプロイする方法は 3 つあります。Azure portal からの作成、テンプレートの使用、Maven からの作成およびデプロイです。今回は、Maven を使用して Spring Boot アプリをデプロイする方法をご紹介します。
Maven と Spring の使用方法
開始するには、お好みの Java Web アプリのクローンを作成するか、こちらのサンプルを使用します。
$ git clone https://github.com/spring-projects/spring-petclinic.git
Azure Web Apps 用 Maven プラグインをアプリ プロジェクトの POM ファイルに追加し、サーバーのポート番号を 80 に設定します。
<build> <plugins> <plugins> <groupId>com.microsoft.azure</groupId> <artifactId>azure-webapp-maven-plugin</artifactId> <version>1.2.0</version> <configuration> <!-- Web App information --> <resourceGroup>${RESOURCE_GROUP}</resourceGroup> <appName>${WEBAPP_NAME}</appName> <region>${REGION}</region> <pricingTier>S1</pricingTier> <!-- Java Runtime Stack for Web App on Linux --> <linuxRuntime>jre8</linuxRuntime> <deploymentType>ftp</deploymentType> <!-- Resources to be deployed to your Web App --> <resources> <resource> <directory>${project.basedir}/target</directory> <targetPath>/</targetPath> <includes> <include>app.jar</include> </includes> </resource> </resources> <appSettings> <property> <name>JAVA_OPTS</name> <value>-Djava.security.egd=file:/dev/./urandom</value> </property> </appSettings> </configuration> </plugin> </plugins> <finalName>app</finalName> </build>
通常の手順に従って Maven でビルド、パッケージ化、デプロイを実行します。
bash-3.2$ mvn package azure-webapp:deploy [INFO] Scanning for projects... [INFO] [INFO] ---------------------------------------------------------------------- [INFO] Building petclinic 2.0.0 [INFO] ---------------------------------------------------------------------- [INFO] ... ... [INFO] --- azure-webapp-maven-plugin:1.2.0:deploy (default-cli) @ spring-petclinic --- [INFO] Start deploying to Web App myjavase-07262018aa... [INFO] Authenticate with Azure CLI 2.0 [INFO] Target Web App doesn't exist.Creating a new one... [INFO] Creating App Service Plan 'ServicePlan1af9c8f0-3f71-43a8'... [INFO] Successfully created App Service Plan. [INFO] Successfully created Web App. ... ... [INFO] Finished uploading directory: /Users/selvasingh/GitHub/selvasingh/spring-petclinic/target/azure-webapps/myjavase-07262018aa --> /site/wwwroot [INFO] Successfully uploaded files to FTP server: waws-prod-bay-081.ftp.azurewebsites.windows.net [INFO] Starting Web App after deploying artifacts... [INFO] Successfully started Web App. [INFO] Successfully deployed Web App at https://myjavase-07262018aa.azurewebsites.net [INFO] ---------------------------------------------------------------------- [INFO] BUILD SUCCESS [INFO] ---------------------------------------------------------------------- [INFO] Total time:03:06 min [INFO] Finished at:2018-07-13T18:03:22-07:00 [INFO] Final Memory:139M/987M [INFO] ----------------------------------------------------------------------
お好みのブラウザーでサイトを開きます。
これで Azure App Service に最初の Java Web アプリがデプロイされました。うまくいきましたか。
さらに便利な Java ツールを開発中
プロジェクトごとに最適な開発ツールは異なります。マイクロソフトは、今後も生産性や効率を向上させるツール スイートの拡充を続けてまいります。近いうちに、Gradle と Jenkins をサポートする予定です。
次のステップ
Azure App Service なら、簡単にすばやくクラウドで Java Web アプリを実行できるようになります。初めての Java Web アプリを Azure サービスで作成してみてください。開始にあたり、いくつかの役立つリソースを以下に示します。
- クイック スタート: App Service on Linux で Java Web アプリを作成する
- Azure Web Apps 用 Maven プラグイン (GitHub、英語)
- Azure サービス (Web Apps および Functions) 用 Maven プラグイン (GitHub、英語)
- Java 開発者向けの Azure
Azure サブスクリプションをお持ちでない場合は、今すぐ無料アカウントを作成してください。