[エンジニア対談]開発エンジニアが聞く、開発支援/SREエンジニアの面白さや価値提供
今回は、LINE Fukuokaで働く開発支援エンジニアにスポットを当て、彼らの入社のきっかけや現在の仕事内容など、LINE Fukuokaで働くこととはどのようなものか聞いてみました。
インタビュアーは、同じくLINE Fukuokaで働く開発エンジニア・森田さん、エンジニア同士でざっくばらんにお話をしてもらいます。
LINE Fukuoka開発支援エンジニアのこれまでのキャリアと入社のきっかけ
―森田(インタビュアー)
では、改めまして。緊張しますよね、僕、実はすごく緊張しやすいんですよ。
えー、開発室の森田です。まず、皆さんのこれまでの経歴(キャリア)とか、どんな経緯でLINEに入られたのか教えてほしいです。松崎さんからお願いできますか。
―松崎
はい、松崎です。LINE Fukuokaに入社するまでは、福岡で業務システムの開発運営を行っていました。まあ、何でも屋のような感じでやってましたね。元々livedoorの時代からエンジニアの人たちが発信する情報を参考にしていて、当時自分でも業務に取り入れてやっていたのがきっかけで興味を持って、LINE Fukuokaに入社したという感じです。
ちょうど入社して2年になるのですが、当初は開発エンジニアとして入社しました。その時はまだ開発支援チームがなくて、1年くらい前の開発支援チーム立ち上げに参加して現在に至ります。
―森田
何でも屋って、俗に言うフルスタックエンジニアみたいな感じだと思うんですけど、サービスの開発ではなく開発支援を選んだ理由とか何かありますか?
―松崎
えーとですね、開発支援チームを選んだ理由は、尊敬するエンジニアが所属していたので、その方達と一緒に働いてみたいと思ったことと、ISUCON(Iikanjini Speed Up Contest)というものがあって、僕も参加したところ彼らに全然勝てなかったんですよね。それでこのチームで仕事をしたら何か、得られるものがあるんじゃないかと思ったからですね。
―森田
ありがとうございます。では、中村さんはいかがでしょうか。
―中村
僕は業務系の小さい会社で6年くらい経験した後に、Web系の会社に移りました。それからはずっとWeb系の仕事をしています。LINE Fukuokaに入社するきっかけは2つあって、1つは前職の時に和田さん(LINE Fukuoka 開発室室長)の話を聞いて興味を持っていたこと。2つ目は凄いエンジニアが沢山いるとよく聞いていたことです。
僕も松崎さんと同様、当初は開発エンジニアとして入社したのですが、今までの経験上サーバのセットアップからだいたい全部やっていたので、インフラ寄りのチームをつくると聞いたときに興味があり参加させてもらいました。
―森田
Web系の会社にいたってことですが、サービスの開発もしてたんですか?
―中村
そうですね。自社のサービスで、主にショッピングカートのシステム開発をやっていました。それ以外にもライブチャットのサービスとか、ブラウザゲームの開発もやっていましたね。
―森田
へー、おもしろそうですね。ちなみに、どんなところに興味を持って開発支援に手を挙げたんですか?
―中村
結構、インフラ寄りの仕事(サーバのセットアップを行うこと)も多かったので、その業務をメインにやってみるのも面白いかな、ということで手をあげましたね。
―森田
なるほど、ありがとうございます。
実は松崎さんと中村さん、以前は今、僕が担当している「 LINE占い」のプロジェクトで一緒にサーバサイドの開発をしていたんですよね。その頃、松崎さんからあったように、福岡に開発支援チームを作るということで公募があって。まさか2人とも手を挙げるとは思わず、2人が異動してさすがにきつかったという思い出がありますよ。(一同笑)
はい、では次ポールさんお願いします。
―ポール
僕はアメリカ出身でノースカロライナ州立大学を卒業しました。その後シリコンバレーに行って、7年間スタートアップの会社で働いてました。1社目は、開発業務と少しだけインフラの業務も経験しましたね。2社目では、ほとんどインフラ(DevOps)のことをやっていて、そのときすごく面白くて楽しいと感じました。
当時趣味として日本語の授業を受けていたんですが、それがすごく楽しくて、次のキャリアを決める時、沢山勉強して日本に住んでみたいと思うようになりました。そんな時にLINE Fukuokaのことを知って、今までの経験を活かし運用側の仕事ができる開発支援チームに入りました。
―森田
同じ日本でも東京ではなく、福岡を選んだ理由はなんですか?
―ポール
東京は旅行とか、行くのは楽しいけど住むのはどうかなと思って。
福岡には以前に来たこともあったし、料理は美味しくて人は優しいし、ずっと福岡に居たいと思ったので、今は本当に良かったと思っています。
―森田
ポールさんは日本語が上手ですが、全部自分で勉強されたんですか?
―ポール
いや、まだまだだけど、普通の会話は大丈夫です。サンフランシスコに住んでた時に、よく日本人の友達と会って、半分英語半分日本語で会話するようにしていたので、そのおかげで少し話せるんだと思います。
―森田
なるほどですね。ちなみに日本で働いてみて、アメリカと違いを感じるところってありますか?人とか環境とか。
―ポール
まあ、ありますけど、ITの会社に入った分ギャップはそんなにないですね。他業界の会社に入ったらもっと沢山違いがあると思います。IT会社は敬語とかそんなに厳しくないので。(笑)
―森田
業界や社風がカジュアルで心地よいってことですね。
主要なミッションはPrometheus・Grafanaを使ってのツール改善やDockerの設計
―森田
みなさんが所属する、開発支援チームに関してお聞きします。東京にも同組織があると思うんですけども、ざっくりと開発支援の役割を教えて頂けますか。
―松崎
そうですね、現在のLINE Fukuoka開発支援チームの主要なミッションとして、モニタリングの改善を行っています。具体的にいうと、Kuradoとかlivedoor時代の内製ツールとか昔からあるモニタリングのツールで使いにくいと感じる部分の改善です。PrometheusとかGrafanaを使っていい感じに。
あとは、LINE 社内でも一部のプロジェクトでは利用しているけど福岡ではまだ使っていないDockerとかコンテナも使いたいねって話もあります。昨年末の社内ハッカソン*の時に、Bot as a Service(LINE Bot開発者が簡単にBotを動かす為のプラットフォーム)という物を作ったんですよ。
その時に得た知見を元に、DockerとKubernetesを使ってBotに限らずWebアプリ全般に使えるよう再設計して実装を進めているところです。
―森田
なるほどですね。
今、チームで話してやってみようかとなった、ということですが、仕事ってどういうふうに降ってくるんですか?今の話だと自ら提案、例えば“こういうのおもしろそうだ”と提案したら、“じゃあそれやろうか”みたいなコミュニケーションですか?
―松崎
それはですね、開発支援の業務範囲はとても幅広くて仕事がいっぱいあるんですよね。
仕事をする上で短期と長期の視点が必要だと思っていて、直近の仕事としてやらないといけないことはありますが、先を見越して本当に必要なのは何かを考え、ある程度自分で今やる仕事、これはあとの仕事、という整理をしていますね。
―森田
さっきのDockerの話とか、昨今よく話題になるDevOpsの話になるんですか?
―松崎
Dockerの話だと、運用環境の改善の話かな。サーバをサービスに投入するときにアプリケーションが動くようにしますよね。詳しく話すと長いのでまとめると、アプリケーションの稼働するコンテナを定義しておいて簡単にアプリケーションの動く環境を作れるようにするという話です。広義でいえばDevOpsの話でしょうか。
―森田
僕もサービスの開発をしているとサーバが必要になることがありまして、そのような時は開発支援チームにお願いして用意してもらってますが、実際に物理的なサーバを触るということとかあるんですか?
― (一同)
ないですね。(笑)
―松崎
そこはですね、LINE 社ではデータセンタ運用やインフラ系の開発を行う専門部署がありまして、そちらで全てハンドリングされています。
そこが一般的にいうインフラエンジニアがいる部署で、僕ら開発支援チームがミドルウェアとかアプリ側をうまいことやる部署、そしてサービス開発部署がサーバサイドだったりアプリだったりを開発している、そういう感じになっています。
―森田
なるほど、ということは開発支援チームはインフラチームとは全く別ということですね。
―松崎
そうですね。僕らもネットワーク周りやHW絡みの設定は触れないですね。
―森田
なるほど、よくわかりました。
―森田
えっと、ポールさんは前職でDevOpsをされていたと仰ってましたが、今の開発支援チームの中では同じようなことをされてるんですか?前の会社での仕事と今のチームの仕事との違いはありますか?
―ポール
使うツールはちょっと違いますが、大体似てます。前職ではSaltを使って、今はAnsibleを使っているので、ほとんど同じものですね。
今はモニタリングを改善して、開発者がもっと簡単に使えるものを創ろうとしています。
―森田
ポールさんは監視の部分?Prometheus?
―ポール
そうそう、Prometheus。
―森田
PrometheusとGrafanaは「LINE占い」にも入れてもらったんだけど、僕が興味深かったのは、設定してもらった後の数字ですね。結構みんな見るんですよね。
サーバの負荷があがってるなと思ったら実は企画の方がキャンペーンをうってたとか、そういうのがあって。みんな数字の変動には興味があるけど、サービス開発をやっていると監視とかは後回しになってしまって、そういう部分をサポートする役割もありますよね。
あとはGrafanaになんか色々表示されているけど、どうやって見るのか分からないとか。僕らもよく教えてもらったりしてますね。
そういった意味ではSRE、まあ定義の話かもしれないですけど、SREとしての仕事もありますね。
―松崎
そうですね。負荷が高くなってアラートが来た時は、サービスの担当エンジニアと一緒に原因を調べてパフォーマンスの改善もしています。アプリケーションのコードも見ますし、使用しているOSSにパフォーマンス改善のパッチを書いて送ったりもします。
Prometheusを導入した事によって今まで取っていなかったメトリクスが簡単に取れるようになったし、それでアラートを上げられようになったので、障害発生時の対応や原因調査がやりやすくなりましたね。
―森田
「CPUやメモリなどのリソースは足りているか。そもそもサーバの台数は足りているか。スレッド数などの設定値は大丈夫か」など見ていただいてますね。
サービスやっている側からしたら、そういうところを見て頂けるのはありがたいですね。
エンジニアにとって開発しやすい環境・効率化のために各ツールの開発・運用がタスク
―森田
みなさん個別に違うかとは思いますが、具体的にはどのような作業をされているんですか。今までの話とかぶるところもありそうですが、松崎さんいかがですか?
―松崎
えーと、開発支援チームでは色々やっていますよ。(一同笑)
最近は新しいエンジニア向けに、オリエンテーションの企画やそのハンズオンに使うコンテンツを作っていますね。
―森田
なるほど。ほかにはありませんか?
―松崎
そうですね。最初のほうでも話したと思いますが、DockerとKubernetesを使ってアプリケーションを動かすプラットフォームを作ってます。例えば、GitHub repositoryを指定してボタンをポチッと押すだけでDockerコンテナとしてデプロイされるような。
―森田
いいですね。
中村さんは今どういったことをされていますか?
―中村
僕はサービスでアラートが上がった時に対応をしたり、老朽化したサーバ上で動いているサービスを新しいサーバに乗せ替えたりしています。ほかにも、ここまで何度も出てきたPrometheusを使った監視のためにexporterという専用のアプリケーションを各サーバにインストールしています。その作業も自動化できたらイケてるだろうということで鋭意開発中です。あとはPromgenをPythonで置き換える開発もしていますね。
―森田
OSSに貢献されている感じなんですね。なるほど。
―中村
開発支援チームのミッションは開発環境の効率化、開発者が開発しやすい環境をつくるということなんです。
で、社内で使っている NoPaste を Markdown 記法が使えるようにリニューアルしたり、画像のロスレス圧縮をサービス毎に実装していたりするのは無駄なのでみんなが使えるロスレス圧縮ツールを作ったりしています。
―森田
NoPasteはウェブブラウザでテキストを共有するツールですよね?開発者だけじゃなくて、QAの人も使っていますよね。
へー、すごい。ありがとうございます。
では、ポールさんお願いします。どんな仕事をされていますか?
―ポール
僕の主な仕事はMonitoringに関するもので、Promgenの開発とPrometheusの運用ですね。PrometheusのBTS/GitHub Issueを読んだり、去年は東京で行われた Prometheus Casual Talksに参加して発表したりもしました。業務のほとんど全部がPrometheusと関連していますね。
チューニング・パフォーマンス改善が好きな人はFIT!
―森田
開発支援チームの魅力的な部分は何でしょう。
―ポール
僕は外国人なのでまだ日本語勉強中ですが、「改善」という考え方が好きで、大きいものではなく、少しずつ改善していくサイクルが楽しいと思ってます。
―中村
僕は新しいツールや技術の検証をすることですね。サービス開発の人でもできるとは思いますが、業務として行うのは難しいところがあると思うのでその辺かなと思います。
実際のサービス開発ではどうしても枯れてる技術を使うことが多いんですけど、開発支援チームでは都度新しいものに触れたり学んだりできるので刺激を受けますね。
―森田
チャレンジできるということですね。
逆に苦労したこととか、今苦労していることとかありますか?
―中村
新しい技術なので覚えることも多いですね。ドキュメントがまだない状態であったり、誰もつまずいていない事につまずいたり。その辺が大変でもあり、楽しみでもあったりするんですけどね。
―森田
開発エンジニアとは異なる面白さですね。
皆さんからすると、どのような方が開発支援に合っていると思いますか?
―中村
チューニング大好きな人とか。(一同笑)
パフォーマンス改善が好きな人とかあうと思いますね。
―ポール
基本的には他の開発者と同じだと思いますが、新しい技術や知識を学び続けることが好きな人ですかね。いつも目の前には新しいものがあるし、わからない時に調べることで新しい経験にもなりますよね。
知見や見える角度が違ってきた。開発支援だから得られるものと価値
―森田
実際に開発支援チームに入って良かったなと思うことはありますか?
―中村
エンジニアに感謝されるときです。調査して解決した時、自分達ではわからない部分だったのでありがとうと感謝されると嬉しい気持ちになりますね。
―松崎
僕は、インフラやミドルウェアがどういう構成・設定で、どう運用されているのか分かるようになってきたことですね。
LINEは大きな組織なのでそれぞれの技術に専門のチームがいるんですが、「LINE占い」の開発をやっていた時は入社直後という事もあり、そのあたりがわからずモヤッとしてました。
開発支援チームに異動してからは、専門のチームとコミニュケーションする機会も増え、サービス開発をやってた時にはわからなかった部分を知る事が出来てよかったです。
―森田
なるほど。確かに、データベースには専門のエンジニアがいて、話が分からなかったら開発支援にお願いしてますね。
例えば、データベースサーバが壊れたらその時ちゃんとフェールオーバするということは知っているけど、どうやって運用しているかは知らないというか、そういう見えなかった部分も知れたことですかね。
―松崎
あと、それぞれのサービスの違いも知ることができます。サービス開発の人と話していく中で、そのサービスがどのようにやっているのか知れるので楽しいですよ。サービスの特性によって選択するミドルウェアも変わってきますし。
―森田
確かに、隣のサービス開発者はなにやっているのかわからなくて、知りたいって思いますね。
では最後に、開発支援チームを今後どのようにしていきたいと思っていますか。
―松崎
もっとこの開発支援チームの存在感を出したいと思っています。
僕らは、サービスに間接的に関わっている立ち位置です。僕ら自身がサービスを開発している訳ではなく、サービス開発の人が開発に専念できるように作業の一部を巻き取ったり、これまで話したような改善を行ったりというのが主な仕事です。
できる事はまだまだあるし、やりたい事もたくさんあります。エンジニアとして、僕ら一人一人が成果をだしていけばチームとしての価値もでてくると思いますね。
―森田
確かに、そうですね。
同じエンジニアでも、ポジションによって感じることや見る角度が違うということを知り、とても勉強になりました。
本日はありがとうございました。
LINE Fukuokaではエンジニアの募集を随時行ってます。
求人情報や関連URLはこちらからご確認ください。
・開発支援エンジニア
・他職種はこちら
・社内ハッカソン レポート