« 英語で読む「Worse is Better」 | Main | 英語で読む「Agile Manifesto」 »

2018.09.09

英語で読む「Chaos Engineering」

再びquote for TOEICから。NetflixはAWSにインフラを依存しているが、これまでAWSで大規模障害があってもサービスを止めることなく提供してきた。その秘密のひとつに、稼働中のシステムを意図的に故障させるChaos Monkeyという手法をとっていたことが知られているが、この原則をまとめたものがChaos Engineeringとしてサイトに掲載されている。

http://principlesofchaos.org/

Chaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in the system’s capability to withstand turbulent conditions in production.

Chaos Engineeringを乱気流(turbulent condition)の中にあっても耐えるための「実験(experimenting)の規律」であると言ってる。普通、問題が起きても動作することを確認することを「テスト」と呼ぶが、Netflixにとって興味があるのは問題の有無ではなく、障害が起こったらどこに問題があるか探求したいということの表れなのだろう。

Start by defining ‘steady state’ as some measurable output of a system that indicates normal behavior.

そして実験なのだから、定常状態(steady state)を定義することから始めるべきと言っている。

Introduce variables that reflect real world events like servers that crash, hard drives that malfunction, network connections that are severed, etc.

さらりと「on production traffic」と書いているが、要するに一般のお客様がアクセスしている環境で実験することを推奨している。後半には「本番環境でやると顧客の不満を生む」と書いてるが、それでもやるところが実験環境だけではわからない「カオス」と名を冠する所以だろう。

例えばネットワーク機器やディスクといったハードウェア単位の冗長構成であれば、サーバラックに手を伸ばしてケーブルを引っこ抜けば冗長化が正しく機能するか確認できる。その延長で考えれば、AWSでリージョン単位にインスタンスを分散配置するなら、リージョン単位で落ちても問題ないか確認するのは当然かもしれないが、なかなかそこまでする発想になれない。規模に踊らされない原則を追求するだけの本気度がNetflixにはあるということだ。

|

« 英語で読む「Worse is Better」 | Main | 英語で読む「Agile Manifesto」 »

英語で読むITポリシー」カテゴリの記事