会社の成長とSRE/インフラエンジニアの楽しさ
先日、弊社のプロダクトが大手宅配会社様のシステムに試行導入開始しました[1]。会社が成長しているなと感じるのですが、それにつれて私もSREとして成長する必要があります。また、SREに求められる役割も変わってきました。ちょうど私が入社して1年が経過したいい機会なので振り返ろうと思います。n=1の個人的な体験談ですが、あるスタートアップのあるSREがどんなことをやっているのか書くことによって、スタートアップやSREに興味を持っていただけたら嬉しいです!
※SREという言葉が聞き慣れない方はインフラエンジニアと読み替えていただいて問題ございません。SREについて分かりやすい記事がありましたので載せておきます。
今更だけど、SREとは何かについてまとめる
入社時
私が入社したのはプロダクトが世に出てからも1年後くらいのタイミングでした。プロダクトとしての骨組みはできているけど、まだまだ機能不足でどんどん機能開発を進めていく段階でした。その時はSREという役割はなくて、各マイクロサービス開発チームがITインフラも担当するという組織体系でした。強いエンジニアが多すぎたため各チームが1人か2人しかいないのに、ITインフラからアプリケーションまでを縦断的に担当できてしまっていました。アーキテクチャを横断的にみる役割の人がいなかったことが今となって負担になっています。もし、これを読んでいる人がこれからプロダクトを作っていこうという段階ならば、是非ともアーキテクチャはプロダクトの成長に伴う変化に対する柔軟性かつ全体としての一貫性を保てるようにしておくことを薦めます。(もし、周りに相談できる人がいなければ私にご相談ください。できる限り対応いたします。)
ちなみに私がその時何をしていたかというと、ほぼ未経験で入社しているのでそんな考えに至るわけもなく、ただただ必死にKubernetesやDocker, GitOps, CI/CDのキャッチアップと構築をしていました。
半年経過
この時で私は何をしていたかというと入社時から取り組んでいたKubernetesでの本番運用の最終調整をしていました。サービス運用の経験なんて全くなかったので、90%以上はうまくいくしこれで良いだろうと思ってました。そしてQAに出したら通らなかったです。ならばと修正を加え95%くらいになったので流石に95%なら100点中95点だし超いいじゃんと思ってQAに出しました。もちろん、差し戻されました。今思えばサービスレベルが95%のシステムはひどいと分かるのですが当時は運用の経験全くないので、「なんて厳しんだ、この人は。せっかく作ったのに全然リリースできないじゃないか。」って思ったり思わなかったりしました。その後、頑張ってエラー原因の特定やパフォーマンスの調査、メトリクスやログの監視を行うことでついにリリースできました。やっと一仕事終わってとりあえずホットしました。
ちなみにこの少し前に資金調達をしてステークホルダーが増えました。[2]その結果(?)、会社がかっちりしました。
現在(1年経過)
最初はお客さんの計算ログが1日に数回で、「お!あの会社さん、使ってくれてる!ちゃんと計算成功した!良かった!」と一喜一憂できる程度でした。それが、だんだんお客さんも多くなってきて一喜一憂していたらそれだけで1日が終わってしまうくらいたくさん使っていただけるようになってきました。また、最初に書いたように大手宅配会社様で順次導入がちょうど進んでいる段階で、それがメトリクスにも現れていて見るたびに実感します。もし障害が発生すれば、プロダクトや会社の信用を毀損しかねない、業務フローに影響が出るのでお客さんの業務が滞る、そしてお客さんのお客さんにも影響が出るかもしれない、ビズ側の人が築いてくれたお客さんとの関係にも悪影響があります。肩に感じる責任もより一層大きくなりました。さらにこれからプロダクトが成長してたくさん使われるようになるとより高いレベルの安定性が要求されると思われます。今ちょうどSREとして大変だけど楽しいフェーズにあると私は感じています。
私の思うSREの楽しさ
最近、人為的ミスによるプロダクトが完全に停止する障害が発生しました。もちろん障害が発生しないにこしたことはないです。しかし、障害が発生したことで得られたこともありました。障害の対応方法や障害が起きないような仕組みを作るという実務的なこともあるのですが、自社のプロダクトが社会に与える影響を改めて考えるというマインド的な機会となったのが個人としては一番の収穫でした。SREの役割は「信頼性向上」です。「信頼性向上」とは具体的に何でしょうか。例えば、「ルールを厳しく」したり「開発のサイクルを遅らせる」など「信頼性向上」をするための方法はいくつかあります。しかし、私はSREの一番の役割は組織全体に信頼性を高める文化を浸透させることだと思います。ITインフラアーキテクチャというのは会社を表します。ITインフラアーキテクチャを見れば組織体系からカルチャーまで感じられます。会社を表す部分を担当しているからこそ、SREの重要な役割はカルチャーを築くことだと私は思っています。どのようにして組織全体に信頼性を高める文化を浸透させるかは私自身まだわかっていません。これからたくさん挑戦して失敗もたくさんすると思いますが、それすらすごくワクワクしてたまりません。
まとめると、SRE/インフラエンジニアはめちゃくちゃ楽しいです。どのフェーズでも。SRE/インフラエンジニアは組織の文化を作る仕事であり、ITインフラの設計建築をする仕事でもあります。そこには、SRE/インフラエンジニアそれぞれの哲学が表現されています。現代のSRE/インフラエンジニアがお互いの美しいアーキテクチャを語り合うのは、古代の哲学者が互いの信念を語り合ったことに通ずるのかなと私は思います。
最後に
最後までご覧いただきありがとうございます!
何かコメントや疑問がございましたらお待ちしております!
[1]https://www.optimind.tech/news/20200615-2.html
[2]https://prtimes.jp/main/html/rd/p/000000003.000034529.html