同じ都市の災害復旧におけるEDASマイクロサービスアプリケーションのベストプラクティス

著者:神の魚、Aliクラウドソリューションアーキテクト

序文

 

現在、ほとんどの企業にとってクラウドへの移行が推奨されるITインフラストラクチャ構築ソリューションですが、クラウドには依然としていくつかの不確実な要因(コンピューター室のハードウェア障害、ネットワーク障害、ネットワーク/停電、人的エラー)があり、主要なクラウドベンダーにつながっています。障害は毎年さまざまなデータセンターで発生するため、耐災害性を備えたビジネスアプリケーションを構築する必要があります。パブリッククラウドのディザスタリカバリソリューションは、同じ都市でのデュアルアクティブ、クロスリージョンのディザスタリカバリ、さまざまな場所での複数のアクティブなどのディザスタリカバリシナリオをカバーします。必要なのは、侵入性の少ない、またはアプリケーションへの侵入性の少ないディザスタリカバリソリューションです。透過的ですが、高い可用性を保証できます。都市内アクティブ-アクティブは、間違いなく推奨される災害耐性ソリューションです。ほとんどのビジネスアプリケーションは、ほとんどの利用できない障害を回避できます。都市内のアクティブ-アクティブを達成する限り、データセンターの

 

このプラクティスは、同じ都市でのデュアルアクティブ災害耐性の機能を使用して、すべての人が効率的かつコスト効率よく独自のビジネスアプリケーションを実現できるようにすることです。この記事を通じて、EDASに基づく都市内のデュアルアクティブディザスタリカバリを効率的に実装できます。これらのディザスタリカバリシナリオを実現するには、他のAli製品が必要です。対応するソリューションも紹介されます。次のアーキテクチャ図を参照してください。

 

image.png

 

ディザスタリカバリを必要とする現在の主流のアーキテクチャを考慮して、すべてがマイクロサービスアーキテクチャに分割されており、マイクロサービスアーキテクチャ自体も、より強力なディザスタリカバリと高可用性機能を備えたアーキテクチャです。マイクロサービスアーキテクチャは通常、ゲートウェイ(統合アクセスレイヤー)、RPCフレームワーク(Dubbo、Spring Cloud)、メッセージ(MQ)、分散データベース、キャッシュ、その他のコアソフトウェアで構成されます。EDASを使用すると、入力トラフィックを効率的に削減でき、RPCルーティングを実現できます。実現。耐災害性、マルチゾーン展開、およびその他の機能については、次の図を参照してください。

 

image.png

 

プログラムの主な製品の紹介

 

EDAS

Enterprise Distributed Application Service(EDAS)は、アプリケーションライフサイクルの管理と監視のためのワンストップPaaSプラットフォームです。Kubernetes/ ECSでのデプロイをサポートし、侵入なしでJava / Go / Python / PHP /.NetCoreをサポートします。言語アプリケーションのリリースと操作およびサービス管理、Javaは過去5年間でSpringCloudとApacheDubboのすべてのバージョンをサポートし、多言語アプリケーションはワンクリックでServiceMeshを開きます。

クラウドDNS

クラウドDNS(ドメインネームシステム、略してDNS)安全、高速、安定、信頼性の高い信頼できるDNS解決管理サービス。Alibaba Cloud DNSは、管理が容易で識別可能なドメイン名を、企業や開発者の相互接続通信にコンピューターが使用するデジタルIPアドレスに変換します。これにより、ユーザーのアクセスを対応するWebサイトまたはアプリケーションサーバーにルーティングします。

負荷分散SLB

負荷分散SLB(Server Load Balancer)は、トラフィックをオンデマンドで分散するサービスです。トラフィックをさまざまなバックエンドサービスに分散することで、アプリケーションシステムのサービススループット容量を拡張し、システムの単一の障害ポイントを排除して可用性を向上させることができます。アプリケーションシステムの。

RDS用のApsaraDB

Alibaba Cloud Relational Database Service(RDS)は、安定性があり、信頼性が高く、弾力的にスケーラブルなオンラインデータベースサービスです。RDSは、Alibaba Cloud分散ファイルシステムとSSDディスクの高性能ストレージに基づいており、MySQL、SQL Server、PostgreSQL、その他のエンジンをサポートし、耐災害性、バックアップ、リカバリ、モニタリング、移行などのソリューションの完全なセットを完全に提供します。データベースの運用と保守の問題を解決します。

 

同じ都市の災害復旧のすべての層のためのソリューション

 

アプリケーションのマルチゾーン展開

EDASを使用してアプリケーションをデプロイすると、アプリケーションノードをさまざまなアベイラビリティーゾーンにすばやくデプロイできます。以下は、リソースをホストする2つの方法であるECSとK8Sからの紹介です。

ECSクラスターの展開

