7章状況の変化に対応する設計

執筆:Maya Kaczorowski、John Lunney、Deniz Pecel

協力:Jen Barnason、Peter Duff、Emily Stark

 ユーザーに約束したサービスレベル目標(service level objective = SLO)を満たしながら状況の変化に適応していく能力は、システムの信頼性機能が備える頑健性と柔軟性に左右されます。頻繁なビルド、自動テストを伴うリリース、コンテナやマイクロサービスといったツールやアプローチを活用すれば、短期/中期/長期の変更や、サービス実行時に生じる想定外の複雑な事態に適応できるようになります。本章では、Googleが長年にわたってシステムを変更し適応させてきた複数の実例と、その過程で学んだ教訓も示します。

 設計における意思決定の大半(特にアーキテクチャに関連するもの)は、システムの設計段階で適切に検討するからこそ最も簡単かつ低コストな実装につながりますが、本章で紹介するベストプラクティスの多くは、システムライフサイクルのもっと後ろの段階でも実装できます。

 「変化することが唯一不変のこと」(Change is the only constant.)という格言†1は、ソフトウェアに間違いなく当てはまります。私たちが使用するデバイスの数(と種類)が年々増加するのに伴い、ライブラリやアプリケーションが抱える脆弱性の数も増加しています。どのようなデバイスやアプリケーションも、リモートエクスプロイト、データ漏洩、ボットネットの乗っ取り、あるいは他の大ニュースになるようなシナリオの影響を受ける可能性があります。

†1 古代ギリシャの哲学者であるエフェソスのヘラクレイトス( ...

Get セキュアで信頼性のあるシステム構築 ―Google SREが考える安全なシステムの設計、実装、保守 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.