- 公開日
システム設計チートシート
- 著者

- 名前
- AbnAsia.org
- @steven_n_t
私たちは、しばしば高可用性、高スケーラビリティ、そして高スループットの設計を求められます。実際には何を意味するのでしょうか。

以下の図は、一般的な解決策をまとめたシステムデザインのチートシートです。
- 高可用性 これは、合意された高い稼働率を保証することを意味します。デザインの目標を「3つの9」または「4つの9」と表現することがよくあります。「4つの9」、つまり99.99%の稼働率は、サービスが1日に8.64秒しかダウンしないことを意味します。
高可用性を達成するには、システムに冗長性を設計する必要があります。その方法はいくつかあります。
ホットホット: 2つのインスタンスが同じ入力を受け取り、出力を下流サービスに送信します。片側がダウンした場合、もう片側がすぐに引き継ぐことができます。両側が下流サービスに出力を送信するため、下流システムは重複を除去する必要があります。
ホットウォーム: 2つのインスタンスが同じ入力を受け取り、ホット側のみが下流サービスに出力を送信します。ホット側がダウンした場合、ウォーム側が引き継ぎ、下流サービスに出力を送信します。
シングルリーダークラスター: 1つのリーダーインスタンスが上流システムからデータを受け取り、他のレプリカに複製します。
リーダーレスクラスター: このタイプのクラスターにはリーダーはありません。書き込みはすべてのインスタンスに複製されます。書き込みインスタンスの数と読み取りインスタンスの数の合計が、インスタンスの総数を上回る限り、有効なデータを取得できます。
- 高スループット これは、サービスが一定期間内に多数のリクエストを処理する必要があることを意味します。一般的に使用されるメトリックは、QPS(1秒あたりのクエリ数)またはTPS(1秒あたりのトランザクション数)です。
高スループットを達成するには、リクエストがデータベースやディスクなどの遅いI/Oデバイスにヒットせずに返すことができるように、キャッシュをアーキテクチャに追加することがよくあります。また、計算に多くのリソースを要するタスクのスレッド数を増やすこともできます。しかし、スレッド数を多くするとパフォーマンスが劣化することがあります。そのため、システムのボトルネックを特定し、スループットを向上させる必要があります。非同期処理を使用すると、重い処理を担当するコンポーネントを効果的に分離できます。
- 高スケーラビリティ これは、システムが迅速かつ容易に、より多くのボリューム(水平スケーラビリティ)またはより多くの機能(垂直スケーラビリティ)に対応できることを意味します。通常、レスポンスタイムを監視して、システムをスケールアップする必要があるかどうかを判断します。
日本語版は Ai 支援を使用しているため、小さな間違いが存在する可能性があることをご了承ください。
著者
Ai Base Network (ABN), ABN ASIAは、アカデミアに深く関わり、アメリカ、オランダ、ハンガリー、日本、韓国、シンガポール、ベトナムでの仕事経験を持つ人々によって設立されました。ABN ASIAは、学問とテクノロジーが機会と出会う場所です。最先端のソリューションと優れたソフトウェア開発サービスにより、ビジネスがレベルアップし、グローバルシーンに挑戦できるよう支援しています。 私たちの取り組み: より速く。 より良い。 より信頼性が高くなります。 ほとんどの場合、価格も安くなります。
いつでも、ITサービス、デジタルコンサルティング、既製のソフトウェアソリューション、または提案依頼書(RFP)をお探しの際は、お気軽にお問い合わせください。お問い合わせ先は[email protected]です。お客様のテクノロジーに関するニーズにお応えします。

© ABN ASIA