経歴のスタート地点
藤原賢一さん(25)は、情報系の学部を卒業後、大手SIerに入社した。配属は金融系の業務システム開発部門で、Java/Spring Bootによるエンタープライズアプリの開発を2年経験した。スクラム、テスト駆動開発、コードレビュー――堅牢な開発文化の中で、彼は基礎をしっかり積んだ。
しかし学生時代の藤原さんは、C言語でOSの仕組みを学ぶ授業に夢中になっていた。プロセス、メモリ管理、システムコール――低レイヤーの世界に魅せられて卒研も自作シェルだった。SIerでの仕事は安定していたが、彼の心はいつも「もっと下のレイヤーを知りたい」と疼いていた。
「Springの裏側で何が起きているのかを、本当には知らないまま2年が過ぎた」。彼は自分のキャリアを真剣に見つめ直した。
最初のつまずき
社内のSRE部門に異動希望を出したものの、面談で痛感したのは「自分の低レイヤー知識が、学生時代で止まっている」ことだった。「Linuxのカーネル機能、たとえばcgroupsやnamespaceについて聞かれて、名前は知っているけれど仕組みは説明できなかった」。
さらに突き刺さったのは、パフォーマンス問題の質問だ。「あるAPIが遅い時、最初に何を見ますか」と聞かれて、藤原さんはAPMの画面を答えた。面接官は「その下は?」と返した。CPU使用率、ロードアベレージ、コンテキストスイッチ、ディスクI/O、TCP再送――SREに必要な観測の語彙が、彼にはほとんど揃っていなかった。
もう一つの壁は、シェルスクリプトの実務知識だった。「bash でちょっとしたツールを書いた経験はあるけれど、信頼できるオペレーション用スクリプトを書く力はなかった」。set -euo pipefail、シグナルトラップ、ログのローテーション――SRE現場で当たり前の習慣を、彼はまだ身体化できていなかった。
転機 — 低レイヤーへの旅立ち
藤原さんは1年計画で「低レイヤーリスキリング」を立てた。最初に手に取ったのは『[試して理解]Linuxのしくみ』。コマンドを打ちながらカーネルの基本機能を体感する形式が、彼の学び方とぴったり合った。「ページキャッシュ、スワップ、CFSスケジューラ――名前だけだった概念が、自分の手元で観察できる現象になった」。
次の決定打は『Systems Performance』。Brendan Greggの体系的な観測方法論――USEメソッド、REDメソッド――を学んだ瞬間、彼の中で「パフォーマンス調査」というジャンルが立ち上がった。「闇雲にtopを見るのではなく、CPU・メモリ・ディスク・ネットワークの順に系統的に切り分ける流儀を覚えた」。
さらに『BPF Performance Tools』に進んだとき、藤原さんはついに学生時代の知的興奮を取り戻した。「カーネル空間に動的にプローブを打ち込んで観測できるって、こんなに痺れる技術があるのか」。eBPFを使って自社サービスのレイテンシ要因を特定したレポートが、SREチームの目に留まった。
10ヶ月後、彼は正式にSREチームに異動。最初のミッションは決済APIのレイテンシ削減で、彼は3週間でp99を半減させた。
いま振り返る選書
藤原さんが低レイヤー転身で頼った5冊。
- 『[試して理解]Linuxのしくみ』: カーネル機能を“手で確かめる”原体験を与えてくれた。
- 『Systems Performance』: パフォーマンス分析の体系を授けてくれた決定的な一冊。
- 『BPF Performance Tools』: 観測の解像度を一段引き上げ、自分の武器を作れた。
- 『マスタリングTCP/IP 入門編』: ネットワーク層からのトラブルシュートに不可欠だった。
- 『シェルスクリプトリファレンス』: 信頼できるオペレーション用スクリプトを書く作法を学んだ。
「SRE転向において、フレームワーク本ではなく古典のOS・ネットワーク本が最大の武器になった」と彼は語る。
これから挑む人へ
アプリエンジニアからSREへ移る人に、藤原さんはこう助言する。
第一に、低レイヤーは“難しいもの”ではなく“面白いもの”だと信じること。手を動かして観察すれば、必ず景色が変わる瞬間が来る。第二に、パフォーマンス調査は方法論を持つこと。USEメソッドのような型を持つだけで、調査の迷子率が劇的に下がる。第三に、シェルスクリプトを軽視しないこと。SREの現場では、本番を救うのは数行のbashだったりする。
「次の目標は、自社のSREチームで“パフォーマンスといえば藤原”と言われる存在になること」。彼の好奇心は、今もカーネル空間の奥に向かって伸びている。
![[試して理解]Linuxのしくみ 増補改訂版の表紙](https://images-na.ssl-images-amazon.com/images/P/429713148X.09.LZZZZZZZ.jpg)


