プラットフォームチームの仕事は、作って終わりではなく運用までを含むため、監視項目や運用手順の不備がそのまま負債になります。本発表では、システム要件を安全性と活性に分け、特に後者の扱いを意識することでシステム設計に運用観点を加える方法を紹介します。
1. 形式検証で活性を拾う: 活性は自明に思えることが多く、状態遷移図にも表れないため見落とされます。私のチームの設計でも「失敗はいずれ再試行される」が抜けており、形式検証で検知しました。
2. 監視項目と運用手順を性質から導く: 安全性の違反はそのまま監視できますが、活性は境界を設けて初めて監視できるようになります。お馴染みのliveness probeやSLO も、実はこの変換装置です。検知後に人間がすべきことが運用手順となります。
3. 活性を維持できるか計測する: 安全性は構造で保証されますが、活性は処理能力に依存するため環境が変われば壊れます。適応度関数を使うと、実際に違反が起こる前に、約束を守ることが能力的にできなくなったことに気づけます。
これらの手法について、私のチームでPoC中の監査ログ基盤を実例に紹介します。
サイボウズ株式会社
プラットフォームエンジニア
カタクチイワシの生態研究で学位を取得後、国立研究開発法人 水産研究・教育機構で年間漁獲可能量を統計的に推定する資源評価事業に携わる。事業ではカタクチイワシおよびゴマサバの資源評価を主担当しつつ、R言語による統計計算エンジンの自動テストおよびCI/CD基盤を整備した。DevOps文化に感銘を受けたことをきっかけに本格的にソフトウェアエンジニアリングの世界に入り、現在はサイボウズ株式会社において、海外向けサービスのプラットフォームを開発・運用している。