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、企業のアプリケーション近代化を支援する製品ポートフォリオを強化

推薦する

実装の難しさを解決し、テンセントクラウドはクラウドネイティブプロセスを全速力で進めています

[51CTO.comより引用] 1日あたり100億回以上のAPI呼び出し、100万人以上の開発者、5...

口コミマーケティング: オンラインで良い評判を築くには?

口コミマーケティングも非常に大きなテーマです。オンラインマーケティングやニュースマーケティングとは異...

あなたのウェブサイトにとってどのようなバックリンクが役立つかを簡単に分析します

SEO を始めた人は誰でも、内部リンクが重要であり、外部リンクが最も重要であるというこの言葉を耳にす...

企業のマーケティング部門はなぜ新製品の宣伝を継続しなければならないのでしょうか?

伝統的なマーケティングには、製品、価格、プロモーション、場所の 4 つの P があります。これらの ...

ウェブサイトの内部リンク技術を使用してウェブサイトの権威を迅速に向上させる方法

SEO 最適化ウェブマスターの観点から見ると、ウェブサイトの重みはサイトにとって非常に重要です。重み...

有名なコミュニティ「デジタルテール」が5日間攻撃を受けており、ウェブサイトはまだ復旧していない

国内の有名なデジタル愛好家コミュニティであるDigital Tailが12月19日から攻撃を受け、ウ...

Kubernetes の使用 3 年間で何を学んだか?

2017 年に、私たちは最初の Kubernetes クラスター バージョン 1.9.4 を構築しま...

データを保存するのに最適な場所はどこですか? AIはユーザーにパブリッククラウドの使用を強制する

特にインテリジェント テクノロジーの需要が高い業界では、クラウド上で AI アプリケーションがますま...

作成した外部リンクは実際に当社の Web サイトを指していますか?

私は、時間をかけて Xenu ツールを使用して、自分のフォーラムのエラー リンク ページを確認するこ...

2013 年の貧弱なウェブマスターのウェブサイト運営のアイデア

ウェブサイトの運用は、すべてのウェブマスターが常に考え、探求しているウェブサイト構築の問題です。最適...

weloveservers 1g メモリ/50G ハードディスク/4 USD/月

weloveservers は非常に新しい VPS プロバイダーです。現在、参入要件は低く、誰でも ...

Robots.txt が 15 日間インデックスをブロックした後のさまざまな検索エンジンのパフォーマンス

昨年10月に婦人服のサイトを作ったのですが、収益が芳しくなかったので、サイトを放棄してブログや日記を...

仮想マシンを構築し、マイクロサービスをローカルにデプロイする方法を段階的に説明します

[[330380]]これまで仮想マシンをたくさん扱ったことがありますが、それを要約することはほとんど...

bluevm - 強力な構成サーバー - 特別価格!

Bluevm は、ほぼ 2 か月間、誰の実装からも消え去っています。512M メモリの KVM VP...

ウェブサイトの最適化SEOの考え方の重要性について話す

ウェブサイトの SEO 最適化のプロセスでは、優れた SEO アイデアは、より多くのテクニックよりも...