10章信頼性を得るためのアーキテクチャ
Salim Virji
この章では、SLOを念頭に置きながらシステムを一から設計することに焦点を当てます。その中でシステムのアーキテクチャというレンズを通して、サンプルシステムの設計と開発について詳細に検討します。システムを高レベルで検査しながら、可能性のあるSLOを達成するために行う設計上の選択の裏付けとなる、技術的な根拠を確認していきます。
システムアーキテクトの視点から、この設計演習は問題の記述、つまり仕様から始めます。システムのユーザーとの予期されるやり取りのためのSLOを含めて、要件を収集します。ユーザージャーニーは、SLIと同じ概念で(3章を参照)、これらのやり取りを理解するための助けになります。それは、システムがその目標を満たさないときのユーザーへの影響も同じです。ユーザージャーニーは、リクエストがユーザーからサービスに送られ、さらにユーザーに返される経路に私たちの意識を向けてくれます。
ユーザージャーニーについて考えることの重要性を説明するために、2つのWebサイトの違いについて考えてみます。1つは、悲しげなトロンボーンの演奏を再生する単一のサービスのWebサイト†1であり、もう1つは、預金と決済情報へのリアルタイムでのアクセスを提供する多国籍銀行のWebサイトです。これらの2つのWebサイトの表面的な相違は、一方が金銭を扱う「真剣なもの」であるのに対して、他方は娯楽です。これは確かに真実ですが、さらに本質的な相違は、別のところにあります。つまり、金銭を処理するシステムにおける障害は、即座に重大で不可逆的な影響をユーザーに及ぼす可能性がありますが、他方の娯楽サイトにはそういったことはありません。これが、ユーザージャーニーについて、さらにはユーザーに対するシステムエラーの影響について検討する理由です。私たちは、ユーザーに対してシステムの持つ意図に基づいてシステムのアーキテクチャを決定します。ユーザーの意見を考慮せずに設計されたシステムは、ユーザーの期待に反し、将来さらに多くのエンジニアリング作業に労力を費やすことになります。 ...
Get SLO サービスレベル目標 ―SLI、SLO、エラーバジェット導入の実践ガイド now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.