LINEで働くエンジニアにいろいろと話を聞く「LINE Engineer Insights」。LINEの技術組織で働く個々人に、何を重視して技術者としてのキャリアを歩んでいるのか、今LINEで何に取り組んでいるのか、今後実現したいことなどを聞いていきます。
今回登場するのは、Observability Infrastructureチームに所属する坂本大将です。「大規模なシステムの可用性・信頼性を保ちつつ、開発・運用することに強い興味がある」と語る彼。その言葉の通り、坂本は2021年にLINEに入社して以来、プライベートクラウド「Verda」の監視基盤を担当した後、社内異動制度を利用して現在は時系列データベースの構築・運用などを担っています。
これまでのキャリアのなかで何を大切にしてきたのか、そして今後は何を目指すのかなどを坂本に聞きました。
自分が楽しく取り組めて、さらにスキルの市場価値も高いのが基盤技術の開発エンジニア
――今回のインタビューでは、坂本さんのキャリアを過去から現在まで順に語っていただきます。坂本さんが過去に執筆したブログでは「もともと『コンピュータサイエンスをゴリゴリに意識しないと成果を出せないエンジニアリング』にとても強い関心があり、 そのためアプリケーションレイヤから徐々に下周りのレイヤに降りるようにキャリアを開拓してきました」と記載されていました。なぜ低レイヤの領域に興味を持つようになったのですか?
私は大学時代にコンピュータサイエンスを専攻していたのですが、その頃に学んだことが大きく影響しています。当時の私はGitHubなどで、データベースやミドルウェアの開発に取り組む人々の活動を調べていました。彼らのように、専門的な知識を持つエンジニアに憧れたことが、そういった基盤的な技術に魅力を感じるきっかけになりました。
それに加えて、プレイヤーとしての市場価値を高めるためには、様々なミドルウェアやインフラに関する知見やシステムデザインのスキルを身につけることが欠かせないと考えてきました。昨今、フレームワークやライブラリなどが発展した影響で、アプリケーション開発の敷居は下がり、多くの人が携わるようになりました。一方で、インフラやミドルウェア技術といった低レイヤの知見を持つ人はそれほど多くありません。だからこそ、そのスキルを身につけることは現場で開発を続けていくために必要な差別化だと考えています。
――具体的にどのようなプロジェクトに携わりながら、キャリアを開拓してきたのでしょうか?
これまで私は、社員として2つの会社で働いた後にフリーランスになり、そしてLINEに転職しています。新卒で入った会社ではAndroidアプリの開発に携わっていました。ですが、業務でバックエンドやインフラに触れたいという思いが強くなって転職し、2社目ではあるサービスのバックエンドの再構築プロジェクトやインフラ構成の改善プロジェクトに携わりました。
その後のフリーランス時代は、サービスのバックエンド開発をしたり、Datadogの導入プロジェクトやKubernetesのクラスター構築プロジェクトを担当したりと、徐々に扱う技術がインフラやミドルウェアのレイヤに移っていきました。
――フリーランスを続ける選択肢もあり得たと思うのですが、会社員になることを選んだのはなぜでしょうか?
理由は大きく分けて2つあります。まず、フリーランスを長く続けていくとキャリアがどこかで行き詰まるのではないかと感じたため。そして、自分自身が興味を持っている技術領域に、フリーランスとして携わるのが難しいと考えたためです。
まず前者からお話しすると、バックエンドやインフラ領域を主戦場にするエンジニアが自分自身の市場価値を高めるには、大規模システムやシビアな性能要件が求められる環境で経験を積む必要があります。さらに、技術的な意思決定に関与したり、システム構築後の長期的な運用に携わったりすることも大切です。
ですが、フリーランスではどうしても限られた業務領域しか担当できないですし、特定企業の全社的な動きを把握できないケースも多いです。得られる知識や経験が限定されるため、長い目で見るとどこかの地点でキャリアが行き詰まる可能性があります。
後者についてもお話しすると、私は自分自身のキャリアをエンジニアリングに全振りしたいタイプで、マネジメント業務にはあまり関心がありません。その志向を活かすことができ、かつエンジニアとしての市場価値を高められる領域を模索した結果、クラウドサービスのようなインフラやミドルウェアそのものの開発・運用に携わろうと考えるようになりました。
ですが、そういった基盤技術の開発に携わることのできる会社は日本では限られていますし、フリーランスでも働けるポジションとなると本当に少ないです。これらの理由から、社員になり、プラットフォーム構築関連の仕事に携わることが、今後のキャリアにとってプラスになると思いました。
――となると、就職先の企業としてLINEを選んだのは納得ですね。
はい。LINEはまさに、大規模なインフラやプラットフォームを扱っている、日本で稀有な会社です。また、私は将来的に海外の会社で働くことも視野に入れています。そこで、自分の英語のスキルを高めるためにも、職場で英語が使われている環境が良いと思っていました。そういう意味でも、LINEは自分の意向にマッチしていました。
難易度の高いプロジェクトと向き合い身につけたスキル
――LINE入社後、坂本さんはプライベートクラウド「Verda」のSREチームに所属して「マネージドなFluentdの提供」「Fluentdを管理するためのKubernetes Operatorの開発」「Grafana Lokiを使った大規模ログモニタリング基盤の構築」などの業務に携わってこられました。これらの業務の概要を教えてください。
マネージドなFluentdのことから説明すると、「Verda」は各チームがそれぞれ別々のサービスを管理しており、マイクロサービスアーキテクチャ的な組織構成・システム構成になっています。そして、多くのサービスはマルチテナントなKubernetesクラスターの上で稼働しています。
LINE DEVELOPER DAYで紹介したのですが、かつては各サービスのPodのなかにサイドカーとしてFluentdとLogrotatedをデプロイしていました。そして、KubernetesのemptyDirという機能を利用して、ログファイルをPodの中のコンテナ間で共有していました。
ですが、その方法では各サービスチームの運用負担が大きいとか、管理方針がチームごとにバラバラになってしまうなどの課題がありました。そのため、SREチームがマネージドなFluentdを各チームに提供することで、サービスチームのエンジニアはログのパイプラインを管理しなくて済むようにしました。
「Fluentdを管理するためのKubernetes Operatorの開発」もそれに関連したプロジェクトです。各チームが、自分たちのログ設定を無秩序に入れると、チームごとの設定がコンフリクトしたり、最悪の場合はFluentdのプロセスが壊れてしまったりというケースが起こり得ます。
そこで、ログ設定をエンジニアが安全に適用できるように、Kubernetes Operatorを作りました。各チームのエンジニアがKubernetesのマニフェストを書くだけで、自分たちのログ設定が適用されるようにしたんです。
それらの基盤を整えた後に、今度は「膨大な量のログをどうやって保存するか」という課題が生じました。「Verda」のログファイルは1日あたり数十テラバイトくらいの量になります。その大規模なログを扱う基盤を構築するため、Grafana Lokiの導入を検討しました。こうした難易度の高いプロジェクトに携わったことで、自分自身のスキルも相当に向上したと思います。
――携わったプロジェクトのなかで、特に坂本さんの印象に残るものはありますか?
「Grafana Lokiを使った大規模ログモニタリング基盤の構築」ですね。このプロジェクトでは、各チームにヒアリングをして「Verda」全サービスのログ要件を取りまとめたり、全社的なセキュリテュポリシーに準拠できるように仕様やアーキテクチャを考えたりといった仕事に取り組みました。
まさに、私が「社員になったら携わりたいと思っていた性質の業務」でした。
それに加えて、このプロジェクトではOSSのコードを読み解くだけではなく、Grafana Loki本体へのコントリビューションも行いました。自分にとってプラスになる経験を数多く積めた、意義のあるプロジェクトだったと思います。
坂本さんが発行したPull Requestの一覧
https://github.com/grafana/loki/pulls?q=is%3Apr+author%3Ataisho6339+is%3Aclosed
グローバル規模で活躍できるエンジニアになりたい
――その後、2022年4月に異動をして現在はObservability Infrastructureチームに所属しているのだとか。どのような役割のチームなのでしょうか?
Observability Infrastructureチームの役割は、LINE全体のサービスを監視するプラットフォームを開発することです。私自身が希望を出して、このチームに移りました。
Grafana Lokiへのコントリビューションをしているうちに、「もしかしたら自分もデータベースそのもののような基盤ソフトウェアの開発、運用に関わることができるのではないか」と考えるようになりました。そこで、Observability Infrastructureチームに入って時系列データベースの開発に携わるという、新しい挑戦を決めました。
――チームの業務にどのような感想を抱いていますか?
日々、挑戦しがいのある面白い仕事ばかりです。チームのエンジニアが設計や実装の方針を徹底的に考え抜いていますし、クラスタリング、シャーディング、圧縮アルゴリズムなどを論文を参照しつつ自前で実装しています。扱っているプロダクトの特性上、分散システムの理論にも詳しくなれます。
それから、グローバルな環境で働けるのも魅力的です。チーム内の日本人は私だけで、韓国やベトナム、インドネシアなど多種多様な国籍の人たちがいます。それに、チームメンバーのスキルが非常に高いです。私が何か質問をすると、みんなが高度な回答をしてくれます。「こんなにスキルの高いエンジニアが世の中にいるのか」と感動しながら、毎日良い刺激を受けて働いています。
――グローバルなチームで働けることは、坂本さんの入社理由である「英語が使われている環境」という条件にもマッチしますね。
そうですね。「Verda」のSREチーム時代にも英語を使う機会はありましたが、現在のチームに移ってからは使用頻度がより高くなりました。職場で生の英語に触れられるのは貴重な機会です。それに、自分が書いたり話したりしたことが相手に正しく伝わったか、すぐにフィードバックを得られます。LINEという環境が、英語を学ぶ場としても有効に作用しています。
――最後に、エンジニアとしての今後の目標を教えてください。
引き続き、自分の好きな技術領域に携わりつつ、スキルを向上させて市場価値を高めていきたいです。システムの設計・実装力や英語力などをこれからも伸ばし、グローバル規模で活躍できるエンジニアになっていきます。
――坂本さんのストイックな姿勢、とても格好良いです。今回はありがとうございました。
LINEでは一緒に働くメンバーを募集しています
LINE株式会社では一緒に働くエンジニアを募集しています!今回のインタビューと関連する募集ポジションはこちらです、ご応募お待ちしております。
- Site Reliability Engineer(SRE) / Platform-wide solution / Private Cloud Platform
- Observability Software Engineer
- Server Side Engineer, Delivery Infrastructure