前にも述べた『むこうぶち』の江崎のこの言葉。
「船が陸にたどり着く寸前に生憎の嵐…… どうすればいいと思います?
いったん沖に引き返すんですよ
船ってのは水に浮かぶようにできているんです
無闇に上陸を焦って座礁する事が一番怖い」
この言葉が持つ意味を手順書の「切り戻し」により、改めて掘り下げていきます。
そもそも切り戻しとは?
- アップデートの不具合
- バグの確認
- 機能追加/削減
- オペレーションミス
等によって起きた障害・サービスダウンを「無かったことにする」技術全般です。Linuxサーバで言うならば
- 設定ファイルを元に戻す
- DBを元に戻す
等による、逆転時計(タイムターナー)のような存在です。これは、ITの最大のメリットと言ってもいい技術。医療や建築のような「不可逆性」を“ある程度”緩和してくれます。
「破滅は、常に隣にある」
これは、物流・メーカー・医療・その他諸々の業界の方には釈迦に説法でしょう。
- どんな安全策を講じても、予測不能なリスクは必ず発生する。
- たった一つの『バグ』や、人間の『思い込み』で、破滅に直結するような、壊滅的な暴走を引き起こす。
は、予測不能なリスクを奇跡的な幸運から乗り切ったから言える生存バイアスです。
このような、予測不可能なミスを少しでも減らし、起きてしまったことを「無かったことにする」技術が、バックアップからの切り戻しです。
ちょっとした具体例
https://barrel.reisalin.com/books/950a4/page/mysql
こちらでも少し触れている「Webアプリで不具合が発生した際の切り戻し」の方法。
mysqldump -h localhost -u redmine -p --no-tablespaces --single-transaction redmine > redmine_backup.$(date +%Y%m%d).sql
等としてバックアップを取っておき、
mysql -h localhost -u redmine -p redmine < redmine_backup.$(date +%Y%m%d).sql
で戻す。多くのシングル構成のDBは(つまり、個人運用程度であれば)これで復旧するパターンがほとんどです。筆者はサーバ移行や「やっちまった」時のリカバリのほとんどをこれで復旧させることができました。
この切り戻しをどうやって組み込んでおくのか
これが、「手順書によるコントロール」に他なりません。
- 大きな作業を伴う作業は「元に戻す」手順を先に作る。
- 切り戻しを鑑みて全体の手順を作る
という、一種の逆順処理を取ります。筆者が紹介した手順において
- 確認する
- 照合する
を含めるのは、「何かあったときに元に戻せる」を確実にするためです。
「行ってこい」の精神であればここまではやりませんし、やる必要はありません。しかし、情報という価値あるものを「維持する」ためにも戻り道という名のPoint of Returnable(回帰可能点)を随所に作っておくための確認、照合は必要なのです。
「コントロール(Control)」の語源について
こちらを言及した方がよりよいでしょう。
「control」が現在の「制御する」「管理する」といった意味になるまでの主な流れは以下の通りです。
- 中世ラテン語: contrā-rotulus
contrā-(反対の、対照の)と rotulus(巻物、帳簿、リスト)が合わさった言葉です。
文字通りの意味は「対照リスト」、具体的には「(会計などを)チェックするための二重帳簿」を指しました。 - 古期フランス語: contreroller
ラテン語が古期フランス語に取り入れられ、「(対抗手段として)登録する」「照合する」という意味で使われるようになりました。
二重の記録を照らし合わせる行為は、不正がないか確認し、管理・監督することにつながります。 - 英語 (中世): controllen
古期フランス語から中世英語に入り、「帳簿をチェックする」「正式な記録で確認する」という意味を経て、「権威をもって監督する」「指揮する」といった現在の「管理・制御」の意味へと広がっていきました。
この流れから、「control」のコアな概念は、記録を照合して物事を正しくチェックし、それに基づいて物事を支配・管理するという点にあることが分かります。
拙稿でも述べた「Manual」の語源が「手を動かす」から来るように、「Control」の語源は記録することにあります。
まとめ
いくらバックアップがあるから安心はできるといっても、それは両翼の片方に過ぎません。このバックアップでどうやって「破滅を回避するか」というもう一つの翼を担うのが「切り戻しの手順」というお話。
この姿勢を貫くためにも、筆者は“片羽の妖精”ことラリー・フォルクのこの言葉を目につくところに掲げて自らの戒めとしています。
Those who survive a long time on the battlefield start to think they are invincible. / 不死身のエースってのは戦場に長く居たものの過信だ。
I bet you do too, buddy. / お前のことだよ相棒。
――Ace Combat Zero