LINEヤフーには、技術的
に難易度の高い仕事が山ほど
ある。だからこそおもしろい
。
LINEヤフーには、技術的に難易度の高い仕事が山ほどある。
だからこそおもしろい。
加藤 亙貴(かとう こうき)2019年入社
LINEに新卒入社後、サーバーサイドエンジニアとして LINE Messaging Platformのサーバーサイドで用いられているApache HBaseクラスターの構築や運用に従事。2023年から、LINEとヤフーを中心としたグループ内再編にともなうIDやデータを連携するためのシステム開発も兼務。
※本記事は2023年7月に取材したものです。サービス名称や所属は取材当時の内容です。
加藤亙貴です。2019年に大学院の修士課程を修了し、新卒としてLINEに入社しました。サーバーサイドエンジニアとしてLINE Messaging Platformのサーバーサイドで用いられているApache HBase(以下、HBase)クラスターの構築や運用を行っています。 直近の半年ほどは、LINEとヤフーを中心としたグループ内再編にともないIDやデータを連携するためのシステムをつくる部署も兼務しています。
大学時代には情報科学を専攻し、「ソフトウェアのバグを自動的に検出する」ための研究をしていました。エンジニアを目指して就職活動をしましたが、LINEを選んだのにはいくつかの理由があります。
まずは老若男女誰もが使っているサービスを扱えること。そして、たくさんの人が利用しているからこそ、大量のアクセスやデータをさばけるようにエンジニアに技術的な工夫が求められ、やりがいが大きいことです。もともと趣味でもプログラミングをしていましたが、せっかく会社に入るならば、1人ではできないことに挑戦したいと思っていました。
入社前にLINEのエンジニアのインタビューやコラムなどを読んでいると「1秒あたり○○万リクエストをさばくシステムを構築した」といった解説がされていました。これほどの規模のアクセスを扱えるのはおもしろそうだと思い、入社のきっかけにもなりました。
私が担当している業務は、大きく分けて3つあります。1点目はHBaseの運用・監視およびその改善のための開発です。いまは、SLO-basedなモニタリングへの移行プロジェクトに関する設計・実装を担当しています。
私たちは、社内のさまざまなシステムに対してHBaseのプラットフォームを提供しています。可能な限りプラットフォームの可用性を高めるための努力をしていますが、何かの障害が発生して一時的にシステムが応答しなくなる可能性はありますし、現実的でないSLOを設定するとエンジニアたちの運用負荷が高くなり過ぎてしまいます。そこで、どれくらいのSLOにするのが適切であるかを検討・設定し、その指標のもとにシステムやオペレーションフローの改善に取り組んでいます。
2点目は「LINE」におけるソーシャルグラフの取り扱いの再設計です。私の所属するチームは、HBaseクラスターの構築や運用だけではなく、「そもそも「LINE」のユーザーデータをどのように保存するか」そのものに対してオーナーシップを持っています。このプロジェクトでは、サーバー内部だけに限らず、サーバーとクライアント間にまたがった再設計を行っています。 現在、「LINE」のソーシャルグラフを扱うためのデータ設計を大きく変えようとしています。いままでの設計ではデータの分析がしづらかったり、パフォーマンスが良くなかったりなどの問題があります。そこで、旧来の設計が抱えていた問題を改善するためのプロジェクトを進めています。このプロジェクトが難しいのは、「LINE」を一切停止させずに、パフォーマンスやデータ一貫性を維持しながら新しいデータモデルへと移行させる必要があることです。
3点目は、LINEとヤフーをはじめ、Zホールディングスのグループ企業とのIDやデータ連携を行うアカウントプラットフォームに関する開発です。具体的には、連携サービスのユーザーデータや履歴情報を分析システムに送るためのETLシステムの設計・開発を担当しています。
スケジュールは一例ですが、日ごとにさきほどの3種類の業務のバランスを見ながら自分でタスクの配分を行っています。
何か仕事に取り組む際には必ず「なぜやるのか」「どのような方法でやるのか」「どういった成果が出たか」を明確にして、ほかのステークホルダーに伝えることを大事にしています。こうした情報を可視化すると、周囲からの意見や協力を仰ぎやすくなる、各タスクの優先順位を調整しやすくなる、ゴールが明確になってなるべく最短のルートで解決に向かえるなどの利点があります。
また、さまざまな調査や検討を行う際にはその内容を記録に残すことを重視しています。記録があるとほかの人からのアイデアをもらいやすくなりますし、その内容を参照すると振り返りが容易になります。
大量のデータを扱うデータベースの運用に携わっていると、想像もしていなかった問題がたくさん発生します。たとえば、ハードウェアの故障に起因した問題が起きることもありますし、不具合の再現が非常に難しい場合もあります。パフォーマンスの問題に直面することも多いです。 LINE Messaging Platformは分散システムであるため「どのような方法でデータの整合性を取るか」を考えることも求められます。
考えつきもしなかったエッジケースや、新しい知識を学ばなければ解決できないような課題と日々直面する環境です。大変ではありますが、私はこういう仕事がしたいと思って入社したため、日々楽しみながら仕事と向き合っています。
私はサービスの機能開発よりも、データベースなどミドルウェア周りの構築・運用に楽しさを感じています。規模の大きなデータを扱っていると、普通の企業ではあまりないような技術的課題に頻繁に遭遇します。
その際には、自分の持っているエンジニアリングの知識をフルに活用して解決策を考える必要があります。こうした経験は、なかなか味わえないものであり、入社して良かったと思える要素です。
また、アカウントプラットフォームに関するシステム連携ではLINEとZホールディングスのエンジニアが会社を横断し、業務を行っていますが、メンバーはみんなスペシャリストばかりです。レビューや会議などでは、自分のまったく知らなかった知識や思ってもみなかった観点をいつも教えてくれますし、数々のフィードバックを通じて、私自身もエンジニアとして成長できている実感があります。チーム内のエンジニア同士でより良い設計や実装のあり方についてディスカッションする機会は多く、働くうえでの刺激になっています。
この例が典型的ですが、LINEヤフーになることで、会社としての規模がさらに大きくなり、いままで以上にさまざまな領域の専門家が増えます。私たちはそれぞれ自社でプライベートクラウドを構築しているため、仮想化などの関連技術の専門家や、Javaを扱っている企業のためJVM(Java Virtual Machine)の専門家などがいます。こういった技術領域に詳しい人たちは普通の企業ではなかなか出会えないため、話をしているだけでおもしろいですし、多くの学びを得ています。
LINEとヤフーを中心としたグループ内再編が行われることで、扱っているシステムや持っている知識・ノウハウが共有されていきます。それらのアセットを、自分たちのサービスを改善するために使いたいですし、さらに良いプラットフォームを構築できたらと思っています。
いま、私自身がZホールディングスのエンジニアと開発業務に携わっていますが、働いていてやりがいを感じる点がいくつかあります。まず、もともと持っている企業文化が違うメンバー同士が、密にコミュニケーションを取って少しずつお互いの認識を合わせながらプロジェクトを進めていること。
それから、データ連携を行うためのETLシステムの構築には、高いセキュリティ要件が求められます。各種の制約をクリアしてデータ連携を行うには、設計・実装において多くのことを考慮する必要があるため、そうした方法を考えていくことにエンジニアとして楽しさを覚えます。
これらの仕事を担当するうえで、これまでのプロジェクトの進め方とは変えていかなければならない点もあります。以前は、LINE社内の比較的気心の知れたメンバー同士で仕事をしていたため、意識してメンバー間の認識を合わせなくてもうまくやれる部分がありました。
しかし複数の企業が一つになると、異なる文化や環境で働いていた人同士で認識を合わせて、プロジェクトを推進する必要があります。各者の意見をうまくまとめつつ、すべての人たちが納得できるように仕事をする。これまでの環境では経験できなかったことであり、私自身非常に勉強になっています。
まずは、自分がいま担当しているプロジェクトをきちんと成功させたいです。それから、これまでの自分のキャリアのなかで、規模の大きなシステムを一から構築する経験をしたことがないため、今後はそういったプロジェクトに携われたらと思っています。それに関連して、自分だけの力では実現できないような難易度の高い仕事を、周囲と協力し合ったり、または自分自身が技術的にリードしたりしながら、実現していきたいです。
私の所属するチームが特にそうですが、働いているとコンピューターサイエンスのあらゆる知識が要求されるような、難易度の高い課題に直面することが非常に多いです。たとえ若手のエンジニアであっても、スキルのある方であればそうした課題を積極的に任されるため、挑戦できるという意味でおもしろい職場だと思います。エンジニアとしての力を磨く場所としてとても良い環境になるはずです。