Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AI前提のサービス運用について再考する
Search
ryuichi1208
April 23, 2025
6
1.2k
AI前提のサービス運用について再考する
ryuichi1208
April 23, 2025
Tweet
Share
More Decks by ryuichi1208
See All by ryuichi1208
A Shallow Dive into the World of TCP
ryuichi1208
1
560
入門リトライ
ryuichi1208
19
7.2k
超入門SRE 2025
ryuichi1208
4
1.4k
Goで作って学ぶWebSocket
ryuichi1208
5
3.7k
コード化されていない稼働中のサーバを移設_再構築する技術
ryuichi1208
20
13k
AI前提のサービス運用ってなんだろう?
ryuichi1208
9
1.9k
入門 バックアップ
ryuichi1208
22
10k
効果的なオンコール対応と障害対応
ryuichi1208
9
3.9k
コロナ禍とその後:地方エンジニアが学んだキャリア戦略の変遷
ryuichi1208
6
480
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
52
7.6k
Adopting Sorbet at Scale
ufuk
77
9.4k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
480
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
34k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.3k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
It's Worth the Effort
3n
184
28k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
Transcript
AI前提のサービス運⽤について再考する 渡部⿓⼀ ドキュメントの鮮度を維持する「しくみ化」の⽅法
⾃⼰紹介 • 株式会社IVRy SRE • 渡部⿓⼀ • @ryuichi_1208 • EOL対応‧障害対応
サービスの運⽤⼤変じゃないですか?
課題 • システムは複雑化していき運⽤コストは増えていきがち • Webサーバ+DBのようなシンプルな構成と同様の運⽤をしていくのは難しい ◦ 技術要素、クラウド、プラットフォームエンジニアリング、SRE • 何が⼤変なのかわからないくらい⼤変になったり
どうするとよいのかの考察 • ベテランエンジニアを囲って置く ◦ IT業界は特に流動性が⾼いと⾔われている中で現実的ではない • たくさんエンジニアを採⽤して育てる ◦ プロダクトの成⻑速度に対して間に合う場合を除いて現実的ではない •
今いる⼈が全⼒で頑張る ◦ 組織改編、異動⼀つで変わる
どうするとよいのかの考察 • チームメンバーに依存した運⽤のやり⽅でどうにかするのは難しそう • チームの⼊れ替わりを前提とした運⽤が必要となる ◦ チームレジリエンス
⼈の⼊れ替わりが発⽣しても強いチームを作る • ⼊れ替わりに強いチーム ◦ オンボーディングの仕組みが整っている ◦ 属⼈化、暗黙知が少ない ◦ ドキュメントがある
ドキュメントの運⽤は難しい • ドキュメントがあることでチームレジリエンスが⾼まりそう • ⼀⽅でドキュメント⾃体の運⽤は難しい ◦ サービス運⽤のためのドキュメントとなるとシステムの複雑化に対して、 ド キュメント数が多くなる ◦
その多いドキュメントを更新するのも検索するのも⼤変
いい感じに更新していい感じに検索をしたい
開発ドキュメント/運⽤ドキュメントの性質的な違い • 開発ドキュメント ◦ ソフトウェアやシステムをどのように作るか、どう動くかを記述 ◦ 設計思想、API仕様、コンポーネント間の連携などを説明し、開発者が効率 的に開発‧機能追加できるようにすることを⽬的 • 運⽤ドキュメント
◦ 稼働中のシステムをどのように監視し、問題発⽣時にどう対応するかを記述 ◦ 障害発⽣時の復旧⼿順、メンテナンス⽅法を具体的に⽰し、安定稼働させ、 障害等に迅速かつ正確に対応することを⽬的
サービス運⽤におけるドキュメント • 運⽤時に使うドキュメントPlaybook、Runbookと呼ばれる ◦ Playbook ▪ ある事象に対してどのように対応するかの全体⽅針 ◦ Runbook ▪
単体の事象に対して対応⽅法を細かく書いたドキュメント • 特定のアプリケーションエラーが出た際の対応⽅法などを記載 • サービスメンテナンスの⼿順 ▪ プロダクション環境に対して操作する⼿順が書かれている
None
サービス運⽤におけるドキュメント • 事象ごとに⽣成されていく • マイクロサービスだとサービス単位でドキュメントが作られる ◦ 100、200とかのマークダウンが並んでいく • 知りたい⼿順にどうやってアクセスするんだ...?
ドキュメント検索問題
いい感じに検索したい • 所謂キーワード検索だけだと⾟い • GitHubやNotionに情報散らばっていたりもする • ⽣成AIを使っていい感じにする ◦ ChatGPT、Gemini、etc…をそのままだとできない ◦
ファインチューニング、RAG
いい感じに検索したい • RAG ◦ LLMによるテキスト⽣成に外部情報の検索を組み合わせることで、回答精度 を向上させる技術 • 集約してベクトル検索にするだけでキーワード検索よりだいぶマシ • ⾃然⾔語で欲しい情報までアクセスできるのは体験として良い
• 実装⽅法 ◦ ⾃前実装(OSS) ◦ SaaSを使う(RAGOps、NotionAI)
RAG実装⽅法 • ⾃前実装 ◦ 特定のユースケースに合わせて検索や⽣成ロジックを柔軟に調整可能 • ノーコード(Dify) ◦ ⼿軽にAIアプリを作れるOSSのLLMアプリ開発プラットフォーム ◦
コードを書く量が少なく、簡単な設定で利⽤可能
⾃前構成
⾃前実装 • メリット ◦ ソースが特定のサービスに紐づけずに横断して検索とかができる ▪ Notion + GitHub +
ScrapBox • デメリット ◦ サーバの運⽤コスト ◦ 横断させると更新されていないソースを元に検索してきて誤り
Notion AI • ⽂章作成、タスク管理、アイデア出しなど、Notionでのさまざまな作業を⽀援 • NotionのDBをソースに設定した上で⾃然⾔語でクエリが投げれる
Notion AI • メリット ◦ Notionにデータを貯めておけば特に設定は不要でイニシャルコストが低い ◦ 認証機能というのがある • デメリット
◦ 精度は正直微妙 ◦ ヒントが得られるかも?くらいの認識
RAGで全て解決? • RAGで検索性はだいぶ向上した • ドキュメントに古い情報が書いてあると誤った情報を返してくる • プロダクション環境に対して操作するのに誤った情報で操作をすると障害になり 得る • 正しい情報を元に回答を⽣成して欲しい
ドキュメント更新問題
いい感じに更新されたい • サービス運⽤は24/365で⾏われる • オンコールなど夜間対応とかで不具合があった時に対応する時に古いドキュメン トを参照して作業してしまうと障害に繋がってしまう可能性がある ◦ ドキュメント⾃体が古い場合でもその情報を元に回答が⽣成されてしまう
いい感じに更新されたい • いい感じに更新されている鮮度が保たれたドキュメントを維持したい • 更新が古いドキュメントを検索対象から外す? ◦ 最終更新⽇が古い≠誤っているドキュメント ▪ 決まりきった⼿順は更新されない •
ドキュメントを活⽤したタイミングで活⽤された印をつける
いい感じに更新されたい • チーム全体で更新される頻度は増えた • 更新⽇時が古い && スコアが低い ≠ 誤ったドキュメント ◦
年⼀くらいの作業はどっちも更新されない • 間違っているかどうかは最終的には⼈が判断するしかない ◦ ⼀⼈でドキュメント⾒てプロダクションに⼿を加えるケースはあまり多くな いので現時点では⼤きな課題ではない
今後期待している
MCP • LLMにコンテキストを提供する⽅法を標準化するオープンプロトコル ◦ 各AIツールベンダーが独⾃のインターフェースやAPI設計しているところか ら標準化される世界へ • ファイルシステム、DB、API などへのアクセスを提供するサーバがあればそれら の情報を元に⾃然⾔語で問い合わせを⾏って動的に回答を⽣成することができる
MCP • MCPクライアントを設定することで「Notion + GitHub + ScrapBox + etc…」みた いなドキュメント管理していても統⼀的にLLMにクエリが投げやすくなる
• ドキュメントに加えてMCPサーバを実装すれば動的な回答も可能になる ◦ ryuichi1208/mackerel-mcp-server ◦ Mackerelのメトリクスやアラート情報を集約しながらその状況に適したド キュメントの提案などが可能になる可能性がある • Cursorとかでローカルにドキュメント持ってきて事⾜りるケースもだいぶ多い
うまくいかなかった施策
イミュータブルドキュメント • ドキュメントをイミュータブルにして更新しない • 更新する際は新しく採番する(RFC⽅式) • アラート対応して初めてアプリケーションの構成が実は変わっていたということ に気づくケースは多くある ◦ 開発と運⽤を別チームでやっているとありがちでその場でシュッと直せる⽅
がサービス運⽤においては有効だった
まとめ
まとめ • システムの複雑化とチームの流動性を前提としたチームレジリエンスの向上が、 現代のサービス運⽤における重要課題 • 特に本番環境に影響を与えるRunbook等のドキュメントの鮮度維持は、安全な サービス運⽤の⽣命線 • MCPのような技術標準や動的な情報連携により、将来的にはより⾼度な運⽤⽀援 が期待される
ご清聴ありがとうございました