マイクロサービス アーキテクチャは、現在ソフトウェア エンジニアリング コミュニティで広く採用されている手法です。このアーキテクチャ スタイルを採用する組織は、ビジネス ロジックの実装の複雑さに加えて、分散障害の複雑さにも対処する必要があります。 分散コンピューティングの誤りは十分に文書化されていますが、見つけるのは困難です。その結果、大規模で信頼性の高い分散システム アーキテクチャを構築することは困難な問題となります。結果として、非分散システムでは適切に見えるコードでも、ネットワーク相互作用の複雑さを Web に導入すると大きな問題になる可能性があります。 数年にわたって本番コードで障害モードに遭遇し、さまざまなコードでその原因を突き止めてきた結果、私は (他の多くの人と同様に) より一般的な障害モードのいくつかを特定しました。これらは企業や言語スタックによって若干異なりますが (社内のインフラストラクチャとツールの成熟度によって異なります)、これらの 1 つ以上が運用上の問題の原因となることがよくあります。 ここでは、分散環境でのシステム間通信に関連するコードをレビューするために使用する基本的なチェックリストとして機能するコード レビュー ガイドラインをいくつか示します。これらの方法はすべて常に当てはまるわけではありませんが、いずれも非常に基本的な質問なので、これを機械的にリスト化し、不足している項目にマークを付けてさらに議論することは、便利で安心できると思います。そういう意味では、これはおそらく常に従いたくなるようなばかげたリストです。 リモート システムを呼び出すときに、リモート システムに障害が発生するとどうなりますか? どれだけメンテナンスを考慮してシステムを設計しても、いつかは故障します。これは、本番環境でソフトウェアを実行する上での事実です。バグ、インフラストラクチャの問題、トラフィックの急増、無視された緩やかな減少などにより失敗する可能性がありますが、失敗しました。呼び出し元がこの障害をどのように処理するかによって、アーキテクチャ全体の回復力と堅牢性が決まります。
リモート システムの速度が低下するとどうなりますか? これは、リモート システムが正常に動作しているかどうかわからないため、完全な障害よりも危険です。この状況に対処するには、常に次の点を確認する必要があります。 リモート システム コールには常にタイムアウトを設定します。これには、リモート API コール、イベント パブリッシング、およびデータベース コールのタイムアウトが含まれます。私はこの単純な欠陥を非常に多くのコードで発見したので、衝撃的ではあるが、予想外でもない。何らかの理由でリモート システムが応答しなくなった場合に待機してリソースを無駄にしないように、呼び出し内のすべてのリモート システムに対して制限された適切なタイムアウトが設定されていることを確認します。
システムを構築するとき、他の人は
一般的なガイドライン
これらのガイドラインが、分散システム コードにおける最も一般的なバグの削減に役立つことを願っています。簡単に適用できて非常に効果的な他の考慮事項があると思われる場合は、ぜひお聞かせください。ここに追加できます。 |
>>: クラウド コンピューティング: ビジネスを破滅させる可能性のある 7 つの致命的なミス
Racknerd は新たなプロモーション攻勢を開始しました。2 つの特別フラッシュセール格安 VPS...
Google、Baidu、360 Search、Sogou などの検索エンジンのホームページを比較し...
いつもTeng Designをご愛顧いただき、誠にありがとうございます。今日は、誰もが疑問に思うトピ...
ユーザーによっては、調和化などさまざまな理由で VPS の IPv4 を変更する必要がある場合があり...
123systems からプロモーション メールが届きました。同社のダラス データ センターは在庫切...
分散ロックを実装する一般的な方法は 3 つあります。データベースの楽観的ロック。 Redis に基づ...
多くの人は日常業務において、さまざまな文書を保存するためにオンラインコラボレーションプラットフォーム...
当社のマーケティング チャネルは、ユーザーが多い場所にあります。モバイルインターネットの断片化により...
組織がより多くのワークロードをパブリック クラウドに移行し、コストを削減して俊敏性と柔軟性を高めるた...
クラウド コンピューティングがこれらの組織が期待したメリットをもたらさなかった理由は、組織がこの問題...
profitserver のシンガポール VPS をご紹介します。KVM 仮想化、純粋な SSD、1...
1. 検索エンジンの発展方向1. 検索のパーソナライゼーションGoogle、Baidu、Yahooな...
クラウド コンピューティングはデジタル変革の推奨モデルとなり、CIO はアプリケーションをパブリック...
ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス著者: Box Fung...
ICBC迅速な支払いは、アリペイと商業銀行システムとの全面的な対立を引き起こすドミノ倒しとなった。 ...