目標が高いからこそ「攻めのインフラ」を貫きたい。3.5人でKARTEの裏側を支えるSREチームの流儀
「インターネット上で“人を知る”ことを可能にし、インターネット全体のMiddleware(ミドルウェア)になる」。プレイドでは技術的なミッションとして、そのようなテーマを掲げています。
いまのインターネットはユーザーのアクションやコミュニケーションを前提に作られていないので、ユーザーに紐づくデータが溜まっていきません。そこでインターネットの上に薄いユーザーレイヤーを作ることであらゆるサイト上のユーザーをデータベース化し、サービスを提供する人がユーザーを知り、今より心地よい体験を提供できる仕組みを作りたい。そんな考えの基、CX(顧客体験)プラットフォーム「KARTE」を開発しています。
そのKARTEを裏側で支えるのは、わずか3.5人のSREチームです。これまでに累計25億人のユーザーを解析。最大では4万イベント/秒のトラフィックに対応し、そのデータを1秒以内にリアルタイムで解析するという、ハードなチャレンジを続けてきました。
そんなSREチームの重要なキーワードが「攻めのインフラ」。今回はプレイドに3人目のエンジニアとしてjoinし、現在のSREチームを作ってきた竹村に、チームの思想や取り組みについて話を聞きました。
【竹村 尚彦】プレイド エンジニア
プレイドでは主にインフラ全般を担当。2011年同志社大学工学部を卒業。NECに入社しエンジニアとしてクラウドサービスの立ち上げに従事。2014年11月より株式会社プレイドに参画。
難しいことにもあえて挑む「攻めのインフラ」
ーー 最初にSREチームの役割やコアとなる思想を教えてください
竹村:プレイドのSREチームの役割は、KARTEの裏側を全般的に支えることです。会社として「インターネットのミドルウェア」になりたいという技術的なミッションを掲げているので、KARTEの裏側を世界のサービスと比べても圧倒的に強くしなければいけないと考えています。
ただその世界観を実現するには、普通のことを普通にしているだけでは仕方ないという認識があって。自分たちの目指している所が、直線的な成長ではたどり着けないものだからこそ、新しい価値を生み出すために「難しいと思いがちなことにあえてチャレンジする」「当たり前の逆を意識的にやりにいく」スタンスを大事にしているんです。
その意味でチーム内では「攻めのインフラ」という言葉をよく使っています。
ーー インフラはどちらかという守りのイメージがありますよね
竹村:まさにインフラのように裏側の領域は、その特性上どうしても守りがちになると思うんですよね。色々なお客さんに使っていただいているので、落とせないですし常に安定して動かし続けないといけません。
だから「攻めのインフラ=守らない」という意味ではなく、守りはしっかり抑えつつ、攻める状況を作ることを意識しています。バランスは取るけど、常に前傾姿勢でバランスを取るイメージです。
重要なのは目的意識だと思っていて。決して、落とさないことが目的ではないんですよね。もちろん落とさないのは大前提ではあるんですけど、本当にやりたいのは会社として新しい価値を作ることであり、お客さんに今まで以上の価値を提供すること。普通にやると守りによってしまいがちだからこそ、意識を攻める側に傾けることでバランスが取れるのかなと考えています。
たとえばAWSとGCPなど複数のクラウドプロバイダを活用する「マルチクラウド構成」だったり、NetflixとGoogleが開発しているCI/CDのためのOSS「Spinnaker」の活用だったり。世界的に見てもまだ事例が少ないような取り組みを積極的に推進しているのも、そういった背景があるからなんです。
またKARTEの負荷的な側面の話をすると、累計で25億人くらいのユーザーデータを解析してきました。今では最大で4万イベント/秒のトラフィックを、だいたい1秒以内にリアルタイムで解析しているんですが、実はこれを3人+0.5人の3.5人で支えているんですよ。
ーー 少数精鋭ですよね。「攻めのインフラ」だからといって、そこにたくさんの人を配置するわけではないと
竹村:人を増やせばある程度は解決できたりもするけれど「そうじゃないよね」と。そこが自分たちの頭の使い所というか、チャレンジングな部分だと思っていて。単純に人を増やすのではなく、いかに頭で解決するか、技術で解決するか。その点はエンジニアとして取り組みがいのある部分かなと思っています。
3.5人で最高のパフォーマンスを出すために、各々が独立して動けることを大事にしています。それを実現するために会社全体の大きなミッションをインフラ的なミッションにブレイクダウンして、それをチームで共有しながら各自が「俺はこれをやるね」みたいな形でどんどん動いていくスタイルを取っています。取り組む内容もインフラからフロントエンドまで、解くべき問題によって様々です。
これはプレイド全体がそうなんですけど「あなたはフロントエンジニアなのでフロントエンドの開発だけをやってください」のように明確な枠が決まっていなくて。僕たちも「SRE」というグルーピングを一応しているのですが、そこだけしかやらないというわけではないんですね。
プレイドでは1番始めにあるのが“問題”で、その問題を解くためにどんな手段をとりますか、という考え方をします。手段の選択肢は自由にできるようにしているので、たとえば僕達がフロントエンドの開発をやったり、反対に他のチームのメンバーがバックエンドやインフラの開発をやったりすることもあります。
大きな目標を掲げているからこそ、インフラも攻める
ーー 竹村さん自身はかなり早い段階でプレイドに加わっていますよね。それこそ入社前から「攻めのインフラをやりたい」という話をされていたんですか?
竹村:エンジニアとしてはCTOも含めて3人目、全体で10人目の社員として入社しました。もうすぐで丸4年になります。ただ入社前から攻めのインフラの話をしていたかというと、全然そんなことはなくて。結局、入った後で他のメンバーの得意分野や自分のバックグラウンドなどの状況を踏まえて、まずはインフラをやることに決めたんです。
別にインフラがやりたいという軸で入社したのではなく、そこで働くメンバーやプロダクトの構想が面白そうだし、色々できそうだと思ったから入社しました。入ってみたらインフラの部分が1番足りてなさそうだから、結果的にインフラを中心にやっていくことに決めました。
会社としても基本的に各自がやりたいことを尊重して自由に取り組める文化が当時からありますし、僕がこんな感じだからか、チームのメンバーもインフラだけに拘っているメンバーはいない気がします(笑)。インフラはあくまでも手段の1つですね。
ーー最初は主に竹村さん1人でインフラ周りを担当されていたと思うんですけど、約4年前から軸となる考え方は変わらないんですか?
竹村:マイナーチェンジはしてますけど、軸は変わってないですね。「攻めのインフラ」と大々的に発信はしてこなかったですけど、それが最初から基準になっているというか。会社としても初めから大きな目標を掲げていたので、必然的にインフラも攻めの姿勢で進めてきました。
自分の特性として攻めの姿勢を持つタイプなのですが、柴山をはじめとする当時からいるメンバー全員が「直近見えているところがゴールじゃなくて、目指すのはその遥か先だよね」という共通認識を持っていたため、「自分もこのやり方でガンガンやってもいいんだ」って更に背中を押された部分はありますね。
その結果として、最大4万イベント/秒のトラフィックを1秒以内にリアルタイムで解析するインフラができているんだと思います。
想像できない負荷にも耐えられるインフラを整備する
ーー 結果的には4年経つ今でもSREとして活躍されていますね
竹村:インフラやバックエンドは特性として、負荷が大きくなったりなどフェーズによって全然性格が変わるというか、全く違う生き物になるんです。だからある意味飽きずにやれているというか。どんどん新しい課題が出てくるので、常にチャレンジできてる感覚はあります。
KARTEを落とさないとか、守りのことだけを重視しちゃうとサービスが成長して負荷が大きくなるとストレスに感じてしまうかもしれませんが、僕たちはむしろ大歓迎というか(笑)。「ガンガン負荷をかけてもらって大丈夫」ということは、社内でも伝えています。
以前からチーム内のメンバーともよく権威的にならないようにしたいよねと話をしていて。というのはインフラはプロダクトを支える主体となるものなので、権威的になりやすいポジションだと思っているんですね。なので他チームのメンバーとしっかりコミュニケーションをとりながら「負荷は歓迎だよ」とか「後ろ側の変更などについてもどんどん意見を言って欲しい」など意識的に発信するようにはしています。
社内に限らず、社外のクラウドプロバイダーの方々とも同様で。僕たちは顧客だから偉いとかではなく、ある意味ではチームプレイドのような形でお互いが協力しながら仕事をできるようにと考えています。
ーー今後取り組みたいことなどにについてはいかがでしょう?
竹村:定性的な目標になりますが日本国内はもちろん海外でも使われるプラットフォームを作っていきたいというのはあります。
4年前はまだKARTEが正式にリリースされておらず、直感でプレイドに入社して。そこから自分の感覚や周りの同僚を信じて進み続ける中で、少しずつ考えていたことを現実にしたり、コアとなる価値観を醸成することができてきたのかなと。インターネットのミドルウェアになるという目標はまだまだ遠いんですけど、決して不可能ではないという手応えもあるんですね。
目標に近づいていけば、今では想像できないくらいの負荷がかかる時期が訪れると思うので、SREチームとしてはその状況に耐えうるようなアーキテクチャーや体制を作っていきたいと思っています。今の状態でもそれなりに耐えられるとは思いますが、先を見据え、背伸びをし続けて、攻めていくつもりです。
そのためにももっと仲間を増やしていきたいなと。やっぱり事業もプロダクト開発も全ての源泉は“人”。自分達が描く未来像に対して今のメンバーだけで到達できるかというと、それだけでは足りないと思っています。プレイドもまだまだ成熟していなくて、めちゃくちゃやることもあるので、その環境を面白いと思ってくれるような人にも加わってもらって、一緒に世界を獲れるようなプロダクトを開発していきたいですね。