ログの設計についてどのように考えるべきなのかを知りたかったため読んだが、周辺知識も必要そうなため自動化設計のパートをまとめ
前提
運用設計の目的の一つが、複雑な作業を整理して誰にでも作業できるようすること
自動化とは
運用におけるオペレーションを機械に実施してもらうこと
ex)
- サービスの正常性確認
- アラートの発生有無の確認
- アラート発生時の検知
- アラート発生時の切り分け
- 仮想サーバーを払出作業
自動化設計とは
自動化に適した作業を洗い出し、どのように自動化するか検討すること
自動化設計のタイミングは大きく分けて2つ
- 基本設計時
- 運用開始時
基本設計時に必要と思われるものはシステム自体の設計に折り込まれれていると思うし、運用開始後に顕在化されたものを自動化した方が効果が高いと考えられる
自動化のメリット
- 工数削減
- 作業品質の向上
- スピードアップ
- 属人化排除
重要なのは「工数削減」と「作業品質の向上」
全てをできなくとも部分的に自動化を試みていけば、確実に上記2つには繋がる
運用時自動化の注意点
作業時間を計測し、効果測定する
自動化を可視化して実績を残すことが次の自動化へつながる
自動化の機能を誰がどのように管理するかを決める
異動に伴い管理不可になるケースもよくある
自動化対象の選定
選定における検討指標
- 作業頻度
- 作業時の判断数
- 作業のコンポーネント数
- 作業の確実性
まずよくやる単純作業から
次に頻度は少ないが誰がやっても同じ品質を担保したい作業
人でなければできない判断が多ければしない
複数の環境をまたぐ場合は設計が見せ所
自動化の方法
- スクリプト
- ex)シェルスクリプト、プログラミング言語・ライブラリ(selenium等)
- OS搭載自動化機能
- ex)Cron/タスクマネージャ
- ツール/ソフトウェア
- ex)excelのマクロ・VBA、GAS等
- ミドルウェアの機能
- ex) Mackerel等
- ジョブ管理ソフト
- ex)Digdag等
自動化例
性能レポート作成
運用開始後、顧客に定期的な運用報告が必要なケース。
多くの場合、運用報告書にシステムの稼働統計を掲載する。
システムの稼働統計は対象(どの機器のどのリソース)、データ取得間隔、統計算出単位(日単位の平均値、最大最小値)など、事前に顧客と合意をしておく必要がある。
稼働統計レポートは対象データの取得や統計の算出、グラフの作成など非常に工数がかかる。また、定期報告、定期作業を実施することになるため自動化に向いている。通常、稼働統計レポートは運用開始前に顧客と合意した内容通り作成するので運用開始前に自動化すべき。
監視一次対応
監視ツールを導入し、対応が必要なアラート発生時にパトライトを鳴らしたり、メール通知したりするのも自動化の一つ。
発生後に決まったオペレーションを実施するアラートが存在する場合などに特に向いている。
ex)
サーバーのあるプロセスダウンのアラートを検知したら、ダウンを確認し、必要なログを取得、プロセス再起動のコマンドを実行するなど。
書籍情報
JBS Technology Inc, 近藤誠司(監修), みんなが知っておくべき運用設計のノウハウ
https://amzn.to/2VU8olW
雑感
実質指すものは知っていても、用語や文脈は様々なのでその辺り認識するのは大事そう
この本でいう運用設計の例は主にアドテク業務を扱っていると思う