マイクロサービス アーキテクチャは、現在ソフトウェア エンジニアリング コミュニティで広く採用されている手法です。このアーキテクチャ スタイルを採用する組織は、ビジネス ロジックの実装の複雑さに加えて、分散障害の複雑さにも対処する必要があります。 分散コンピューティングの誤りは十分に文書化されていますが、見つけるのは困難です。その結果、大規模で信頼性の高い分散システム アーキテクチャを構築することは困難な問題となります。結果として、非分散システムでは適切に見えるコードでも、ネットワーク相互作用の複雑さを Web に導入すると大きな問題になる可能性があります。 数年にわたって本番コードで障害モードに遭遇し、さまざまなコードでその原因を突き止めてきた結果、私は (他の多くの人と同様に) より一般的な障害モードのいくつかを特定しました。これらは企業や言語スタックによって若干異なりますが (社内のインフラストラクチャとツールの成熟度によって異なります)、これらの 1 つ以上が運用上の問題の原因となることがよくあります。 ここでは、分散環境でのシステム間通信に関連するコードをレビューするために使用する基本的なチェックリストとして機能するコード レビュー ガイドラインをいくつか示します。これらの方法はすべて常に当てはまるわけではありませんが、いずれも非常に基本的な質問なので、これを機械的にリスト化し、不足している項目にマークを付けてさらに議論することは、便利で安心できると思います。そういう意味では、これはおそらく常に従いたくなるようなばかげたリストです。 リモート システムを呼び出すときに、リモート システムに障害が発生するとどうなりますか? どれだけメンテナンスを考慮してシステムを設計しても、いつかは故障します。これは、本番環境でソフトウェアを実行する上での事実です。バグ、インフラストラクチャの問題、トラフィックの急増、無視された緩やかな減少などにより失敗する可能性がありますが、失敗しました。呼び出し元がこの障害をどのように処理するかによって、アーキテクチャ全体の回復力と堅牢性が決まります。
リモート システムの速度が低下するとどうなりますか? これは、リモート システムが正常に動作しているかどうかわからないため、完全な障害よりも危険です。この状況に対処するには、常に次の点を確認する必要があります。 リモート システム コールには常にタイムアウトを設定します。これには、リモート API コール、イベント パブリッシング、およびデータベース コールのタイムアウトが含まれます。私はこの単純な欠陥を非常に多くのコードで発見したので、衝撃的ではあるが、予想外でもない。何らかの理由でリモート システムが応答しなくなった場合に待機してリソースを無駄にしないように、呼び出し内のすべてのリモート システムに対して制限された適切なタイムアウトが設定されていることを確認します。
システムを構築するとき、他の人は
一般的なガイドライン
これらのガイドラインが、分散システム コードにおける最も一般的なバグの削減に役立つことを願っています。簡単に適用できて非常に効果的な他の考慮事項があると思われる場合は、ぜひお聞かせください。ここに追加できます。 |
>>: クラウド コンピューティング: ビジネスを破滅させる可能性のある 7 つの致命的なミス
背景OpenTelemetry プローブOpenTelemetry (略して Otel、最新バージョ...
シュナイダーエレクトリックは2023年半ばに、エネルギー管理と自動化の専門知識をAIモデルに統合し、...
「外部リンクが王様、コンテンツが王様」という最適化の時代に別れを告げ、多くのウェブマスターは百度の相...
最初にウェブサイトを構築したとき、SEOについて何も知りませんでした。トラフィックを獲得するために、...
SEO の最高レベルは、ユーザー エクスペリエンスの価値を最大化することです。私は 4 年間 SEO...
Weibo と WeChat の台頭により、何百万人もの草の根インフルエンサーが誕生し、その中には何...
[[212281]] 現在の国家政策による支援から、企業による業務応用の推進まで、人工知能がいかに...
クラウド コンピューティングは、データ駆動型開発をサポートするインフラストラクチャになりました。今日...
ウェブサイトの SEO 最適化戦略を策定する際に、まず最初に明確にする必要があるのは、このウェブサイ...
我が国のインターネットの発展に伴い、インターネットは私たちの日常生活に欠かせないものとなり、オンライ...
王世凡は、一人で働いていた頃から、今では小さなチームで働くようになり、自分が熟知しているいくつかの ...
マイクロサービスと分散の関係と違いは何ですか?分散とは、さまざまなマシンをさまざまな場所に分散させ、...
serverwalaは2017年に設立されたインド企業です。主に世界50ヶ所のデータセンターでVPS...
Baidu の登録日に問題があると聞いていましたが、実際に見たことはありませんでした。このようなこと...
ウェブサイトの外部リンクを最適化する方法は無数にありますが、最も簡単な最適化方法は「フォーラム署名」...