概要
- サービスのメンテナンスの作業手順書にmermaidのガントチャートを使ったという話
- 作業手順書作成時の時間見積と、実際の作業実施時の時間計測の差が簡単に把握できて便利
- 下のような図を出せて便利ということ
※2023/08/22 mermaidの記法が変更になったらしく、ガントの分指定が min
ではなく m
となった
実際のメンテナンス作業の時間を把握したい
これらをなんとなく把握したい。
- 決めた手順が実際にどれくらい余裕があったのか把握したい
- 事前にステージング環境で同じメンテナンス作業をして問題ないか確認、本番メンテナンスの予定にフィードバックしたい
- etc.
どうやって把握するか
作業前の時間見積
- 作業手順書に必要時間を記録する
- etc.
作業実施時の時間計測方法
- 作業ログを別途作成し、タイムスタンプを記録する
- 自分は作業チームでMeetに入って作業開始と終了をコメントして、MTG終了前にコメント欄の内容をコピーするのをよくやる
- 作業手順書に見積とは別に計測値として記録する
- etc.
比較が面倒だから図にしたい
記録してもテキストで比較すると分かりにくい。
時間を表現する図で便利なのはガントチャート。
テキストベースの作図ツールはPlantUMLかmermaidのどちらかを使うことが多い(個人的感想)。
使ってみる
PlantUML
PlantUMLのガントチャートでは最小単位が日付になっている。
メンテナンスの作業単位は分(minute)レベルなので、作業手順書の時間表現には使えなさそう。
mermaid
mermaidのガントチャートでは最小単位が秒まで使える。
日付も指定しなくていいので、作業手順書の時間表現に使えそう。
書いてみた
作業手順書はesaで書くことが多く、esaはmermaidにも対応している。以下はesaの出力画像。
ここでは表示されていないが、現在時刻の縦線も表示されるのでリアルタイムで見るときにも便利。
実施前の時間見積
実施中の時間計測
mermaidのコード
余計な日付指定がないので、かなりシンプルに書ける。
gantt
dateFormat HH:mm
axisFormat %H:%M
メンテ開始 : milestone, m1, 12:00,2m
サービスをメンテナンス状態にする : 15m
環境にアクセスできないことを確認 : 5m
Auroraのスナップショットを取得する : 40m
スナップショット復元する : 40m
Aurora v3からAurora Serverless v2にする : 30m
デプロイ : 10m
確認 : 10m
サービスのメンテナンス状態を解除する : 10m
メンテ終了 : milestone, m2, 15:00, 2m
まとめ
- 細かい手順の表現だけになってしまいがちな作業手順書の概略を図示できるので、共通認識を築くのに便利
- 普段はPlantUML使っているけど適材適所