ポストモーテムを書いて障害対応による修正・改善のWhyを残す
障害や問題が発生したときに行う振り返りのことをポストモーテムと呼び、SRE本の15章でも紹介されています。
SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム
- 作者:
- 出版社/メーカー: オライリージャパン
- 発売日: 2017/08/12
- メディア: 単行本(ソフトカバー)
また、実際に実践している会社の事例もブログで紹介されています。
私の今のチームの開発でも活用すべく、上記を参考にポストモーテムのサンプルのテンプレを作ってみました。
# 1.起きた事象 発生した事象を事実ベースで時系列で書く。 起きた事象がひと目でわかるタイトルをつけるとよい(「テレビ放映でアクセス増加に伴うDBダウン」など) # 2.影響範囲 起きた事象によって発生したサービスに対する直接的、間接的影響を列挙する。 # 3.暫定対処 発生した事象を復旧させるあたって暫定的に対処した内容を書く。 ## 3-1. 対応策候補 暫定対処として候補にあげた解決策を列挙し、最終的にその選択肢を選択した理由を書く。 ## 3-2.アクション事項 暫定対処を完遂するために実際に行ったアクションを書く。 # 4.原因分析 ## 4-1.直接原因 事象が発生した直接的な原因を書く。 ## 4-2.根本原因 事象が発生した根本の原因を書く。 # 5.恒久対処 ## 5-1.対応策候補 恒久対処として候補にあげた解決策を列挙し、最終的にその選択肢を選択した理由を書く。 ## 5-2.アクション事項 恒久対処を完遂するために実際に行ったアクションを書く。 # 6.その他 上記以外の内容があれば書く。
実際に書くときは判断や対処のWhyを残すことを念頭において、事実と仮説を分けて記述することおよび最終的な意思決定に至った過程を残すことを重視しています。
なぜなら、そのとき行った対処が1年後・2年後も正しいとは限りませんし、実際に開発・運用するメンバーが入れ替わってチームのスキルレベルが変われば最適な策は変わりえます。
なので今その設定になっている根拠や捨てた選択肢を残すことは将来的に技術的負債にならないための予防策と言えます。
今負債になってないものが将来も負債にならない保証はないのです。
似たような思想で設計のWhyを残すADR(Architecture Decision Record)もありますね。
kawashima さんの日本語訳
https://gist.github.com/kawasima/e325eda1c910d2abc5fb5f69d6a692e2
簡易ポストモーテム / ADRでちょっとした修正・Whyを残す
ポストモーテムやADRは開発プロセスや運用プロセスに組み込んで使うことを想定しているもののため、結構腰を据えて時間をかけて書かないといけません。
そのまま使うと結構重そうだったので、ちょっとした内容を残すときにも使えるように簡易的なテンプレートを作ってみました。 この簡易的なものをドキュメントに残す文化を作っておくと、属人的で暗黙的になっているちょっとした知識をチームの集合知として昇華できるのでおすすめです。
例えば開発の初期段階での検討事項の一部が漏れていて、終盤になってちょっとした問題が発覚したケースや、QAで発覚した軽微なバグ修正の横展開のメモを残すような用途を想定しています。
30分~1時間くらいで書けるくらいシンプルな内容にするため、事象・原因・対処の三点セットがあればよいでしょう。これらの内容はIssueや修正のPull Request、チケットなどに記述し、あとで参照可能な状態にしておくことが大事です。
# タイトル ひと目でわかるタイトルを書く ## 発生事象 何が起きたかを書く。 ## 原因 事象が発生した原因を書く ## 対処 解決策を書く
例えばGitLab CIがエラーでジョブが失敗したケースは以下のような内容を書きます。
# GitLab CIがJob's log exceeded limit of 4194304 bytesで失敗する ## 事象 GitLab CIのジョブが「Job's log exceeded limit of 4194304 bytes」のエラーが発生して失敗する。 ## 原因 ログの上限設定がデフォルト値(4096KB)のままになっていて、GitLab CIのログ上限に達してジョブが失敗した。 ## 対処 GitLab CI Runnerの設定で.gitlab-runner/config.toml のoutput_limitを拡張する。 ... executor = "shell" output_limit = 16384 ... 参考 : https://gitlab.com/gitlab-org/gitlab-runner/issues/1024
これがチームメンバ一人ひとりが自律的に書けるようになるチームを目指して、引き続きEM業を頑張りたい所存です。
SRE Next行きたかったな・・・。。。
2019年にお金を払ったサービス
ふとTLに流れてきたので、やってみた。
増税があったりドルが混ざってたり月額年額が混ざってたりと費用はどんぶり勘定です。
新規
マネーフォワードME 5300円 / 年
今までスプレッドシート運用だったけどクレカ明細やキャッシュレス、PASMOとかの中まで把握・管理できるのよい。品目別に分析するの楽しい。
Apple Developer Program $99 / 年
仕事でモバイルアプリ開発やることになって、自分で実機に入れたりしたくなったので勉強用。正確には以前登録して更新しなかったのを復活させた。
継続
Amazon Prime 4900円 / 年
値上がりつらい。
Google Drive 100GB 2500円 / 年
主にGoogle Photo用。DropBoxはもう全く使わなくなった。まだ半分以上空いている。
dマガジン 440円 / 月
今年もお世話になった。コスパいい。
To Me Card 2200円 / 年
オートチャージ用。普通に使って元が取れることがわかった。
日本経済新聞Wプラン 5900円 / 月※
実家と折半。実家で紙の購読辞めるって言ったら電子版プランに変える。
IntelliJ IDEA Ultimate Personal 13600円 / 年
2年目なので。来年はもうちょっと安いらしい。
Evernote Plus 3100円 / 年
デバイスがいっぱいあるので課金。ただ最近あまり使わなくなってきたなぁという印象。
お名前.com 1390円 / 年
個人ドメインの維持のため。
解約
Wi2 390円 / 月
使わなくなったので。テザリングでよくなった。
青山カード 1350円 / 年
クレカ整理のついでに解約した。自動音声で解約できた。
2019年の振り返り的な何か
今年もざっくり振り返ろうと思う。2018年の記事はこちら。
2019年にできたこと
AWS SAを取る
2月に取った。
GoをJava/PHPと同じくらい書けるようになる
シェルスクリプトではやりきれないやつをGoでサクっとかけた。ただ使ってないと文法忘れるので意識的に書かないと忘れそう。
Firebase + iOS or Android or JSで何か作る
仕事がモバイルアプリ開発になったので、Flutterでサンプルアプリを作ったりできた。
GCPをAWSくらいできるようになる
GCPのquicklabのキャンペーンを全部埋めてk8sTシャツもらった。
PHP以外のフロントエンド開発(html/css/jsとかブラウザとか通信とか)の設計がわかるようになる
モバイルアプリの設計めっちゃやってる(できるとは言ってない)。フロントエンドの状態管理の設計めっちゃ難しい。けどできるようになりたい。
外部イベントの運営・ボランティアスタッフをやる
DevOps Days Tokyo 2019のボランティアスタッフとXP祭りの運営をお手伝いした。運営サイドから見える景色もいいものですね。
JAWS-UGのアーキ支部でCI/CDに関して議論できたのもよかった。
ブログを最低月一回投稿する
9月はすべりこみだったけど、なんとか月1ペースで投稿できた。
競技プログラミングを再開する
再開できた。
8月まではコンスタントにコンテスト参加できてたけど、9月以降は多忙 & レート下がり恐れからサボり気味になった。ちなみにPASTは初級でした。しょぼい。精進したい。
2019年にできなかったこと
Spring Bootでアーキテクチャ設計できるようになる
SprintBootを1.xから2.xにするのをちょろっとやって以来、一切触らなかった。忘れてそうなのでどっかでリハビリしたい。
英語学習を復活して少なくともTOEICスコア(785)を更新する
765だった。勉強しないとスコアは上がらないらしい。
半分できて、半分できなかった。
3年後、5年後の自分の仕事・人生の具体的なイメージを持つ
今年の主な仕事がモバイルアプリ開発だったので、これでネイティブアプリ・Webフロント・サーバサイド・AWSと一通り触ったことになったので良かった。あとやってないのはコンテナ・k8sくらいかな。
今年は一人称でCI/CDおじさん業をやってのけたので、この領域にはだいぶ力がついたなぁという気持ちにもなった。
ただ一通りやってみて、開発のコアになるシステムやアプリをどういう作りにするといいのかという設計に関して、周りをリードできる力がないと痛感したので、設計の領域でもっと精進したいと思った。
あとチーム開発をどううまく回すか的なエンジニアリングマネージャー業にもスクラムのプラクティスの延長で興味関心があるので、うまく業務の中で試行錯誤できたらいいなと思った。
その一方でできてないと思う点は、会社の枠を越えて自身の人生においてどう生きていくか、考えたけど結局行動に移せなかったから。
いろいろ見たけど、うーんという気持ちで結局コンフォートゾーンから抜け出さなかった。
この辺はもうちょっと言語化と情報収集を継続して頑張りたい。
主なアウトプット
GitLabとFlutterがメインだった。
- GitLab
- GitLab Meetup Tokyo 16 でLT発表しました #gitlabjp - つばくろぐ @takamii228
- GitLab CI RunnerをMac上に構築する - Qiita
- GitLab CEでMerge Request時のCIを事前にマージしてから実行する - つばくろぐ @takamii228
- GitLabでtagとtagの間に含まれるMRリストを取得する - つばくろぐ @takamii228
- GitLab APIを使ってtag名とtagのタイムスタンプをcsv形式で出力する - つばくろぐ @takamii228
- flutterのバージョンをGitLab CI Runner上で動的に切り替える - つばくろぐ @takamii228
- Flutter
- ブランチ戦略
GitLab CI使ってFlutterのCI/CDパイプラインを作った話をどっかでアウトプットしたいお気持ちなので年始頑張ろうと思う。
GitHub
特に何か公開しているわけではないけど。
takami228 (Masanori Takami) · GitHub
振り返り
↑も合わせて、2019年を振り返ってみた。
良かったこと・できたこと
- 未経験・新しい技術に対して学ぶ姿勢が継続できていること
- 月1ブログ投稿が継続できていること
- コミュニティ活動の運営側に関われたこと
- 競プロが再開できたこと
- ISUCONに初参加できたこと
- Jira Cloud / Confluence Cloudで情報管理できていること
やっぱり目標があると前にすすめるのでよい。前に立てた目標の半分くらいは達成できた。
ISUCONは初見殺し感はあってボロボロだったけど楽しかった。来年も出たいなぁ。
あとAtlassianのツールが無料で使えるようになったのは大きい。ちょっとしたメモをConfluenceに集約できるし、読書や目標管理にJiraが使える。
良くなかったこと・できなかったこと
- 積読やWIPの本が残ってるのに新しい本を買ってしまったこと
- 1回しか外部発表できなかったこと
- 働きすぎたこと
- 働きすぎて?体調を崩しそうになったこと
- 3年後、5年後の自分の仕事・人生の具体的なイメージを持つことを先送りにしたこと
本を買いすぎて、家のスペースを圧迫しだした。ちゃんと読んで手元に置くものとそうでないものを種別したい。
夏あたりからちょっと働きすぎてしまった。ちょっとハイになっていたところもあったかもしれない。最近突発的に目眩が起きて辛い思いをした。
やはり健康第一なので、食事・運動・睡眠には注意したい。
2020年の抱負的な何か
いくつできるかわからんけど、今年もとりあえず書いてみる。
- AWS SA Pro or DevOps Proを取る
- GCP Professional Cloud Architectを取る
- TOEICスコア(785)を更新する
- AtCoderで緑キープ & レート1000になる
- PASTで中級になる
- ISUCONに出る(開催されれば)
- フロントエンドの設計を理解する
- いわゆるアーキテクト業を自信を持って遂行でき、自分の色を出せるようになる
- いわゆるエンジニアリングマネージャー業を自信を持って遂行でき、自分の色を出せるようになる
- CI/CD関連できちんと言語化してなんかアウトプットする
- 3年後、5年後の自分の仕事・人生の具体的なイメージを持つ
- 健康を維持・推進する
2020年はいくつできるかな、頑張ろう。
最後に、去年はこんなことを書いていた。
社会人歴5年目だけどまだまだ自分がこれから進みたい方向性はぶれてるので、いろいろつまみ食いしながらレベル上げしたいと思ってる。 けどいろんなところに顔つっこみ過ぎている感もあるし時間は有限なので、かけるべき時間と期限を決めてうまくやっていこうと思う。
今年は社会人6年目で、いろいろ区切りがいいなーと思ってた。小学校6年、中学・高校6年、大学・大学院6年。 年齢はアラサー。何か環境を変えるようなことをしようかなと思ったけど、行動には移さなかった。このままズルズルいくのもアレなので、人生のマイルストーンを真剣に考えねば。
でもまだまだ霧の中を歩いているような気分なので、2020年もいろいろつまみ食いしながらレベルアップしていこうと思う。