データ指向アプリケーションデザインを読む
https://images-na.ssl-images-amazon.com/images/I/719cyMsj8eL.jpg
読む際のスタンス
順番バラバラだけど1章->12章->興味を持った順に読む
1章
データシステム(DB, MQ, 全文探索エンジン、キャッシュなど)間の明確な区別がなくなってきてる
製品が複数の特性を持つようになってきたため
kafkaはDBの堅牢性とMQの特性を併せ持つ
redisはキャッシュとMQの特性を併せ持つなど
システムは信頼性・スケーラビリティ・メンテナンス性が必要
信頼性
信頼性を保証できない部品を組み合わせて信頼性のあるシステム
ヒューマンエラーを減らすために制約強いIF使うと誰にも使われなくなる
スケーラビリティ性
負荷量がなんのリソースを消費するかを観測すること
間違うと全く意味ないアーキになる
負荷計測は外れ値があることを考慮して平均値でなくパーセンタイルを使う
また95%パーセンタイルなどは、システムの最悪値の指標となる。
ハズレ値無視したくなるけど、Amazonとかでは遅くなる=大量の商品を買おうとしてくれている太客、でも1秒遅くなると13%が買わなくなるとかで、この外れ値の改善に取り組んだとかの話あったり
メンテナンス性
進化性ーシステムを進化させる際に、楽に拡張できるようにする
12章