熟知している Java ツールを使用してコーディングする
Java 開発者は、自分の気に入っているツールを使用しているものです。 開発者には、作業をより速く行ってより良い結果を出すためのショートカットや秘訣があるのと同様に、作業に集中して生産性を維持するのに役立つツールを使用する独自の作業方法があります。 コーディング用の IntelliJ や Eclipse や VS Code、テスト用の JUnit、あるいは依存関係の管理とビルドの自動化用の Maven や Gradle など、開発者は、使用しているツールがいずれであっても、お気に入りのツールを脇に置いて新しいことを学ばなければならないような状況に身を置こうとは思いません。 そのため、Azure では、Java 開発者がお気に入りのツールやフレームワーク、および任意のオペレーティング システム上で、アプリケーションをクラウドに移行できるようにしています。 これらのツールのいくつかについて詳しく見てみましょう。
IDE - VS Code、IntelliJ、Eclipse
理想的な IDE には、ソースコードの編集、コンパイル、ローカル ビルドの自動化、テスト、デバッグを行うためのツールと、データ管理、キャッシュ、メッセージング、イベントに対応するバックエンド サービス用のコントロールと監視ツールが含まれています。 これらすべてのタスクをサポートする統合ツールセットを使用することで、開発者の生産性が向上し、また各タスクごとのスタンドアロン ツールの使い方を学んでそれらを常に切り替える必要性をなくすことができます。 IntelliJ、Eclipse、Visual Studio Code は、よく使用されている Java IDE です。
Visual Studio Code での Java
Visual Studio Code (VS Code) は、Windows、macOS、Linux で実行される軽量で非依存型のオペレーティング システムです。 強力な IDE で、Java 開発用の包括的なツールセットを提供します。 Microsoft Build of OpenJDK、Amazon Corretto、Eclipse Adoptium、Oracle Java Standard Edition など、任意の Java 開発キット (JDK) をサポートしています。 VS Code は、すべての Java フレームワーク、アプリケーション サーバー、その他の一般的なツール (Tomcat、Spring Boot、JBoss EAP、WildFly、Quarkus、Open Liberty、Maven、Gradle など) とうまく統合されています。 また、JavaScript や SQL など、Java 開発者が頻繁に使用する他のプログラミング言語もサポートしています。
VS Code では、Visual Studio Code 用のさまざまな Java 拡張機能を通じて、Java 開発ワークフローがサポートされ合理化されます。 数百に上る Java の拡張機能があり、これらは IDE 自体から検索することができます。 基本的な Java 開発用の主要な拡張機能を Java 用拡張機能パックにパッケージ化しました。 この拡張機能パックには、プロジェクト管理、Maven 統合、コード編集、コード補完、コード ナビゲーション、リファクタリング、リンティング、書式設定、デバッグ、JUnit/TestNG テスト ケースの実行とデバッグなどの拡張機能が含まれています。 Spring Boot アプリケーションの開発とデプロイのための Spring Boot Extension Pack もあり、これには Spring Initializr サポートが含まれます。
Azure エンジニアリング チームによって構築された Azure Tools 拡張機能パックには、Java アプリケーションを支援するすべての Azure Cloud Services を見つけたり操作したりするための豊富な拡張機能セットが用意されています。 これらのすべての拡張機能は、Java アプリのコーディング、デバッグ、テストを行う際に VS Code 内から使用できます。 アプリをデプロイする準備ができると、Azure Tools 拡張機能では、Java アプリケーションを実行するための Azure が提供するさまざまなコンピューティング サービスへ、ワンクリックでのデプロイがサポートされています。
Visual Studio Code での Java では、Java 開発で最も一般的な Visual Studio Code 拡張機能の概要を説明しています。 また、Visual Studio Code を使用して Java 開発を開始するための手順と、Java 開発者の生産性を高めるのに役立つさまざまな方法のチュートリアルも用意されています。
VS Code での Java の概要には、Hello World プログラムを記述して実行する方法など、Java 開発用の VS Code のセットアップに関する短いチュートリアルが用意されています。 同様に、Visual Studio Code を使用して Java アプリケーションをビルドし、次のようなサービスに ワン クリックでデプロイする方法を示す短いチュートリアルがあります。
VS Code で Java を初めて使用する場合は、メイン コマンド パレットで "Java: Tips for Beginners" コマンドを試してください。
Azure Toolkit for IntelliJ
Azure Toolkit for IntelliJ では、開発者は、IntelliJ IDE を使用して Azure アプリケーションを簡単に作成、開発、テストし、Azure へデプロイすることができます。 たとえば、開発者はこれを使用して以下次のタスクを実行できます。
- Azure App Service の Azure App Service とカスタム コンテナーに Java Web アプリケーションをデプロイする。
- Java または Spring アプリケーション、または コンテナ化されたアプリケーションを Azure Container Apps にデプロイする。
- サーバーレス アプリケーションを Azure Functions にデプロイする。
これらの例はすべて、Azure 上で Java を実行するためにコンピューティング サービスを使用します。これについては、このドキュメントの後半で詳しく説明します。 Spring Cloud Azure の統合は、IntelliJ での Spring Initializr のエクスペリエンスを通じて提供されます。 Java プロジェクトでの依存関係に応じて、適切な Java ライブラリとドライバー (Azure SDK for Java を含む) を追加するだけです。
Microsoft は、クラウドネイティブ開発の新しいエクスペリエンスや Azure サービスとのより深い統合 (Azure Kubernetes Service および Application Insights との統合を含む) など、IntelliJ の機能を提供するために、時間とリソースを積極的に投資しています。
Azure Toolkit for Eclipse
Azure Toolkit for Eclipse では、開発者は、Eclipse IDE を使用して Azure アプリケーションを簡単に作成、開発、テストし、Azure へデプロイすることができます。 これには、Azure SDK for Java を含む主要な Java ライブラリとドライバーが含まれています。 開発者は、Azure Toolkit for Eclipse を使用して、Eclipse IDE から次のタスクを実行できます。
- App Service の Azure App Service とカスタム コンテナーに Java Web Apps をデプロイする。
- Java または Spring アプリケーション、または コンテナ化されたアプリケーションを Azure Container Apps にデプロイする。
- Maven または Gradle プラグインを使用して、サーバーレス アプリケーションを Azure Functions にデプロイする。
依存関係の管理とビルドの自動化 - Maven、Gradle、GitHub
Maven と Gradle は、Java アプリケーション用の 2 つのよく使用されているプロジェクト管理、依存関係管理、およびビルド自動化のツールです。 これらのツールは、一般的な Java IDE にうまく統合されており、各ツールの一連のプラグインを通じてサポートされている Azure へのワンクリック デプロイに対応しています。
Azure Service 用の Maven プラグイン
Azure サービス用の Maven プラグインを使用すると、Maven 開発ワークフローを Azure に拡張し、Java アプリケーションをローカルでテストした後、Azure 認証方法および Azure ロールベースのアクセス制御と統合する形で、手順一つで Azure サービスにデプロイできます。 Azure App Service 用の Maven プラグインは、Maven Java Web アプリケーション プロジェクトを Azure App Service と App Service のカスタム コンテナーにデプロイするのに役立ちます。 Azure Functions 用の Maven プラグインは、Maven サーバーレス Java アプリケーション プロジェクトを Azure Functions にデプロイするのに役立ちます。
Azure サービス用 Gradle プラグイン
Azure サービス用の Gradle プラグインは、Maven のプラグインと似ています。 Azure 認証方法や Azure のロールベースのアクセス制御と統合する形で、Java アプリケーションを Azure サービスに手順一つでデプロイできます。 Azure App Service 用の Gradle プラグインは、Gradle Java Web アプリケーション プロジェクトを Azure App Service および App Service のカスタム コンテナーにデプロイするのに役立ちます。また、Azure Functions 用 Gradle プラグインは、Gradle サーバーレス Java アプリケーション プロジェクトを Azure Functions にデプロイするのに役立ちます。
GitHub
GitHub は Java アプリケーションの一般的なリポジトリであり、350 万を超える Java アプリケーションに DevOps 環境を提供しています。 Java 用 GitHub Actions を使用すると、次のようなタスクを実行できます。
- 要求されたバージョンの Java をダウンロードしてセットアップする。
- ローカル ファイルから Java のカスタム バージョンを抽出してキャッシュする。
- Maven、Gradle、または GPG 秘密キーを使用して公開するためのランナーを構成する。
- エラー出力用に問題マッチャーを登録する。
- Maven または Gradle によって管理される依存関係をキャッシュする。
GitHub Actions では、ワールドクラスの CI/CD を使用して、すべての Java ソフトウェア ワークフローを簡単に自動化できます。 GitHub から直接コードをビルドし、テストして Azure にデプロイできます。 コード レビュー、分岐管理、イシューのトリアージを必要に応じて行うことができます。 Java アプリケーションを実行するために、任意の Azure サービスにデプロイできます。
GitHub では Java 用の開発コンテナーもサポートされています。これは、GitHub Codespaces または VS Code Remote - Containers を介してアクセスできます。
Jenkins パイプライン
Azure で Java を実行する多くの Microsoft のお客様は、Jenkins (オープンソースのオートメーション サーバー) を使用して、アプリケーションのビルド、テスト、デプロイを行っています。 Jenkins を使用する場合は、たとえば、プロジェクトの Git リポジトリにコードをプッシュするときに Jenkins ビルドをトリガーするなど、CI/CD ビルドに Jenkins を引き続き使用しながら、Azure DevOps、GitHub、またはその他の任意のソース コード管理システム でソース コードを管理することができます。
Azure Pipelines
Azure DevOps サービスの一部である Azure Pipelines を使用すると、Java アプリケーションを継続的にビルドしテストして、任意のプラットフォームやクラウドにデプロイできます。 ソース管理のために GitHub (または Azure Repos) と連携しており、Maven または Gradle を使用してビルドし、Java アプリケーションを実行するための任意の Azure サービスにデプロイすることが可能となっています。
Azure コマンド ライン インターフェイス
Azure コマンド ライン インターフェイス (CLI) は、コマンド ライン プロンプトまたはスクリプトを使用したターミナル コマンドの実行など、Azure リソースを作成、接続、管理するためのクロスプラットフォーム のコマンドライン ツールです。 Linux、macOS、または Windows ベースのマシンに Azure CLI をローカルにインストールするか、コンテナー内から実行するか、Azure Cloud Shell 経由でブラウザーから Azure CLI にアクセスできます。
次の例は、Azure CLI を使用して JAR または WAR ファイルを Azure Container Apps にデプロイする方法を示しています。
az containerapp up \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP> \
--subscription <SUBSCRIPTION_ID> \
--location <LOCATION> \
--environment <ENVIRONMENT_NAME> \
--artifact <JAR_FILE_PATH_AND_NAME> \
--ingress external \
--target-port 8080 \
--query properties.configuration.ingress.fqdn
まとめ
Azure で Java を使用する場合は、独自のツールを選択できます。 Windows、macOS、Linux、クラウドベースのマシンなど、任意のマシンを使用して、任意の Java アプリケーション (ポリグロット アプリケーションを含む) のビルド、テスト、デバッグ、トラブルシューティングを行うことができます。 また、任意のアプリケーション サーバーまたは任意の埋め込みアプリケーション サーバーを使用して、アプリケーションを Azure にデプロイすることもできます。