サーバーレス環境でマイクロサービスを設計するにはどうすればよいでしょうか?

サーバーレス環境でマイクロサービスを設計するにはどうすればよいでしょうか?

著者 |ラジャ・サラヴァナン

イーサン・サーバーレスが編集

これは、デジタル化と近代化のアップグレードのプロセスにある企業にとって、ますます人気の高いパラダイムになっています。国内の Alibaba Cloud、Tencent Cloud、Huawei Cloud、あるいは Amazon Web Services や Microsoft などの海外のクラウド コンピューティング ベンダーは、いずれもサーバーレス コンピューティングの分野に多額の投資を行っています。サーバーレスはマイクロアーキテクチャを提供するため、エンドカスタマーはサーバーサービスを展開、構成、管理する必要がなく、コードの実行に必要なサーバーサービスはすべてクラウドプラットフォームによって提供されるため、企業の柔軟性が向上し、運用経費とコストが削減されます。しかし、それに伴う問題は、サーバーレス アーキテクチャの高度な分散性により、開発者がアプリケーションの設計と開発方法を再考する必要があることです。この記事では、読者向けにいくつかのベスト プラクティス デザイン パターンを紹介します。

ご存知のとおり、サーバーレスはマイクロサービス ベースのアーキテクチャにとって自然な選択です。 AWS ベースのサーバーレスアプリケーションを例に挙げてみましょう。これらは、設計上ステートレスかつ一時的な AWS Lambda 関数に依存しています。 Lambda 関数は、他のサービスによって発行されたイベントに応答して小さなコードを実行するように設計されています。 Lambda は、メッセージキュー (Amazon Simple Queue Service)、API (Amazon API Gateway)、イベントストリーム (Amazon Kinesis) など、分散システムで一般的なパターンを実装するために使用できるさまざまなマネージドサービスとも統合されます。これにより、マイクロサービスの構築における問題点を最小限に抑えることができます。

ワークロードに適した設計パターンを選択する

1. ストラングラー パターンストラングラー パターンを使用すると、開発者はモノリシック コンポーネントを完全にシャットダウンしたり、一度に置き換えたりするのではなく、モノリシック コンポーネントをマイクロサービス (1 つ以上の Lambda 関数で実装可能) に徐々に置き換えることができます。

ストラングラーモード

このパターンでは、ストラングラー (API ゲートウェイなど) を使用して、レガシー システムへの受信リクエストを受け入れます。その後、レガシー アプリケーションまたは新しいサーバーレス アプリケーションのいずれかにルーティングされます。クライアントはストラングラーとのみ対話するため、バックエンド サービスが影響を受けていることに気づきません。レガシー システム全体がリファクタリングされ、すべてのトラフィックが新しいアプリケーションにルーティングされると、以前のシステムは安全に廃止できます。

2. アグリゲーターパターン

マイクロサービス ベースのアーキテクチャでは、クライアントは操作を実行するために複数のバックエンド サービスを呼び出す必要があることがよくあります。これらの呼び出しはネットワーク経由で行われるため、特に帯域幅が制限されている場合、クライアントとマイクロサービス間の頻繁な通信によってアプリケーションの遅延が発生する可能性があります。

アグリゲータパターン

Aggregator パターンは、単一の Lambda 関数を使用してすべてのクライアント要求を受け入れることにより、クライアントが実行する必要がある呼び出しの数を削減します。次に、Lambda 関数はリクエストを適切なマイクロサービスとサードパーティ API に転送し、結果を集約して単一の応答をクライアントに返します。

3. ステート マシン パターンアプリケーションを構築する場合、ビジネス ワークフローは非常に複雑になる傾向があります。 AWS には、複数のマイクロサービスが関与する複雑なワークフローを調整するために使用できる便利な「ステップ」機能があります。 「ステップ」機能には、定型コードを記述しなくても、状態管理、分岐、エラー処理、再試行機能が組み込まれています。

ステートマシンパターン

4. サガパターン

マイクロサービス ベースのアプリケーションでは、通常、各マイクロサービスには独自のデータベースがあり、そのデータベースには他のマイクロサービスのデータベースのデータと密接に関連するデータが含まれています。 Saga パターンは、相互接続されたマイクロサービス間の一連のローカル トランザクションを調整することで、データの一貫性を保証します。マイクロサービスがローカル トランザクションを実行すると、チェーン内の次のサービスがトリガーされ、トランザクションが実行されます。このプロセス中にトランザクションが失敗した場合、一連の補正トランザクションが開始され、以前のトランザクションで行われた変更がロールバックされます。

サガパターン

Saga パターンは、振り付けまたはオーケストレーションを通じて実装できます。振り付けモデルでは、各サービスが次のサービスの実行をトリガーするイベントを公開します。オーケストレーションでは、トランザクション チェーン全体が中央コーディネーターによって管理されます。

