こんにちは、技術広報の益山です!
ここ数年、「DevOps」や「NoOps」、そして「SRE」などの言葉をIT業界でよく耳にするようになりました。
一方GMOリサーチでは、2021年より、(S)最高にアーキテクトを改善して、(R)楽になろうよ、(E)エンジニア!の文脈で『SRE』チーム※ が立ち上がり、開発基盤の構築やNoOpsに着々と取り組んでいるところです。
さまざまな企業がそれぞれの方法でSRE に取り組む中、GMOリサーチの『SRE』チームはどのように活躍しているのか。挑戦の連続だったプロジェクトを振り返りつつ、お話を聞いてみました!
※本来であればSRE(Site Reliability Engineering)が正しいですが、より今回のプロジェクトの実態に即した表現にしています。
インタビュイー
寺澤(写真左上):GMOリサーチ株式会社CTO室所属。共同CTO兼シニアマネージャー。最近の役割はアーキテクト選定やシステムの設計・レビュー、問題の調査・解決など。2歳の息子と車で色んな公園に行くのを趣味にしてます。
松村(写真左下):GMOリサーチ株式会社システム部CTO室開発基盤課所属。GMOリサーチ歴約10年。主な仕事内容は、システム開発。プロジェクトの仕様調整や、メンバーのスケジュール管理等もやります。働きながら、中学生、小学生、保育園児の三人娘の子育て中!
福原(写真右下):GMOリサーチ株式会社システム部所属。機械学習やってたら環境管理の重要性に気がつきDockerを触りだしていたところ、『SRE』チームに召喚される運びとなった。最近図書館から横山光輝三国志を借りて通し読みしたところ、セリフも名前もある武将が登場後たったの2~3ページで斬られて退場していくという展開の速さの連続に困惑しながらなんとか読破。途中のグダグダが長くて後半のストーリーがあまり頭に入っていない。
インタビュアー
益山(写真右上):GMOリサーチ株式会社システム部所属。技術広報2年目。主な仕事内容は、開発ブログの運営やSNSの更新、インタビュー記事の執筆など。鹿児島県霧島市出身。趣味は読書と漫画で、最近読み始めたSF小説「アンドロイドは電気羊の夢を見るか?」が難解で困り中(でも最後まで読みたい)。
『SRE』チームの発足は2021年
--皆さん、今日はよろしくお願いします。早速ですが、『SRE』チーム発足のキッカケを教えてもらえますか?
寺澤:はい、よろしくお願いします。ちゃんとSRE をやろう!ってなったのは今年の初めくらいですね。『SRE』チームとして発足したのは今回のプロジェクトが初でした。
話の前段として、GMOリサーチではDocker を使っているサービスがまだなかったので、そろそろ使ってみたいね、という話がありました。ただ、まだDocker の良し悪しが分かっていない状況でいきなりサービスのコア部分を置き換えるのは違うなとなったので、まずは社内向けの機能を作るプロジェクトで試してみることになりました。
ここから『SRE』チーム発足の直接のきっかけになるのですが、今までのプロジェクトでは、何か新しい挑戦を行う場合は、メンバーの開発リソースの中でやってもらってて。今回のプロジェクトはあまりにも新しい挑戦づくめだったので、『SRE』チームとして開発環境の構築にフォーカスする人を別途アサインすることにしました。
「エンジニアに頼らない仕組みを作る」ための NoOpsプロジェクト
--今回『SRE』チームとして取り組んだプロジェクトの内容について聞きたいのですが、誰に聞けばいいでしょうか?
寺澤:じゃあ、あやさんで。
松村:えー、わたし?(笑)いいですよ、このプロジェクトの概要は分かるので説明しますね。今回のプロジェクトでは、スペシャルパネルっていう特別なアンケート回答データを、業務サイドで自由に自社のアンケート配信プラットフォームMarket Observer にアップロードすることができるようにしました。
これまでは、データをエンジニアに渡して、エンジニアがそれをチェックした後に手動でアップロードする必要があって、業務サイドとシステムサイドで色々なやりとりが発生してたんです。それが、業務サイドで簡単にアップロードできるようになったので、スペシャルパネルのデータをより柔軟に、そしてスピーディに営業活動に使ってもらうことができるようになりました。
--システム運用における嬉しくないことを無くす、NoOps的なプロジェクトだったんですね。ちなみに、スペシャルパネルっていったいどんなものなんでしょう・・!?
寺澤:そもそもGMOリサーチは「マーケティングリサーチ業界」に位置していて、様々な属性を持つモニターさんのアンケート回答データを企業のマーケティング活動などに役立てていただくお手伝いをしています。通常、モニターさんの属性データって、性別や年齢、居住地くらいしか把握していないんですけど。スペシャルパネルは、特定の条件を持つモニターさんを事前に把握してデータとして貯めておくような機能のことで、例えば「トヨタの車を持っている人」という特別な属性のモニターさんをターゲットにアンケートを配信したい場合などに役立ちます。
その特別な属性データを集めて、自由にアンケート配信するところまでを、エンジニアに頼らずに実現できるようにしたのが今回のプロジェクト内容になります。
初の言語、初の本番環境コンテナ化を振り返る
--今回のプロジェクトでは「新しい挑戦づくめ」とおっしゃっていたと思うのですが、具体的にどんな挑戦がありましたか?
寺澤:本番環境をコンテナで稼働させたのが初めてだったので、それにまつわる様々な検証や構築ですかね。たぶん福原さんがいちばん色々やったんじゃないかな?
福原:そう・・・ですかね。もちろん皆さんのご協力あってのことなんですけど、本番環境をコンテナ化するということで、ECS、Fargate、CodePipeline、CodeDeploy に挑戦したり、CI としてGitHub Actions に挑戦したり、API仕様書生成自動化として、Swagger をやったり。
--盛りだくさん!!!絶対大変でしたよね!?
福原:うーん、まあやっぱり一つの変更にともなってまた新しい変更が出てきて・・・の繰り返しだったので、それをとにかく調べまくって試行錯誤しながらなんとかやり切る!っていうのは中々大変でした。
--なるほどお・・・。それだけやって謙虚なのが福原さんのすごいところですよね。あやさんはどうですか?
松村:わたしは開発環境周りはもちろんだけど、やっぱりKotlin 初めて使ったのが大きいかなあ。去年のプロジェクトぐらいからJava の代わりにKotlin 使おうってなってたんですけど、わたしは今回が初めてで。
でも、やる前に岡崎さん(※)に勉強会やってもらったり、福原さんと岡崎さんがサンプルソースをいっぱい作っておいてくれたりしたので、それを参考にしながらなんとかなりました。もちろん簡単ではなかったけど・・・。若干Java に似てるから、入りやすかったのかなと思ってます!
(※)岡崎さんのインタビュー記事:https://www.wantedly.com/companies/gmo-research/post_articles/317500
プロジェクトを振り返ってみて、それぞれの感想
--このプロジェクトをやってみてどうでしたか?それぞれ感想をお願いします!
寺澤:自分はめちゃくめちゃ良かったと思いますね。苦労はすごかったですけど(笑)SRE っていう切り口がってよりは、かなり色々なことに挑戦したプロジェクトだったので、それが良かったなと。
松村:大変だったけど、みんなで助け合ってできたかなーと思います。Kotlin も初めて使った言語だったけど、意外とハマらずいけました。スケジュールがギリギリな場面もあったけど、開発力が乏しすぎて大幅に遅れるようなことはなくて、チームワークのおかげかなって。朝礼や終礼で困ってることとかわかんないことを共有して、みんなで解決することができたおかげかなぁって思います。
福原:やってみた感想・・・やればできるな。やったらできるな。ですかね。
途中は結構これやばいかな、どうしよう時間内にクリアできるかなっていう不安はあったんですけど、着地してみれば綺麗に、ちゃんと動作するようにできたんで、挑戦したかいはあったなと思います。もちろん別のプロジェクトでやったらまた別の課題があると思うんですけども、次にも活かせそうだなって手応えはありますね。ただ、今回やりきれなかった部分もあるので、『SRE』 的な動き方は今後も続けていきたいと思ってます。
--インタビューをしててもチームの良い雰囲気が伝わってきました。皆さん『SRE』チームとして携わった初プロジェクトに確かな手応えを感じているようですが、今後はどのように動いていく予定でしょうか。
寺澤:もちろん引き続き活動していく予定ですよ。そもそも今回挑戦した本番環境のコンテナ化は、今回の新しいプロジェクトで作ったところにしか適用していないので、今回得たナレッジを今後のプロジェクトに適用していく必要があります。なので、今後立ち上がるプロジェクトは『SRE』チームの福原さんに入ってもらって、どんどんナレッジを共有していってもらうつもりです!
今後一緒に働きたい人のイメージ
--最後に、今後どんな人と一緒に働きたいか教えてください。
寺澤:新しい挑戦がいきなり正解になることは少ないので、一緒に走りながら改善していってくれるようなマインドの人がいいですね。
松村:うーん。状況によって色んなことに挑戦する環境なので、例えばPHP ができるのでPHP だけやります。みたいな人じゃなくて、必要な時に必要なことに取り組める人がいいなって思います!
福原:幅広いことに挑戦するので、色々なことに興味を持って楽しんでやれる人がいいです。あとは新しいことに挑戦すると言うのは様々な方法を試行錯誤していくことなので、一度習得した技術に固執しないことも重要かもしれません。自分も今回はCircleCI について色々調べたけど結局使わなかったし・・・(笑)必要とあらば、その場ではその技術を捨てることができる人がいいですね。
--なるほど、コツコツと挑戦を積み重ねられる人、やると決めたことをやり抜ける人、ケースバイケースで柔軟な対応ができる人・・・といった感じでしょうか。是非そういう方と働けたらいいなと思います。それでは、ありがとうございました!