異なるアベイラビリティーゾーンのECSをEDASにインポートし、それらを同じクラスターに配置して、アプリケーションリストでアプリケーションを作成することを選択します。

 

image.png

 

[次へ]をクリックして、クラスター内のさまざまなアベイラビリティーゾーンにあるECSノードを選択し、アプリケーションの作成を完了します。さまざまなアベイラビリティーゾーンにノードをデプロイする機能を完了できます。  

 

image.png

 

K8sクラスターのデプロイ

作成したK8sクラスター(ノードのマルチアベイラビリティーゾーン)をEDASにインポートします。アプリケーションを作成するときは、アプリケーションの詳細設定で、マルチゾーンのデプロイを選択し、アプリケーションの作成を完了します。つまり、ノードをさまざまなアベイラビリティーでデプロイする機能です。ゾーンを完了することができます。

 

image.png

 

高可用性トラフィックアクセスレイヤー

EDASによって展開されたアプリケーションは、ディザスタリカバリのニーズを満たすために複数のSLBを直接マウントでき、SLB独自のディザスタリカバリメカニズムに依存しません(SLBスイッチングロジックは、全体的な電力など、メインのアベイラビリティーゾーンが全体として利用できない場合にのみ発生します)コンピュータルームの障害、およびコンピュータルームのエクスポート光ケーブル。ロードバランサは中断後などにスタンバイアベイラビリティーゾーンに切り替わります。これにより、ユーザーはロードバランシングインスタンスとEDASアプリケーションセクションを複数で制御、展開できます。アベイラビリティーゾーンまたはリージョン内の複数のリージョン、次にクラウド解決DNSを使用してアクセスするスケジュールを設定するには:

 

image.png

 

最初のステップでマルチゾーンにデプロイされたアプリケーションリストをクリックして、特定のアプリケーションの概要メニューページに入り、アクセス方法を使用してエントリアプリケーション(ゲートウェイ)の複数のSLBを構成します。

 

image.png

 

グローバルトラフィック管理を使用して柔軟なDNS解決スキームを構築し、ヘルスチェックの結果に基づいて上記で作成したSLBをグローバルトラフィックアドレスプールに追加することにより、DNS災害耐性トラフィックスイッチングスキームを構成します。これにより、使用可能なゾーンが利用不可別の利用可能なアベイラビリティーゾーンSLBに対して、インテリジェントアクセスレイヤートラフィックの災害耐性処理を実現します。

RPCレベルでの高可用性

EDASは、DubboやSpring CloudなどのさまざまなマイクロサービスRPCフレームワークをサポートします。ユーザーが上記のRPCフレームワークを使用する場合、デプロイされたマルチゾーンアプリケーションが使用できなくなったときに、EDASマイクロサービスガバナンスの異常な削除機能を使用できます。ノードを自動的に削除します。オフラインの使用不可アベイラビリティーゾーンで、アベイラビリティーゾーンネットワークおよびその他の障害が復元された後、ノードをアプリケーションクラスターに自動的に追加して、インテリジェントな障害処理を実現します。

 

image.png

 

上の図では、アプリケーションAによって呼び出されたアプリケーションB、アプリケーションC、およびアプリケーションDはすべてポリシーによって制御されています。Aによって呼び出されたアプリケーションの対応するインスタンスのエラー率が下限に達すると、異常なインスタンスは削除されます。 Aによって呼び出されなくなりました(検出が復元された後に再度追加されました。Aによって呼び出されました)。

 

最初にマイクロサービスガバナンスに入り、ここで選択したSpring Cloudなどの対応するRPCフレームワークを選択し、外れ値の削除メニューを選択して、次の手順に従って構成します。

 

image.png

 

image.png

 

このうち、QPSの下限は、EDASアプリケーションの観測能力に応じて構成され、下限は通常のQPSに応じて構成されます。エラー率は、ディザスタリカバリシナリオで10%から50%の範囲で構成されます。クラスターの可用性を確保し、アップストリームおよびダウンストリームのアバランシェを引き起こさないように、50%未満のインスタンスを削除します。リカバリ時間と累積検出時間の両方をデフォルト値に設定して、アベイラビリティーゾーンの障害が復元された後にノードが自動的に復元されるようにすることができます。

 

上記の外れ値除去機能に加えて、EDASは、展開されたプロバイダーアプリケーションの同じコンピュータールームで優先コールを有効にする機能も提供します。アベイラビリティーゾーンに障害が発生した場合、同じコンピュータールームの優先コールが有効になっていると、クロスは発生しません。 -コンピュータルームの呼び出しが発生し、RPC障害の瞬間が発生することを保証するために、トラフィックのレベルは、ノードトラフィックの再処理または分離のために、異常値の除去やその他の耐災害性機能を使用する必要はありません。気づいていません。

マイクロサービスインフラストラクチャの高可用性

