LIVESENSE ENGINEER BLOG

リブセンスエンジニアの活動や注目していることを発信しています

「挑戦しなければ障害は生まれない」社内ポストモーテム共有会

こんにちは。インフラエンジニアのsheep_san_whiteです。

障害を起こしてしまって、ポストモーテムを書いたことありますか?

私はあります( • ̀ω•́ )ドヤッ


社内ポストモーテム共有会について

さて、リブセンスでは6月24日に「社内ポストモーテム共有会」を開催しました。

ポストモーテムを持ち寄って内容を振り返り、お焚き上げするという会です。

コロナ禍の中ではありますが、オンライン/オフライン混合のハイブリッドで開催しました。

ハイブリッド開催の様子
撮影場所: WeWork東京ポートシティ竹芝

発表内容

発表した内容については、外部に出せない物もあるためタイトルと概要・感想だけ共有させて頂きます。

まずは乾杯から
撮影場所: WeWork東京ポートシティ竹芝

Sがついてただけなのに

概要

NGINXproxy_passhttpURLを設定すべきところを、httpsURLを設定して障害が発生してしまった話でした。

感想

目Grepには限界があるので、CIで自動的にチェックしたほうがいいというお話ですね😵‍💫

恒久対処としてdiffチェックの機構を入れたようです👀

シン・風桶〜null文字入ればピザ屋が儲かる〜

概要

データ取り込み時に何故か挿入されてしまうnull文字を退治した話でした。

感想

このnull文字が入る理屈が皆目検討つかないですね😅

「改行が何らかの原因でnull文字になってしまうのか?🤔」など推測する声が飛び交い、盛り上がりました。

また、この発表は「風が吹けば桶屋が儲かる」と掛けて凝ったタイトルでした。

null文字が入る→障害が発生する→ポストモーテムを書く→社内ポストモーテム共有会を開催する(ピザを頼む)→ピザ屋が儲かる🍕

内容の更新がSolrに反映されない

概要

Solrのデータを日次で洗い替えする処理がリリースにより動かなくなり、差分更新しかされなくなった話でした。

感想

「アイエエエ!?検索!?更新されないのナンデ!?」と、意図しない結果で戸惑ったことが推察されます。

既存の処理を過信しすぎず、仕様を改めて理解した上で変更を加えたほうが良いという教訓になりました。

再提示リクエストリリースによる指名ページのエラー

概要

登録ユーザー向けの機能をリリースした結果、非ログインユーザーでもページアクセスできる仕様に気が付かずに、NoMethodError500になってしまう話でした。

感想

テストの考慮漏れのようで、テストをしっかりやった方が良かったお話でした。

テスト、大事ですね。

課金関連の開発でバグを出しまくった話

概要

課金周りで様々なバグを出してしまった話でした。

課金周りだけで4件と盛り沢山で、通常7分枠のところを15分枠で発表していました。

感想

バグ4件のうち、1件は他のバグの修正によって引き起こされたもので重ねてツラい印象でした。

今回の会の中でもダントツのボリュームでした。

サマリーテーブル生成時にエラー発生

概要

長期滞留していたPullRequestをマージしたら、そのPullRequest内のクエリに不備があってエラーになった話でした。

感想

私もapproveされたPullRequestを忙しいと適用するのを後回しにしがちなので、早めに適用するようにしたほうがいいなと思いました。

DBの変更時に予期せぬパスワードが設定されDBへアクセス不可になった

概要

アプリケーションが使用するDBユーザのパスワードが書き換わってしまった話でした。

レビュー漏れ、作業者の確認漏れ、テスト不備など複合要因で発生したようです。

感想

パスワードがjohndoeに書き換わってしまうとは恐ろしい・・・!

Ansibleのvarsの優先度を意識する必要がある点、考慮漏れしないようにテストしたりするといいのではないかと思いました。

メールマガジンが配信されない

概要

とんでもないサイズのSQLをDBに投げようとしてしまって、メールマガジンが配信できなかった話でした。

感想

なにかエラーを吐いていたら、早めに調査したほうがいいという教訓となりました。

「最近このアラートよく出てるけどなんだろう?」と思った頃にはすでに出血していることもあるので、アラートは気にして見るようにした方が良さそうですね。

ネイティブアプリでバグを仕込んだ話

概要

ネイティブアプリでバグを仕込んで障害が起こった話

感想

ネイティブアプリって実際に打鍵したりしてみないとわからないことが多いイメージなので、レビューも大変ですよね。

障害を起こした方はインフラ担当からアプリ担当にシフトされた方で開発経験が豊富なわけではなく、ご本人が悪いというよりはレビュワーが悪い部分もありそうです。

和やかにポストモーテムがお焚きあげされる様子
撮影場所: WeWork東京ポートシティ竹芝

総括コメント

会の終わりに、総括のコメントを頂きました。

「挑戦しなければ障害は生まれない」

システムに対して良い変化を起こそうとしなければ、障害は発生しなかったということですね。

システムはナマ物なので、日々朽ちていきます。

それでも日々、改善・改修を行うことでシステムを長期運用することが可能となります。

心に刻みたい一言でした。

おわりに

皆でポストモーテムの内容を話してつらみを共有し、無事お焚き上げすることができました。

リモートワークで直接顔を合わせることが少なくなっているなか、久々のオフラインイベントでとても有意義な会になったと思います。

開催に向けて準備して下さった皆様・発表者の皆様、ありがとうございました!

つづく(かもしれない)