Azure Spring Cloud アプリケーション サービスにお問い合わせください

Azure Spring Cloud アプリケーション サービスにお問い合わせください

[51CTO.com クイック翻訳] 近年、Javaは企業で広く使用され続けています。たとえば、LinkedIn は 500 を超える Java マイクロサービスを使用しており、Minecraft ゲーム クライアントは Java で記述されており、Yammer のバックエンドも Java で記述されています。 Microsoft の Azure クラウドにも、Java アプリケーションや Java 固有のアプリケーションと対話できるコンポーネントがいくつか含まれています。 Java エコシステムが徐々に Spring に支配されるようになるにつれて、Microsoft は Java コミュニティに積極的に参加するだけでなく、Azure Spring Cloud などのオープン ソース Java プロジェクトを立ち上げて、Java アプリケーションのサポートを強化し、Azure Cloud コンポーネントを統合していると言えます。

開発者の10人中6人がアプリケーション開発にSpringを使用している

Azure Spring Cloud は、Microsoft と VMware の共同作業によって構築された、Azure 製品ファミリの PaaS 製品です。 Spring Boot を利用することで、Spring Cloud は Azure クラウド コンポーネントと統合し、ユーザーにシームレスなクラウド ネイティブ アプリケーション開発エクスペリエンスを提供できます。

完全に管理されたクラウド サービスである Azure Spring Cloud は、完全に管理された AKS クラスターによって強化されています。したがって、クラウド内でマイクロサービスを構築、デプロイ、管理するための真のサーバーレス エクスペリエンスを提供できます。

クイックスタート

