著者: 禅とコンピュータープログラミングの芸術
1 はじめに
大規模分散システムは巨大かつ複雑なシステムであり、そのアーキテクチャ設計の過程で、エンジニアはさまざまな問題やニーズを解決するために知識、経験、スキルを継続的に蓄積する必要があります。時代の発展に伴い、大規模分散システムはますます複雑化し、より多くの人が関わるようになり、アーキテクトの独立性がますます困難になってきており、分散システムをより深く理解し、管理するためには、この記事では、分散システムのアーキテクチャ パターンと原則について高レベルから説明し、実際のケースと組み合わせてアーキテクチャ上の提案と教訓をいくつか示します。この記事は、比較的体系的かつ包括的な理解を提供し、アーキテクトが分散システムの関連する理論とテクノロジを迅速に理解して適用し、システム アーキテクチャのレベルと機能を向上できるようにすることを目的としています。
2. 主な内容
2.1. 背景の紹介
インターネット、モバイル インターネット、モノのインターネットなどの新興テクノロジーの継続的な進歩に伴い、Web サイトは数千世帯を接続するプラットフォームになりつつあり、その過程で Web サイトのアーキテクチャも一連の変化を遂げてきました。垂直アーキテクチャは徐々にサービス中心の SOA アーキテクチャに進化し、クラウド コンピューティングも徐々に発展し、クラウド アーキテクチャ モデルが主流になりつつあります。これらのアーキテクチャ パターンの進化により、新たな課題がもたらされました。それは、スケーラブルで耐障害性があり、優れたパフォーマンスを備えた大規模な分散システムをどのように構築するかということです。多数のユーザーに効果的にサービスを提供し、ユーザーのエクスペリエンスの質を確保するにはどうすればよいでしょうか? さらに、分散システムは、複雑なビジネス ロジックや分散トランザクション処理など、多くの課題にも直面しています。したがって、弾力性、拡張性、信頼性、高可用性などの特性を備えた大規模分散システムをどのように構築するかが、多くのアーキテクトの共通の関心事となっています。
2.2. 中心となる概念と用語
まず、いくつかの中心となる概念と用語を明確にする必要があります。
① 分散コンピューティング モデル (分散コンピューティング モデル): 分散コンピューティング モデルは、コンピューター ネットワークに基づく並列コンピューティング モデルであり、複数の独立しているが相互接続されたコンピューター ノードが連携して動作することを可能にします。