ぱと隊長日誌

ブログ運用もエンジニアとしての生き方も模索中

NTTDATATC2017「本当は恐ろしい分散システムの話」聴講メモ

前書き

NTTデータ テクノロジーカンファレンス 2017 (NTTデータ テクノロジーカンファレンス2017 デジタルトランスフォーメーション成功のカギ~ Hadoop, Spark, ブロックチェーン | NTTデータのHadoopソリューション)
【テクノロジー】本当は恐ろしい分散システムの話
の聴講メモです。

スピーカーはNTT ソフトウェアイノベーションセンタの熊崎さん(@)です。

メモは口頭説明を中心にまとめています。私の理解不足でメモの内容に間違いが混入しないよう確認を行いましたが、おかしな箇所がありましたらご指摘ください。
念のため、Twitterのつぶやきを参考にした内容チェックも行いました。
#NTTDATATC since:2017-10-30 until:2017-10-31 - Twitter Search

【参考】としている個所は私が挿入しています(補足や参考資料など)。登壇者の講演内容ではありませんので、その旨ご了承ください。

聴講メモ

BIG DATA LANDSCAPE 2017

このような資料は「カオスマップ」と呼ばれている。

【参考】

スライド内に記載の引用元リンクはこちらです。
http://mattturck.com/bigdata2017/

壊れにくいハードウェアを使えば良いのか?

壊れにくいハードウェアを使っていても、台数が多ければ壊れる。

CAP定理

CAPは定理と言い切っているが、証明できていないのはいかがなものか。

【参考】

2002年にMITのSeth Gilbertとナンシー・リンチがブリュワーの予想の厳密な証明を提出し、定理として確立した。

CAP定理 - Wikipedia

とあり、CAP定理は証明されているようです。

ここで熊崎さんが述べたかったのは、「"3つのうち2つ"という公式はミスリーディング」ということだったと思われます。
詳細は以下の記事を参照ください。
12年後のCAP定理: "法則"はどのように変わったか

Jepsen Test

【参考】

テストの名前の由来について熊崎さんの解説があったのですが、ほとんどメモできなかったので調べてみました。

スライドの画像の引用元リンクです。
Jepsen: On the perils of network partitions
この画像は Carly Rae Jepsen の "Call Me Maybe" のPV映像に歌詞をもじって重ねています。

テストの名前はこの歌手の名前から付けたようです。

なお、この曲のPVをYouTubeで見ることができます。きっと一度は耳にしたことがあるはず。

Partitionさせてみる

この実験の結果より、Redisはパーティションで作った分断に弱いということが言える。

ここまでのまとめ

異常系のテストは難しいし、正しく網羅的にできていないことが多い。

Fault Injection Testとは?

システムは複数のレイヤーで構成されている。そのレイヤーを攻撃するのが Jepsen Test だ。

HDDもSDDも壊れる!

ニアラインディスクはデータのバックアップ用。

【参考】
ニアラインディスクの詳細は以下の記事を参照ください。
ニアラインディスクの利用用途は | Tintri

実験設定

ディスク内のデータが少し化けただけでダメージを受けるシステムは多い。

「一度に化ける/壊れるエラーは一か所だけ」とは3多重であればその内の1つだけが壊れるということ。これをRedisでテストしてみた。

他のシステムたち

Cassandra は last-write-win で最後に書いたものが勝つ、という障害対応を行っている。だが、最後に書いたデータが化けていると悲惨なことになる(化けデータが伝搬する)。

その猿、凶暴につき

Netflixは障害系のテストのために本番で障害を起こす。

Chaos Kong はAWSのリージョンを丸ごと落とす。この場合は何日に実施するかを予告されている。避難訓練のようなもの。

NetflixのChaos Engineering

部署のレベルでフォールバックの仕組みを作っている。

カナリア分析のメトリクスの例としてはCPUやメモリなどがある。

サルと和解せよ

Chaos Engineeringの導入には、まず何が正しいかを定義し、段階を追って準備を進める。

所感

以下のtweetにまとめました。

このような素晴らしい資料を公開していただけたことに感謝いたします。