LoginSignup
237
201

作業手順書にmermaidを使ったら便利だったメモ

Last updated at Posted at 2022-09-01

概要

  • サービスのメンテナンスの作業手順書にmermaidのガントチャートを使ったという話
  • 作業手順書作成時の時間見積と、実際の作業実施時の時間計測の差が簡単に把握できて便利
  • 下のような図を出せて便利ということ
    image.png

※2023/08/22 mermaidの記法が変更になったらしく、ガントの分指定が min ではなく  m となった

実際のメンテナンス作業の時間を把握したい

これらをなんとなく把握したい。

  • 決めた手順が実際にどれくらい余裕があったのか把握したい
  • 事前にステージング環境で同じメンテナンス作業をして問題ないか確認、本番メンテナンスの予定にフィードバックしたい
  • etc.

どうやって把握するか

作業前の時間見積

  • 作業手順書に必要時間を記録する
  • etc.

作業実施時の時間計測方法

  • 作業ログを別途作成し、タイムスタンプを記録する
    • 自分は作業チームでMeetに入って作業開始と終了をコメントして、MTG終了前にコメント欄の内容をコピーするのをよくやる
  • 作業手順書に見積とは別に計測値として記録する
  • etc.

比較が面倒だから図にしたい

記録してもテキストで比較すると分かりにくい。
時間を表現する図で便利なのはガントチャート。

テキストベースの作図ツールはPlantUMLmermaidのどちらかを使うことが多い(個人的感想)。

使ってみる

PlantUML

PlantUMLのガントチャートでは最小単位が日付になっている。
メンテナンスの作業単位は分(minute)レベルなので、作業手順書の時間表現には使えなさそう。

mermaid

mermaidのガントチャートでは最小単位が秒まで使える。
日付も指定しなくていいので、作業手順書の時間表現に使えそう。

書いてみた

作業手順書はesaで書くことが多く、esaはmermaidにも対応している。以下はesaの出力画像。
ここでは表示されていないが、現在時刻の縦線も表示されるのでリアルタイムで見るときにも便利。

実施前の時間見積

image.png

実施中の時間計測

image.png

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使っているけど適材適所
237
201
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
237
201