メルカリで働くソフトウェアエンジニアにちょこっとお話を聞いていく本シリーズ。第28回では、メルカリSite Reliability Engineering(以下、SRE)チームの@kazeburoにちょこっとお話を聞きました。聞き手は、メルカリBackendエンジニアの@sota1235です。
メルカリSREが発足したのは2015年。当時からシステム運用を支え続け、現在はテックリード(以下、TL)を務める@kazeburoは、今のメルカリの変化をどのように感じているのでしょうか。また、同じTLとして@sota1235が「ずっと聞いてみたかったこと」をぶつけました。
メルカリ入社の決め手は「レゴ」だった?
@sota1235:@kazeburoさん、ちょっとお話しいいですか?
@kazeburo:はい、どうぞ。
@kazeburo(メルカリSREチーム、TL)
@sota1235:す、すごいレゴですね。これは一体何をつくろうとしているんですか?
@kazeburo:石炭を採掘するときに使われる大型建設機械「バケットホイールエクスカベータ」です。仕事の合間にやりつつ、1年以上かけてつくっています。とは言え、まだ未完成なんですけれど。
@sota1235:そう言えば、噂によると@kazeburoさんが入社したきっかけは、メルカリでレゴを購入したときのサービス体験が良かったからだと聞いたことがあります!
@kazeburo:確かに、それも決め手の1つでしたね。しかし、ほかにもあります。元同僚がメルカリで働いていたこと、メルカリというサービスにはある程度のトラフィックがあり、そのなかで起きている課題などを聞いていて、「いちメンバーとしてやれることがありそう」と感じていたことも決め手でした。そして、2015年2月に入社したんです。
@sota1235:当時、メルカリを使ってみてどうでしたか?
@kazeburo:いいサービスだなと思いましたね。僕はこれまでエンジニアとして、開発支援やアプリ運用などを担当していました。キャリアのスタートは京都の小さな会社で、当時はサーバーをつくるところからフロントエンドまで担当していましたね。改めて振り返ってみると、今のSREのような仕事をするようになって、10年以上になります。
@sota1235:なるほど。
@kazeburo:僕らSREが担うのは、サービスのシステム運用的なところです。当然ながら、辛いこともたくさんあります。それでも頑張れるのは、サービスが良くて、かつ多くのお客さまに使ってもらえているから。そもそもいいサービスであるというのは、大事ですよね。そういう意味だと、メルカリはSREをやるうえで、とてもいいモチベーションになるサービスだと感じました。
@sota1235:いいサービスがある、というのはいいですよね。
メルカリSREは「1〜2年後にどうなっているのかわからない」
@sota1235:@kazeburoさんは2015年入社とのことですが、当時は全体でも100人いるかいないかくらいだったんじゃないかと思います。そのころに比べて、今のメルカリでどんな変化を感じていますか?
@sota1235(メルカリBackendエンジニア)
@kazeburo:まぁ、話したことがないメンバーが増えましたよね(笑)。
@sota1235:ですよね(笑)。僕は2017年に入社しましたが、このころはまだ、人数的にもシステム的にも目が届きやすい規模だった気がします。今はもう、人数は倍以上ですし、メルカリグループが新たに採用した開発手法の1つであるマイクロサービスへ移行しようとしているなどがあり、システム上の依存関係でもわからないものが出始めているように感じています。SREの立ち回りなど、何か変化はありますか?
@kazeburo:メルカリ内で何か起きたとき「何をしなければならないのか」「どこのシステムにつながっているのか」を探していくという動きは、SREチーム発足当時から変わっていません。しかし、SREだけではわからない現象も増えつつあるように感じています。
@sota1235:@kazeburoさんはTLも担当されていますが、立ち回りが変わったりしましたか?
@kazeburo:SREには3つのチームがあり、それぞれにTLがいます。そのなかで、僕が担当するチームが一番メンバー数が多いです。そこでは、サーバーの発注をとりまとめたりしていますね。他の開発チームではPMとの調整をTLが担うことも業務の1つ。ですが、SREではPMはいないので、ビジネスサイドなどの調整もありません。
@sota1235:では、そのなかでチームの方向性などを決めている感じでしょうか?
@kazeburo:OKRは設定しています。今は、マイクロサービスへの移行時ということもあり、SREで大きな絵を描きにくいタイミングでもあるんです。マイクロサービス移行後、自分たちの立ち位置がどうなるのか、誰も答えを持ち合わせていません。そういう意味では、1〜2年後にどうなっているのかわからないというのが正直なところです。なので、今は現在抱えているシステム上の課題や、そのほか身近な問題を一つひとつ解決し、これから起こるであろう変化に備えようとしています。
「普段の観察」をする・しないが大きな差になる
@sota1235:ずっと、@kazeburoさんに聞いてみたいことがありました。というのも、@kazeburoさんは10年以上SREをやっているエンジニアで、僕からすると技術的にもスペシャリストという印象です。そんな@kazeburoさんがキャリアとして、マネジメントではなく「技術を追究し続ける」という意味で現場に立ち続ける理由を知りたいです。
@kazeburo:大事にしていることの1つに「手の届く範囲から解決していく」があります。これを10年以上やり続けてきたのですが、それでも上には上がいるわけです。例えば、同じSREの@shmorimoさんもそうですし、ほかにも世界中で活躍されているエンジニアはたくさんいます。そういった方々を見ていると、まだまだやりたいこと・やれることはあるかなと思っているんです。
@sota1235:上には上がいる。それは、@kazeburoさんが具体的に「何エンジニア」を目指しているなかで感じることなんでしょうか?
@kazeburo:僕は、最終的にはサービスがちゃんと動いていて、お客さまに安心して使ってもらえるのが一番いいと思っています。そういった状態を目指すために、必要な技術を自分たちで探し、つくっていく。なので、特定の技術や「◯◯エンジニア」と名前がつくプロフェッショナルを目指しているわけではないですね。
@sota1235:これまでも、メルカリで何か起こったときには原因を追及し、解決してきたと思うのですが、そのときの勘所のようなものはどうやって培ってきたのでしょうか? 経験だけに頼らず、自身の引き出しをどうやって増やしているのかを聞きたいです。
@kazeburo:まず、観察することが一番ですね。
@sota1235:観察、ですか?
@kazeburo:はい。SREはサーバー運用などもしているので、いろいろなグラフを見て「変化がないかどうか」をチェックしています。グラフだけでなくサーバー内に入って何が起きているのかを見続ける。そうしていると、障害が起きたときに「普段と何が違うのか」がわかるんです。観察に時間をかけ、それをもとに仮説を立てたりアイデアを出したりしています。そして検証してみる。
@sota1235:通常時を知っているから、異常に気づきやすい?
@kazeburo:もちろん、思い込みが原因で見当違いだったなんてこともあります。でも、通常時を知っていないと、すぐに動き出すことはできませんよね? 普段から見ている・見ていないの違いは、いざというときに大きな差となります。しかし、小さなチームだった場合、一人何役も担うような環境下もあり得ます。そうすると観察の時間は必然的に短くなるので、このあたりの解決策はまだなんとも言えませんが。
@sota1235:「観察」に着目するようになったきっかけなどあったりするんですか? 誰かに教わったとか?
@kazeburo:それで言うと、この業界自体がまだ20年ほどしかなく、僕自身が誰かに教わりながらエンジニアをしてきたわけではありません。この仕事をやり始めてからいろいろなデータを集めるようになり、その数字の意味などを見ていくようになったこともありますし。あと、僕はもともとハードウェアが好きなのですが「なぜ壊れたんだろう?」と原因を追及するために普段の状態からチェックし始めたこともきっかけの1つですね。そのなかで「この作業は不要かな」と、一つひとつをトライアンドエラーしてきました。
@sota1235:今月で一番いい話を聞けた気がします。今度、僕のチームでも同じ話をしてみようと思います。
「メルカリはサービスの土台づくりに投資できる会社だと思う」
@sota1235:僕は、現段階では技術的なスペシャリストを目指したほうがパフォーマンスを上げられると考えてTLをやっていたりします。ぶっちゃけてしまうと、マネジメントより技術の深掘りに集中したくて。
@kazeburo:わかりますよ。コンピューターの中身を考えるほうが合っているというか。これは、@suguruさん(メルカリCTO)も似たことを言っていましたね(笑)。
@sota1235:ですよね(笑)。@kazeburoさん自身、今後メルカリでなにかしたいことなどありますか?
@kazeburo:あまり、夢を語る方ではないのですが。強いて言うならば、たくさんのコンピューターリソースを使って、サービスの土台をもっと良くしたいですね。AWSやGCP、さくらインターネットさんや自社のデータセンターなどいろいろなものを使いつつ「何ができるのか」「どういったことを実現できそうか」などを考えられるのは非常にいい。これまでそういったことを実現してきたIT企業はほんのわずかですが、メルカリはそういったことに投資できる会社だと思っています。
@sota1235:AWSとかAlibaba Cloudは社内向けのものが社外に展開されたものなので、メルカリもそれができるとおもしろそうですね。
@kazeburo:ですね。