Conceitos essenciais
大規模なクラウドベースアプリケーションを常時利用可能な状態に保つための、ロードバランシング、コンテンツ配信、DNS管理、データ一貫性と複製、キャッシュなどの重要な設計上の考慮事項と戦略的な解決策
Resumo
本記事では、Chase.comのような大規模なクラウドベースアプリケーションを常時利用可能な状態に保つための設計上の課題と戦略的な解決策について説明しています。
主なポイントは以下の通りです:
- ロードバランシング: 単一リージョンでの処理、ステートレスサービス、水平スケーリング、リージョン間での同一サービスの提供
- コンテンツ配信: CDNを使ったエッジでのキャッシュ、オリジンサーバの保護
- DNS管理: グローバルおよびリージョナルなDNSサーバの活用、ヘルスチェックによるトラフィックシェイピング
- データ一貫性と複製: 複数リージョンでのデータ可用性の確保
- キャッシング: アプリケーションレベルでのキャッシュによるパフォーマンス向上と上流への負荷軽減
さらに、マルチリージョン構成における課題と戦略的な解決策として以下が挙げられています:
- フェイルオーバーメカニズム: 可用性と高可用性の確保
- トラフィックシェイピング: パフォーマンスに基づくルーティング
- データ一貫性と複製: CQRS(Command and Query Responsibility Segregation)パターンの活用
最後に、監視とオブザーバビリティの重要性が強調されています。各レベルでの集約的な監視と自動的な対応メカニズムにより、24/7/365の稼働を実現しています。
Estatísticas
単一リージョンで全ての作業量とトランザクションを処理できる
アプリケーションはステートレスであり、ユーザーの会話状態はキャッシュやストアに保存される
アプリケーションは水平方向にスケーリングできる(CPU、メモリ、RPS等)
リージョン間でアプリケーションやインフラストラクチャの展開に違いはない
Citações
"A robust site does not assume that all components work all the time. Instead, it relies on being available holistically by containing the blast radius of its failing parts via isolations, circuit-breakers, thresholds, monitoring, and automated observability actions associated with them."
"A multi-region setup is complex and requires a well-architected framework and investment. However, it is also the only option that provides the highest availability of services to millions of our valued customers."