EDASは、アプリケーションをデプロイするときに、レジストリや構成センターなど、対応するマイクロサービスインフラストラクチャをデフォルトですでに提供しています。お客様に公開されていないこれらのマイクロサービスコンポーネントは、都市内の耐災害性を実現しています。アベイラビリティーゾーンで利用できない場合でも、サービスの可用性を引き続き保証できるため、お客様の耐災害性コンポーネントの運用と保守の複雑さが大幅に軽減されます。 。

データベースレベルで高可用性

データの信頼性のために、アクティブ-アクティブ処理のために同じ都市でアプリケーション展開構造とRPCレベルのトラフィックを完了した後、RDS MySQLは高可用性バージョンのインスタンスを提供し、1つのアクティブと1つのスタンバイを備えたデュアルシステムホットスタンバイアーキテクチャを採用します。これは、ユーザーシナリオの80%以上に適しています。プライマリノードに障害が発生すると、プライマリノードとスタンバイノードは数秒でスイッチオーバーを完了し、スイッチングプロセス全体がアプリケーションに対して透過的になります。スタンバイノードに障害が発生すると、RDSは新しいスタンバイノードを自動的に作成して高可用性を確保します。インスタンスの作成時に高可用性バージョンを選択し、デプロイメントプランのマルチゾーンデプロイメントを選択します。

 

image.png

 

注:既存の高可用性バージョンインスタンスが単一可用性ゾーンである場合は、「可用性ゾーンの移行」を参照して、単一可用性ゾーンを高可用性ゾーンに転送できます。

 

データの信頼性に関するより強力なビジネスシナリオがある場合、RDSは、ユーザーがデータの信頼性を向上させるのに役立つリモートディザスタリカバリインスタンスを提供します。このソリューションは、データ伝送サービス製品(DTS)に依存して、プライマリインスタンスとリモートディザスタリカバリインスタンス間のリアルタイム同期を実現します。 。同時に、新しいディザスタリカバリインスタンスを購入する必要があります。このソリューションを使用するには、一定のコストが必要です。具体的な操作手順については、リモートディザスタリカバリインスタンスを参照してください

 

image.png

 

マスターインスタンスとディザスタリカバリインスタンスの両方が、マスターとバックアップの高可用性アーキテクチャを構築します。マスターインスタンスが配置されているエリアで突然の自然災害が発生した場合、マスターインスタンス(マスター)もバックアップインスタンス(スレーブ)もありません。接続、リモートディザスタリカバリインスタンスの切り替えが可能メインインスタンスとして、アプリケーション構成管理製品使用してデータベース接続アドレスをアプリケーション側にプッシュし、EDASを介して関連するアプリケーションを再起動して、のビジネスアクセスをすばやく復元できます。アプリケーション。

キャッシュレベルで高可用性

このソリューションで説明するベストプラクティスは、最も広範なアプリケーションシナリオを持つクラウドデータベースRedisに焦点を当てています。クラウドデータベースRedis製品が作成されると、デフォルトで2つのコンピュータールームに同じ都市の耐災害性アーキテクチャが提供されます。クラウドデータベースRedisバージョンインスタンス、同じ都市をサポートすることを選択します。以下に示すように、災害復旧のアベイラビリティーゾーン。

 

image.png

 

マルチゾーンインスタンスを作成する場合、スタンバイコンピュータールームはメインコンピュータールームと同じ仕様のレプリカインスタンスを作成し、メインコンピュータールームとスタンバイコンピュータールームのインスタンスデータは専用のレプリケーションチャネルを介して同期されます。メインコンピュータールームで電源またはネットワークの問題が発生すると、レプリカインスタンスがマスターインスタンスにアップグレードされ、基になるシステムが自動的に要求をスタンバイコンピュータールームにルーティングしてフェイルオーバーを実現します。

結びの言葉

上記のソリューションの後、Alibaba Cloud EDASおよびその他の関連製品を使用して、都市全体のアクティブ-アクティブディザスタリカバリビジネスアプリケーションを迅速かつ低コストで構築し、アベイラビリティーゾーンが利用できないときにオンラインサービスを迅速に切り替えることができます。ビジネスの持続可能性を確保するこのソリューションは、パブリッククラウドユーザーの90%以上のディザスタリカバリのニーズを満たすことができます。

 

都市内のアクティブ-アクティブディザスタリカバリに加えて、Alibaba Cloudは、Alibaba eコマース環境から進化したマルチアクティブディザスタリカバリアーキテクチャソリューションも提供します。柔軟なルールスケジューリング、クロスドメインおよびクロスクラウドの管理と制御に基づいて、データ保護およびその他の機能により、障害シナリオが保証されます。ビジネスは迅速に回復し、高い可用性と安定性に対するより厳しい要件を持つ顧客に対応します。この必要性がある顧客は、公式ドキュメント「マルチアクティビティディザスタリカバリの概要」を参照できます

おすすめ

転載: blog.csdn.net/weixin_39860915/article/details/113697602