出前館の中で活躍する「SRE」の役割と重要性とは?
ITインフラにおけるクラウド活用が一般的になり、運用技術者に求められる役割が変化する中、「SRE(サイト・リライアビリティ・エンジニアリング)」に注目が集まっています。
「SRE」とは、WEBサイトやサービスの信頼性向上に向けた取り組みを行い、価値の向上を進める考え方と方法論のこと。時にその取り組みを行うエンジニア自体を意味することもあります。今回は出前館の「SRE」を担うお二人に、その役割と重要性について話を聞きました。
自己紹介
―まずは自己紹介をお願いします。職歴や趣味、学生時代に勉強していたことについて教えてください。
【岡田泰弘(以下、岡田)】
出前館に入社し1年半になります。前職ではSIerで携帯キャリアの仕事に長く携わっていたのですが、サービス事業者のECサイトを経験したことで自社サービスに関わりたいと思い、出前館に転職しました。出前館が転職1回目で、前職から引き続きインフラの構築や運用を担当しています。
最近はフルリモートで運動不足なので、休日は体を鍛えたり、長い距離を走ったりしています。情報系の学校ではなかったので、学生時代の勉強は今の仕事にあまり生かされていないですね。
【関藤寛喜(以下、関藤)】
5回の転職を経てLINE株式会社(以下、LINE)から出前館へ出向し、ちょうど1年くらい経ちます。元々Slerで組み込み系のC言語を扱い、プロバイダのシステムや都市銀行系の情報システムをJavaで作るなど経験を積み、事業会社に転職したことを機にクラウド系を扱ってきました。2014年くらいにAWSのクラウドを扱ってからは、AWSのクラウドエンジニアとしてAWS一筋になり、LINEに転職したあたりから「SRE」に携わり今に至ります。
趣味は歌うことなのですが、最近はカラオケに行けず歌えないので、家の近くをウォーキングしたり、Netflixを見たり、ゲームセンターでUFOキャッチャーをしたりしています。学生時代は情報数理学科で、暗号の研究や電子マネー系の研究をしていました。
出前館における「SRE」の役割とは
―出前館での「SRE」の役割について教えてください。
【関藤】
「SRE」と名乗っているわけではないのですが、既存のシステムや新しく作るシステムに対して、もっと効率的に、もっと安定して作るためにどうすればいいのかというコンサルティングをする役割を担っています。
例えば、開発途中のシステムで障害が起きた時、どこに原因があるのかを開発者と一緒に探して改善策を提案したり、リリース後にとあるSQLが悪さをしていると判明したら「こういうINDEXを張ったほうがいいのでは」とデータベースの観点で改善を図ったりします。新しい機能を追加するところでは、業務要件を聞いて、「ここのテーブルをJOINするより、こっちのSQLのほうがいいのでは?」と踏み込んで提案することもあります。
開発者がクラウドで何かをやりたいという時に、オンプレだと自分たちで作ってしまいますが、AWSにあるこのサービスならもっと楽に開発できるので使いませんか?とか、機能追加や修正を行う際に、別の箇所に影響が出る為、違う方法、違う仕組みでやってほしいと要望を出すなど、他システムとの影響を考えて助言をしています。
最終的には、プロダクトメンバーが決定しますが、デメリットを開発者に認識してもらい、その上で、開発者に決定してもらうという働き方をしています。
―エンジニアに対するアドバイザー的な要素が大きいのでしょうか?
【関藤】
外からのアドバイザーではなく、システムをちゃんと中身まで知っている、中からのシステムのアドバイザーですね。自分たちで何かを作ると運用が発生してしまうので、なるべく自分たちで物は作らない。インフラの面倒は見ますが、アプリケーションはなるべく作らずに、何かあった時にどこにでも行けるというポジションです。システムをよくするためにはどうすればいいんだろう?というのを考えているチームですね。
これまでインフラの運用はどちらかというと守りのタイプで、システムが安定して動くように努力することが多かったのですが、最近のクラウド化によってインフラの選択肢がかなり増えています。例えばAWSのこの新しいサービスを使うことで相当なコストカットが見込めるとか、このサービスを導入するともっと簡単に作れるのでは?、という攻めの領域がこの数年で拡大しています。今まで運用担当、開発担当のように分断されているチームが多かったと思うのですが、インフラも開発も一緒になって攻めていくというように、役割が変わってきています。
―「SRE」は問題解決屋さんというイメージを持ちましたがいかがですか?
【関藤】
問題がなければ「SRE」に問合せは来ないです。障害が起こっているがどうしたらいいのか?、新しいことをするのに不安だから見てほしい、やろうとしているけど全社的に共通したほうがいいんじゃないのか?、それぞれ疑問に思ったことが降ってきます。その問題を解決していくのが「SRE」だと言っても間違いではないと思います。システム的なところで我々に分からないことがあったとしても、分かる人を紹介したりして解決していきます。
出前館のサービスにおける「SRE」の重要性とは
―出前館のサービスに対して「SRE」が行う業務内容と与えている影響についてお聞かせください。
【岡田】
データベースまわりで話すと、CPUリソースを使い切らないように、より効率的に運用するという視点で、パフォーマンスデータを見ながら、改善策について助言を出したり、実際に手を動かして性能を良くしたり、何か問題があった時に調査をしたりしています。
【関藤】
「SRE」が出てきた背景に「マイクロサービス」があるのかなと思います。「マイクロサービス」で各チームが各役割を持って開発していくと、モノリシックな環境では1つのアプリケーションの影響範囲、他のチームへ影響があるのかどうかが分かりづらくなってしまう。
出前館のシステムでいうと、社内システム、エンドユーザーに向けたシステム、加盟店向け、配達員向けのBtoBtoCの全部を押さえないといけない。各チーム単位では大丈夫だけど、他のチームへの影響は大丈夫なのか?というのがすごく複雑です。
負荷が高い時代の出前館を知っていることで、ここでこのSQLは投げちゃダメ、これ以上複雑にしないでね、という指摘ができるし、データの中身の属性の偏りにも理解が深い岡田さんがアドバイスに入る。すると、他のチームとの整合性も担保していけるようになるので、全体や今までの出前館での経験を元にアドバイスできる「SRE」というポジションがとても重要になってきます。
もう一点、クラウドで攻めるという部分があります。今の出前館にはAWSに詳しい人が多くないので、やりたいことに対してどう使えばいいのかアドバイスするというところも重要性の一つです。それがないと、クラウドを使っている意味がほとんどないようなシステムになってしまいますからね。
―多方面で基礎的な知識がないとトラブルの元も見つけられないのでは。エンジニアとしてスキルと経験が求められますね?
【関藤】
今までの経験から、こういう障害ならたぶんこの辺が悪そうだなと、勘と経験でとりあえず最初のあたりをつけていくので、色んなプロジェクトを経験して、色んな障害に対応したことがあったほうがいいですね。
【岡田】
モノづくりをしつつ、運用も1年くらいは経験してほしいですね。出前館だとお昼や夕方の食事時にシステムのピークが来るんですけど、春夏秋冬でも波がある。そういうのは一度肌で感じないと結構わからないもので、意外に知らない、気づかないことも多い。1日ずっと同じリクエスト量が来るわけじゃないというのは、やってみないとわからないんですよね。そういう意味でも経験が必要かなと思います。
【関藤】
「SRE」の中にも、インフラ寄りとアプリケーション寄りなどいろいろあります。岡田さんだとデータベースに強い「SRE」。例えば出前館のシェアリングデリバリーや配送システムについても、業務を理解した上での助言を、エンジニアやシステムに対して行うことができます。
私はアプリケーションよりの「SRE」なので、データベースでは岡田さんには全然適わないです。例えば表示がおかしいという障害になると、ブラウザのデバックモードで通信の流れを見たり、自分でソースを見て、障害に対して悪さしている原因を見つけて、開発者に改善策をアドバイスしたり、おかしな値が入っていたのでそれを直したりということをしています。
―「SRE」は進化が激しい領域ですが、色々な技術や情報はどのように入手していますか?
【関藤】
Twitterやはてなブログで、好きなシステムのエンジニアや、AWSソリューションアーキテクトの人の話などをフォローして定期的に見ていたり、その会社のニュースリリースを見たり、勉強会やユーザー会の資料を見て機能への理解を深めたりしています。
【岡田】
私は系統立てて知りたいので、書籍から得ることが多いです。ネットに比べてタイムラグは多少ありますが、表面的なことだけ分かったつもりになるのも怖いですから。あとはセミナーで話を聞いたり、実際に手を動かしてみたり。解決したい課題からソリューションを見つけて、深掘りしていくタイプです。
出前館における「SRE」の苦労とやりがいとは
―出前館の「SRE」で苦労している点は?
【岡田】
システムの負荷が高くなってしまって、注文したいときにできないという状況が昨年末に頻発していたときは大変でした。ただの運用担当だと、あとは誰かよろしく!と逃げられたりもするんですけど、このポジションでは逃げられない。自分で何とかしなきゃという責任がのしかかる部分は、苦労であり、やりがいでもありますね。
【関藤】
最初の頃は出前館のことを何も知らないし、どういうシステムなのか分からないまま入ったので、どこに負荷がかかっているかは分かるけど、何故そういうシステムになっているのかという、歴史的なところを読みほどいていったり人に聞いたりして、理解することに一番苦労しました。そこがクリアできて、経緯を理解した上での提案ができるようになってきたので、苦労も報われてきている感じがします。
―出前館の「SRE」の楽しさとやりがいについてお聞かせください。
【岡田】
苦労を乗り越えることで、自分やチーム、会社のやれることがどんどん広がっていき、さらに新しいことを取り入れて、どんどん効率的に楽になっていくところに面白みとやりがいを感じています。
【関藤】
「SRE」のポジションは、色んなことを知らないといけません。エンジニアのサポートという意味合いもあるので、エンジニアから質問や相談を受けたときに質問の意図を理解し、相談にのる必要があります。ユーザーのことを考えるのと同時に、エンジニア同士のことも考える。最新の技術をしっかり追って、モダンなアーキテクチャに触れられるのは楽しいところです。「SRE」は保守的すぎてはいけないので、新しいことをどんどん突き詰めていく。まだ整っていないところが多い分、苦労もいっぱいありますが、常に刺激があり続けるというのは、やりがいの一つにもなっています。
出前館の「SRE」に求められることとは
―どんな人が「SRE」に向いていると思いますか?
【関藤】
「SRE」は花形ではないので、縁の下の力持ち的なところがあります。自分の成果を世界にアピールしたいとか、目立ちたがり屋みたいな人ではなく、黙々と色んなことを調査したり、皆から感謝されることに喜びを感じられたり、一緒に働いている人たちの力になりたいと思う人が向いているのかなと。そういう人に来てほしいなとも思っています。
【岡田】
人とのコミュニケーションが多いので、それが苦手じゃない人が向いているのではないでしょうか。人や新しい技術に興味を持ってくれる人、新しい環境に積極的に馴染もうとしてくれる人に来てほしいなと思います。