簡単にするために、有効な Azure サブスクリプション アカウントが既にあること、およびビルドおよび依存関係管理ツールとして Maven (https://maven.apache.org/) を選択していることを前提としています。

Spring Boot + Spring Cloud アプリケーションを Azure Spring Cloud にデプロイするには、以下の手順に従ってください。

  • Azure ポータルを通じて新しい Azure Spring Cloud インスタンスを作成します。
  • Azure CLI をダウンロードしてインストールしてください。
  • Azure Spring Cloud 拡張機能を追加するには、コマンド「az extension add -n spring-cloud -y」を使用します。 Azure CLI のバージョンが異なるため、spring-cloud コマンド セットが既定の Azure CLI コマンドに追加されている可能性がありますが、この手順は必ずしも必要ではありません。
  • 「az configure --defaults group={resource_group}」と「az configure --defaults spring-cloud={asc_instance}」を使用して、リソース グループと Azure Spring Cloud インスタンスの既定値を設定します。
  • 以下に示すように、Azure Spring Cloud Client の依存関係をプロジェクトに含めてください。ローカルで開発された依存関係によってこれらが「汚染」されないように、別の設定ファイルで実行することをお勧めします。
  1. <プロフィール>  
  2. <プロフィール>  
  3. <id>クラウド</id>
  4. <依存関係>
  5. <依存関係>
  6. <グループ ID>com.microsoft.azure</グループ ID>
  7. <artifactId>spring-cloud-starter-azure-spring-cloud-client</artifactId>
  8. <バージョン>2.2.0</バージョン>
  9. </依存関係>
  10. </依存関係>
  11. </プロフィール>
  12. </プロフィール>
  • 前の手順で追加したプロファイルを有効にし、コマンド mvn clean package -Pcloud を使用してアプリケーションをビルドします。
  • az spring-cloud app create -n {my-app} を使用して、Azure Spring Cloud インスタンスに新しい Azure Spring Cloud アプリケーションを作成します (これは初回のみ実行する必要があります)。
  • 次のコマンドを使用して、アプリケーションを Azure Spring Cloud にデプロイします。
  1. az spring-cloud アプリのデプロイ -n {my-app}  
  2. --jar-path ターゲット/my-app.jar  

コードは一切使用せず、プロジェクトへの影響も最小限に抑え、わずか数分で最初のアプリケーションを完全に管理された AKS クラスターにデプロイできました。

分散トレース

Azure Application Insights でのアプリケーション マッピングの例

Azure Spring Cloud は、すぐに使用できるアプリケーション向けの分散トレース機能を提供します。受信要求がシステムにどのように流れるか、コンポーネントが相互にやり取りする方法、サンプリングされた呼び出しのトレース、呼び出しの出力と期間に関する情報を示す完全な「アプリケーション マップ」を構築するために、Azure Application Insights に大きく依存しています。

依存する Azure Application Insights の既存のインスタンスを指定するか、分散トレースの設定を有効にして、Azure Spring Cloud 専用の新しい Azure Application Insights インスタンスを作成することができます。

ログ保存


診断設定の例、ログとメトリックを Log Analytics にリダイレクトする

Azure Spring Cloud は、Log Analytics、Azure Storage、または Azure Event Center を通じて、ログとさまざまなメトリックの収集と保存を提供します。診断設定を使用して、ログとメトリックを保存する方法を指定し、この機能を有効にすることができます。

実際には、最も一般的なアプローチは、すべてのログとメトリックを Azure Log Analytics ワークスペースに送信し、強力な Log Analytics クエリ言語を使用して、収集されたデータに対して特定の正確な履歴情報チェックを実行することです。

Log Analytics をクエリするために、特別なテーブル AppPlatformLogsForSpring を使用することもできることにも言及しておく価値があります。このテーブルには、Azure Spring Cloud にデプロイされたさまざまなアプリケーションからのすべてのログが含まれています。

ログ追跡

Azure Spring Cloud の 1 月のアップデートによると、次のコマンドを実行することで、ストリーミング ログをリアルタイムでターミナルに送信できるようになりました。

  1. az spring-cloud アプリ ログ--name {アプリ名} --resource-group {リソース グループ} --service {asc-instance} -f  

開発中、この機能は、アプリケーションの動作を検証したり、「本番環境のような環境」で問題を解決したりするのに非常に役立ちます。

監視と警告

https://devblogs.microsoft.com/java/whats-new-in-azure-spring-cloud-jan-update/

Azure Spring Cloud では、1 月のアップデートでアラート ルールを作成する機能も追加されました。ユーザーが次のことを達成するのに役立ちます。

  • アプリケーションから関連するメトリックを抽出して分析します。
  • これらのインジケーターの設定条件に基づいて、アラームなどのアクションがトリガーされます。
  • アラートの実行方法を定義します (警告メールを送信するなど)。

さらに、これらの主要機能の設定は複雑ではありません。

集中構成

クラウドネイティブ アプリケーションに集中的な構成が必要な場合、Spring ユーザーは Spring Cloud Config Server を使用する必要があることがよくあります。 Azure Spring Cloud を使用する場合、Spring Cloud Config Server を自分で構築してデプロイする必要はありません。代わりに、自動デプロイメントを構成するだけで、あとは Azure Spring Cloud によって管理される Spring Cloud Config Server に完全に任せることができます。

完全に管理された Spring Cloud Config Server の構成例

さらに、Spring Cloud Config Server に接続する必要のあるアプリケーションでは、構成は必要ありません。 spring-cloud-starter-config の依存関係を準備するだけで済みます。 Azure Spring Cloud では、すべてのクライアント アプリケーションがデプロイ時に自動的に構成され、上記の完全に管理された Spring Cloud Config Server に安全に接続できるようになります。

サービス検出

アプリケーションは完全に管理されたサービスレジストリに登録されます

サービス検出は集中型構成と非常に似ており、すぐに使用できるサービスを提供します。つまり、完全に管理された Spring Cloud Eureka Server が常にバックグラウンドで実行され、クライアントがサービス レジストリに登録しやすくなります。

同様に、クライアント アプリケーションは、構成なしで上記の Spring Cloud Eureka Server と対話できます。 spring-cloud-starter-netflix-eureka-client 依存関係を含めるだけで済みます。

サービスバインディング

Azure Cosmos DB バインディングの設定

Azure Spring Cloud には、「サービス バインディング」と呼ばれる非常にユニークな機能があります。これにより、アプリケーションは、接続を確立するための資格情報を提供することなく、Azure Cosmos DB、Azure Cache for Redis、Azure Database for MySQL などの Azure クラウド コンポーネントと対話できるようになります。アプリケーションのサービス バインディングを作成すると、Azure Spring Cloud によって、実行時に一致する Azure サービスに接続できるようにするプロパティが自動的に挿入されます。

スケールアップ

Azure ポータルまたは同等の Azure CLI コマンドを使用して、必要に応じて Azure Spring Cloud 上のアプリケーションのリソースを簡単に拡張できます。上図に示すように、「標準」の拡張課金方法を使用できます。つまり、アプリケーションあたりの vCPU の最大数は 4 で、アプリケーションに割り当てられるメモリの最大 GB 数は 8 です。次に、このベースに基づいて垂直拡張を展開できます。

スケールアウト

Azure Spring Cloud でアプリケーションを手動でスケーリングする

同様に、Azure ポータルまたは同等の Azure CLI コマンドを使用して手動で水平スケーリングを実行し、特定の時点に存在するインスタンス レプリカの合計数 (最大 500 個) を指定することもできます。

平均 CPU 使用率が 10 分以上 70% 以上になる場合は、アプリケーションをスケールアウトする必要があります。

さらに興味深いのは、メトリックをリアルタイムで収集して分析する自動プロセスに基づいてアプリケーションをスケーリングすることを選択できることです。 「監視とアラート」セクションで説明したように、任意のメトリックを選択してトリガー条件を設定できます。この条件が満たされると、ユーザー定義の水平スケーリング操作 (たとえば、インスタンスの数を 1 つ増やす) がトリガーされます。

最小、最大、デフォルトの自動スケーリング制限を設定する

上の図に示すように、特定のアプリケーションに対して、インスタンスの最小数、最大数、およびデフォルト数を含めた自動拡張のトリガー メカニズムのセットを設定する必要があります。

可用性

数回クリックするだけで本番環境にデプロイできます

Azure Spring Cloud を使用すると、ダウンタイムを最小限に抑えることが容易になります。まず、「標準」Azure Spring Cloud 層は、「少なくとも 99.9% の可用性」というサービス レベル アグリーメントに準拠しています。第二に、数回クリックするだけでブルー/グリーンデプロイメントを実行できるため、開発者は「本番環境のような」環境で機能を検証でき、エンドユーザーへの影響を最小限に抑え、アップデートをリリースする際のダウンタイムを排除できます。

請求する

Azure Spring Cloud は、スケーラビリティを「経済的に」実現することを基本に、ユーザーのさまざまな実際の使用シナリオに対応するために「従量課金」モデルを採用しています。

「標準」課金モデルの説明

具体的には、基本料金では、ユーザーは 1 時間あたり最大 16 個の vCPU と 32 GB のメモリを使用できます。超過分については時間単位で請求されます。

サービス概要

一般に、Azure Spring Cloud は次のサービスを提供できます。

  • 開発サイクルを短縮し、実稼働環境への展開を容易にします。
  • インフラストラクチャ管理のオーバーヘッドが減ることで、開発者は Kubernetes クラスターではなくソフトウェア アプリケーションに集中できるようになります。
  • SLA と簡単に実装できるブルー/グリーン デプロイメントにより、ダウンタイムを大幅に削減します。
  • ネットワーク管理タスクは、Microsoft の安全なネットワークに完全に委任されます。
  • 弾力性と拡張性に優れたインフラストラクチャと、柔軟なマッチング課金モデルの両方を提供します。

役に立つリソース

Azure Spring Cloud について詳しく知りたい場合は、次のリソースを参照してください。

  • Azure Spring Cloud 公式ドキュメント (https://azure.microsoft.com/en-us/services/spring-cloud/)
  • Azure Spring Cloud トレーニング ドキュメント (https://github.com/microsoft/azure-spring-cloud-training)
  • ジョシュ・ロングとジュリアン・デュボアによる「Bootiful Azure Spring Cloud」(https://www.youtube.com/watch?v=WAuGojnf2lA)

結論は

Azure Spring Cloud は、迅速に構築、展開、管理できるクラウド アプリケーション サービスです。豊富な機能をすぐに楽しむために、多くの労力を費やす必要はありません。現在のアプリケーションが Azure Spring Cloud と同じテクノロジ スタックに依存している場合は、ぜひ試してみる価値があります。

原題: Azure Spring Cloud: 包括的な概要、著者: Domenico Sibilio

[51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください。

<<:  高度なクラウド アプリケーション: Amazon Web Services の AI イノベーションの実践

>>:  VMware、企業のアプリケーション近代化を支援する製品ポートフォリオを強化

推薦する

Baidu の大規模アップデート後にウェブサイトを最適化する方法

皆さんご存知の通り、Baiduはしばらく前に大きなアップデートを行い、多くのウェブサイトのキーワード...

システム「Thanos」 - Java 仮想マシン

[[328776]]コンセプト仮想マシン: 完全なハードウェア システム機能をシミュレートし、完全に...

日本人ホスト(日本人スペース)

日本ホスト(日本スペース):第一に、速度が速い。第二に、登録が不要。第三に、安価。ウェブサイトの構築...

ウェブサイトのログからBaidu Spiderの認識を理解する

皆さんは百度スパイダーをよくご存知だと思いますし、ウェブマスターの皆さんもスパイダーの訪問を歓迎して...

コンテンツこそが王様です。ウェブサイトのコンテンツ戦略をどのように策定すればよいでしょうか?

場合によっては、Web サイトにリンク可能なコンテンツが不足していることがあります。これを解決するに...

百度、360の訴訟に反応「中国のインターネット業界全体のイメージに恥をかかせる」

A5ウェブマスターネットワークは11月27日、百度が本日、奇虎が百度に対して提起した不正競争訴訟の裁...

VPS IP が「不明瞭」になることをまだ心配していますか?格安 VPS マーチャント Hiformance がお手伝いします!

過去2日間、あまりにも多くのIPが「言葉にできない」問題により「言葉にできない」状態になりました。多...

毎年恒例のクラウドコンピューティング技術イベント、テンセントテクノパーク開発者会議が北京で開催されます

12月19日から20日まで、テンセント主催の2020 Techo Park開発者会議が北京で開催され...

企業がパブリッククラウドを導入すべき10の理由

過去 18 か月間、テクノロジーは多くの企業にとって救世主であることが証明されました。パンデミックが...

SEOを最後までやり遂げよう!

ウェブマスターの重要性ウェブマスターになる=お金の無駄遣い+エネルギーの無駄遣い+時間の無駄遣い。し...

Tektoncd Operator を使用した Tekton コンポーネントの管理

Tektoncd Operator は、Kubernetes クラスター上で TektonCD パイ...

百度、モバイル検索の悪質な乗っ取りを取り締まるため、風火アルゴリズム2.0を発表

Baidu Search は、ユーザーのプライバシーを危険にさらしたり、悪意を持ってサイトを乗っ取る...

企業サイトはキーワード密度を合理的に改善することで、最高の最適化効果を達成できます。

かつてはキーワード密度が非常に重要で、ウェブサイトのキーワードランキングに影響を与えるほどだったこと...

クラウドコンピューティングを徹底的に理解する5W分析法

クラウドコンピューティングとは何ですか?クラウドはどのようにコンピューティングを行うのでしょうか?行...