🔖

SREが転職後キャッチアップにAIを活用しオンボーディング効率を上げた話

に公開

はじめまして、株式会社ナレッジワークでSREをしているtomです。月見バーガーを食べて元気に働いています。
9月にジョインして絶賛キャッチアップ中ですが、今回はAIを積極活用してオンボーディングが加速した話を書きます。

AIを活用したキャッチアップ内容事例

プロダクトの信頼性向上を責務とするSREにとって、システムのインフラ構成を正確に把握することは重要です。

ナレッジワークには複数プロダクトがあり、全部を一気に把握するのは非現実的です。そこで最初に対象プロダクトを一つ決め、そのプロダクトのインフラ構成図を自分の手で描くところから始めました。

既存図はありましたが、自らゼロから起こすことで「どのイベントがどこで発火し、どのキューを通り、どのサービスがサブスクライブするか」などといった細部の接続が腹落ちします。オンボーディング資料がいくら充実していても、やはり自分で手を動かしながらでないと理解できない部分はありますからね。

従来の転職後キャッチアップでは、既存図とAWSやGCPなどのコンソールを照らし合わせながら構成の理解を進めていましたが、今回はAIツールを積極的に活用しました。

結果から言うと、AIツールを活用したら2日ほどで以下のインフラ構成図を作成することができました。細かい処理などを気にしなければ、1日で完成すると思います。

自分で作成した構成図をもとに、システムに知見のあるエンジニアに壁打ちして、誤りがないか確認すれば完成です。

従来のやり方でインフラ構成図作成をゼロから始めた場合、完成まで5日程度はかかっていたと思います(特にバックエンドコードを理解するとなると時間がかかります)。

結果的にAIを活用することで、インフラ構成を理解する時間を24h(8h * 3day)削減することができました。

使用したAIツールと所感

ナレッジワークでは様々な AIツールを活用していますが、自分はあまり詳しくないため、以前から利用していたClaude Code(以下 Claude)と今回初めて触るAsk Devin(以下 Devin)を活用しました。

ClaudeとDevinですが、既存コードのキャッチアップという意味では、Devinの方に軍配が上がるかなと感じました。Claudeは裏でやたらファイル検索を実行している一方、DevinはGitHubと連携していてコードを理解している状態から質問できるので、根拠のある回答が得られる印象を受けました(コードの何行目を参照しているかを表示してくれるので確認しやすかったです)。

また、ナレッジワークではモノレポを採用しており、バックエンドコードとインフラコードが一つのリポジトリで管理しているのもDevinと相性がいいのかもしれません。
Claudeだと各コンポーネントの境目がグレーゾーンになる回答が多かった(インフラ視点の考慮があまりない)のですが、Devinはどのコンポーネントでどの処理を実行するのか正確に回答してくれました。これはterraformのコードを読み込んでいるから成せる技なのかもしれません。

とはいえ、Devinでもプロンプトの粒度を大きくすると、あまり満足いく回答を得ることができなかったので、プロンプトは小さい粒度で渡すことが大切です(この辺は、既にAIツール活用している人にとってはお馴染みですが)。

例えば、自分は初めに「Cloud Run hoge-serverのエンドポイント/vi/hogeがコールされた場合、どの関数が実行されるか教えて。」と依頼するようにしています。

例として、Devinから以下の回答がきました。

Answer 
hoge-serverの/vi/hogeエンドポイントをコールした場合、○○関数が実行されます。

エンドポイントのルーティング 
HTTPサーバーの設定で、/vi/hogeエンドポイントは○○メソッドにルーティングされています。

実行される関数の詳細 
○○関数は△△構造体のメソッドとして実装されており、以下の主要な処理を行います:

1. 処理1 - 処理1の説明
2. 処理2 - 処理2の説明
3. 処理3 - 処理3の説明
4. 処理4 - 処理4の説明

Notes 
このエンドポイントはPub/Subハンドラーとして設定されており、非同期メッセージ処理に対応しています。テストコードでも○○関数の動作が検証されています。 

コード箇所も表示されるので、詳細が気になる処理があればDevinに追加で質問していくスタイルが自分には合っていました。Devinとのキャッチボールは増えますが、キャッチアップが正確なものになります。

今回の目的が「インフラ構成図を書きながら自分自身がシステムを理解する」だったため、このようなプロンプトで進めていきましたが、「インフラ構成図の概要を掴みたい」など別の目的であったらDevinに渡すプロンプトは別のものになっていたと思います。

目的別でプロンプトを工夫するのは、エンジニアとしての腕の見せどころですね!

QAエンジニアのTommyさんの記事でもDevinのプロンプトのコツが記載されているので、こちらも参考にしてください!
https://zenn.dev/knowledgework/articles/7bd050b8a11193

さいごに

AIツールが身近になってから初めての転職でしたが、オンボーディング資料 × AIのセットで、これまで5日程度かかっていたインフラ把握を2日まで短縮できました。

このやり方はIaCやCI/CD、監視ダッシュボードの理解にも流用できるので、今後も同じ手法でキャッチアップ対象を広げていくつもりです。

AIツールは開発視点で着目されることが多いですが、SRE視点でのインフラ理解にも恩恵を受けることがわかりました。今後ともAIを活用して業務を効率化していきたいと思います。

株式会社ナレッジワーク

Discussion