5. サーキットブレーカーモード

複数のサービスがリクエストの処理に関与する分散システムでは、サービス障害の処理方法を考えることが重要です。ネットワーク遅延などの一部の問題は断続的に発生するため、アップストリーム サービスを再呼び出しするだけで自動的に解決する場合があります。ただし、より深刻な問題や停止には積極的な介入が必要であり、解決に必要な時間コストは不確実です。このような状況で継続的に再試行すると、重要なリソースが消費され、同じリソース プールに依存する他のサービスが利用できなくなる可能性があり、壊滅的な連鎖障害につながる可能性があります。

サーキットブレーカーモード

サーキット ブレーカー パターンでは、キー値ストアを使用してリクエストの失敗とサーキット ブレーカーの状態を追跡し、Lambda 関数を使用して失敗回数に基づいて影響を受けるサービスへの後続の呼び出しが必要かどうかを判断することで、システムにフォールト トレランスを組み込むことができます。

要約する

クラウド コンピューティングが静かに私たちの生活に影響を与え、変化をもたらしていることは間違いありません。ビジネスでも科学研究でも、サーバーレス コンピューティングはクラウド コンピューティングの主流の開発方向の 1 つになりつつあります。開発者にとって、サーバーレスのデプロイメントは比較的シンプルですが、前提として、ベストプラクティスのパターンから学び、設計して不要なリソースの無駄を減らす必要があります。

元のリンク:

https://medium.com/@raja.sk.saravanan/architect-your-microservices-in-serverless-with-right-design-pattern-60ebe674968

<<:  マイクロコンテナは大型コンテナよりも優れていますか?

>>:  VMware と IBM が連携し、規制産業の顧客向けにハイブリッド クラウド環境を最新化する新しいアプローチを提供

推薦する

高品質なフレンドリーリンクの3つの評価基準

どの業界にも独自の基準があり、フレンドリーリンク業界でも同様です。高品質のフレンドリーリンクは、ウェ...

timeweb: 老舗ロシアVPS業者、中国語ページとWeChat決済を追加、月額5元

ロシアの業者であるtimewebは13年以上運営されており、今でも非常に有名で、ロシアのVPS業界で...

信頼性の高い IPXCORE - 256MB メモリ KVM/SSD キャッシュ/月額 3 ドル/ニューヨーク

ipxcore がついに KVM を正式にリリースしました。最初のデータセンターはニューヨーク州バッ...

NetEase Cloud Computingのブランド戦略のアップグレード:あらゆる組織に独自のデジタル競争力を構築

知性の波が押し寄せています。デジタル化とインテリジェンスは人々の仕事や生活を変えるだけでなく、業界に...

モバイルインターネットに検索エンジンは本当に必要ですか?

厳密に言えば、検索エンジンとは、特定の戦略に基づいて特定のコンピュータプログラムを使用してインターネ...

収益性の高いQQスペース(セルフメディア)を作成するための6つのステップ

前の記事では、目立たないQQスペースがどのようにして月に1万元以上を稼ぐのか?この記事では、簡単なQ...

ウェブデザイナー必読:インターネット企業のウェブサイト制作プロセス

多くのウェブデザインの専門家は、以前にインターネット企業で働いた経験があり、インターネット企業の給料...

マルチクラウド戦略を採用する3つのメリット

クラウド コンピューティング テクノロジの使用が増加するにつれて、組織は全体的なコストを削減し、サー...

2020年に適切な産業用IoTアプリケーションを選択する方法

2015年、当時Google会長だったエリック・シュミットはこう語った。「インターネットは消え去り、...

To B製品を宣伝するためのチャネル、方法、テクニックについて話す

これまでB商品のプロモーション方法についてはあまり話したことがなかったのですが、最近パソコンレンタル...

百度の検索ルールが再び調整:インデックスボリューム急落の犯人を捕まえろ

最近、多くの大規模ウェブサイトのウェブマスターから、ウェブサイトのインデックス数が急激に減少したとい...

tranzmedia-7 USD/OpenStack クラウド/フランスの高防御 VPS/無制限トラフィック

tranzmediaはインドのIT企業で、2005年に事業を開始したと言われていますが、具体的な情報...

yesuphost-カナダの苦情防止サーバー/超大規模トラフィック(最小 100T)/DDoS 保護/月額 29 ドル

yesuphost.com を紹介します。カナダに 4,000 平方フィート以上の面積を持つ独自のコ...

SEO 担当者が知っておくべきウェブサイト最適化に関する 100 の質問と回答 (パート 9)

SEOに取り組む過程で、誰もが何らかの問題に遭遇します。誰もがこれらの一般的なSEOの問題をより明確...