LINEの開発組織のそれぞれの部門やプロジェクトについて、その役割や体制、技術スタック、今後の課題やロードマップなどを具体的に紹介していく「Team & Project」シリーズ。今回は、LINEのデータプラットフォームにおけるデータカタログ「IU Web」を開発している、Data Platform室のIU Devチームを紹介します。
LINEのデータプラットフォームは「Information Universe」(以下、IU) と呼ばれており、LINEの様々なアプリケーションから生成されるデータの収集・処理・分析・可視化を提供しています。そんなIUのデータをLINE社員が安全かつ効率的に活用できるよう、データ利用環境の構築、データカタログやAd-hoc Query Editorの提供を行っているのが、IU Webです。
宇田川直人、李ドンギュウ、奥山裕也、張紅亮の4名に話を聞きました。
――まず、自己紹介をお願いします。
宇田川:IU Devチームのマネージャーの宇田川です。IUにおけるデータカタログ「IU Web」のプロダクトマネージャーも担当しています。LINEには2020年11月に入社しました。前職では、BIツールを提供するスタートアップ企業で、プロダクト開発やオペレーション全般の責任者として働いていました。
李:李ドンギュウです。IU Devチームでは唯一の韓国出身のメンバーです。LINEには入社4年目で、それ以前は韓国の大手メーカーで5年間働いてました。最初のキャリアではWebやWindows Application開発などをしてましたが、ビッグデータプラットフォームに興味を持つようになり、徐々にその運営と必要なcomponentの開発を経験をしてきました。
奥山:奥山裕也です。LINEには2019年に新卒として入社しました。LINE公式アカウントやLINEで予約などのプロダクトでサーバーサイド開発を担当した後、2021年からIU Devチームに異動しました。
張:エンジニアの張紅亮です。2021年10月にLINEに中途で入社しました。前職ではフルスタックエンジニアとして、ヘアサロン予約、HR Techなどのサービスのフロントエンド、バックエンド、スマホアプリの開発に携わってました。
――LINEへの入社を決めたきっかけ、理由を教えてください。
宇田川:前職では、企業におけるデータ利活用においてはベンダー側の立場でしたが、当時は国内企業でデータ利活用が進むにはもう少し時間がかかると思い、企業内部で自ら推進する立場として仕事をしたいと思うようになりました。LINEのデータプラットフォームでは、様々な技術的なチャレンジをしていたこと、ほぼ全てのLINEのサービスに利用されているため、データという観点から多くのサービスの成長に貢献できるのが面白いと思い、転職しました。
李:メーカー企業に勤めていた頃は、ソフトウェア開発をメインで担当し、生き生きとした開発文化がある会社で働きたいと感じていました。また、大規模のトラフィックがあるからこそ可能な問題解決を経験してみたくて、LINEに入社しました。知識が深く経験が豊富な優秀なメンバーが多かったので、一緒に働きながら感服することが多く、長所を学びながら成長することが可能でした。
奥山:LINE DEVELOPER DAYやカジュアル面談への参加を通して、技術が好きな人が多い会社だと感じました。また、国内外に多数のユーザーを持つアプリケーションの開発に関わることが可能そうだったので、入社を決めました。入社後は開発経験を積む内に、LINEの各種サービスを支えるデータプラットフォームの開発に興味を持ち、現在のチームに異動しました。
張:LINEで働いていた友人からの紹介がきっかけでした。データプラットフォームの開発は未経験でしたが、チャレンジしてみようと思って入社を決めました。LINEの国籍・文化・言語が異なる仲間が一緒に働いている環境が好きです。
――今の仕事のやりがいを教えてください。
宇田川:LINEのデータプラットフォームで扱うデータの量は、世界的に見ても少なくないと思います。そのような環境で、まだ国内外で事例の少ない機能を開発し、それによって様々なデータユーザーの業務の生産性を大幅に改善できた時は、とてもやりがいを感じました。また、私たちはデータカタログを内製していますが、そうすることで、データ管理やデータ分析といったデータ関連業務をバラバラに捉えるのではなく、業務を行う上でどのように有機的に連動していると良いか考えながら、プロダクト開発できることは面白いです。
李:データプラットフォームにおいては、どんなデータがどこにあるかを探せるデータカタログと、権限管理の重要性がとても高いです。この二つの重要な価値を社内に向けて提供し続けるために、いろんな機能を開発し、データ分析をする上で欠かせないプロダクトを作っていることが、仕事のやりがいです。
奥山:自社でデータ基盤を構築している大企業にとって必要かつ可能なサービス開発を担当していることです。LINEでは、開発職だけでなくビジネス職の人もSQLを書いてデータ分析をしているのですが、私達のチームでは、データガバナンスに則ってユーザー自身でデータへのアクセス権を管理できるようにしたり、SQLを書いて分析するクエリエディタを提供しています。Open Sourceを使うだけでは私達の要件を満たさないことが多くゼロから作ることもありますが、LINEの規模だからこそ可能なことだと思います。また、大企業でありながら社員に裁量がありボトムアップに仕事を進行できる社内風土も魅力だと感じます。
張:LINEでは膨大なデータが蓄積されているため、その中からユーザーが欲しいデータを見つけられないことが課題です。正解のない中で、課題解決まで辿り着いたときにやりがいを感じます。膨大なデータの処理に大量のリソースを使用していますが、データ量とコストのバランスを考えながらパフォーマンスが良いアーキテクチャを設計する必要があるため、そうした設計スキルを磨くことができます。良いツールやライブラリなど、最新技術に関する情報をキャッチアップして、プロジェクトに適用することに魅力を感じています。
――チームの構成・役割などについて教えてください。
宇田川:私たちのチームでは、IU Webのバックエンドを開発しています。プロダクトマネージャー、フロントエンド開発者、QA担当者と連携しながら日々開発を進行しています。チームメンバーは7名ですが、プロダクト開発に関わるメンバーを合計すると、常時20名ほどの規模になります。また、開発する機能によっては、ビッグデータ関連のcomponentと連携するため、他組織のデータエンジニアと協業しながら開発しています。私たちはフロントエンド開発こそ担当しないものの、それ以外の設計、開発、リリース、モニタリング、プロダクトのオペレーションまで行っています。加えて、私たちの開発するプロダクトはその特性から非機能要件も複雑になりがちであり、プロダクトマネージャーと密にコミュニケーションを取りながら要件整理を行っています。
チームではアジャイル開発を採用しており、2週間のsprintで集中して開発、リリースをしています。IU Webは、開発する機能や実装に必要な技術が多いため、チームメンバー全員が一つの機能や技術に集中して開発することはほとんどありません。私たちは、EpicというObjectiveといくつかのKeyResultsを持つ小さなProjectで開発事項を定義して、2-3人の小さなUnitで分担して進行しており、sprint中の各種イベントでナレッジを共有して効率的に開発をしています。また、ドキュメントライフサイクルを意識した管理をしていることも特徴です。sprintの終わりには、必ずRetrospective MTGを行っており、プランニングからリリースまでの各プロセスをチームで見直し、継続的な改善を行っています。
――現在のチームの良いところを教えてください。
李:IU Devチームでは、アジャイル開発の哲学に従って、高い品質のソフトウェアを目指して改善し続けています。設計、開発、コードレビュー、CI/CD、ロギング、モニタリングを重要なプロセスとして扱っています。また定期的なリファクタリングによって、技術的負債がないように取り組んでいます。ソフトウェアエンジニアとして成長できる課題に対して、チームプレイかつアジャイルなアプローチで取り組むことができるのは、とても大事な経験だと思います。
張: チームではアジャイル開発が採用されており、要件抽出からデザイン、実装、リリース、モニタリング、チューニングまで、機能単位で小さいサイクルを繰り返しているので、自分が作ったものが日々進化しているのが分かります。
また、私は昨年の10月に入社しましたが、On-Boardingにあたってドキュメントが充実しており、サポーターがハンズオンで業務支援してくれたりと、コロナ禍においてもスムーズに業務に馴染むことができました。チームメンバーには、DevOps、Webアプリケーション開発などそれぞれに得意な領域があるので、お互いが学ぶことによって成長に繋がっていますね。
――利用技術・開発環境について教えてください。
宇田川:IU Devチームでは、下記の技術を用いて開発をしています。基本的には、Springで開発をしていますが、データの権限管理やメタデータを取得するにあたり、hadoop エコシステムの技術を利用しています。
言語 | Java, Python |
---|---|
フレームワーク | Spring |
ミドルウェア | MongoDB, Redis, Elasticsearch, MySQL, Nginx, Hive, Presto, Atlas, Airflow |
監視 | Prometheus, Grafana, Kibana, IMON |
CI | Jenkins |
インフラ | Kubernetes, Verda |
IDE | IntelliJ |
その他 | GitHub Enterprise, Confluence, Jira, Slack |
――今のチーム課題および解決に向けた取り組みを教えてください。
宇田川:IU Webは直近1年で機能がとても増えているのですが、それとともに利用する技術も増えており、チームとしてうまく知見をシェアしながらアウトプットを出すことが課題です。
IU Webのデータカタログでは、データの作成日や更新日時などの基礎的な情報から、データの利用制約、ユーザーの利用状況など様々な情報を提供しています。例えば、Apache Atlasを用いてData Lineageを生成したり、Deequを用いてData Profilingを可視化していますが、そのためには、ビッグデータに関連する様々な技術に対して理解を深め、データエンジニアリングドメインの各トピックに精通して、適切なフォーマットで提供する必要があります。
この課題の解決のため、IU Devチームでは基本的に2-3名単位で小さなプロジェクトを組成し、特定の機能のリリースに集中的に取り組んで、チームに還元する体制を整えてました。実際に、IU Webのデータカタログ上でData Lineageを開発したメンバーは、その機能開発だけに集中し、それ以外の新規開発はほとんど行なっていませんでした。ただしチームとしては、定例MTGでしっかりと知見の共有を行い、プロダクト全体への視点も損なわないようにサポートしています。
(参考)LINEの大規模なData PlatformにData Lineageを導入した話
奥山:私達の開発プロセスでは、機能要件について詰めていく必要があります。社内サービスなのでユーザーの声が聞きやすく、色々な要望やユースケースが見えやすいのですが、必要なものをしっかりと見極めないといけません。同時に、Data Platform室が運用するデータ基盤や、各種インフラへの負荷などについても注意する慎重さも必要になります。最近では、IU Hadoop (Data Platform室で運用されているHadoop)へのREST APIを提供する機能を開発しているのですが、IU Hadoopを利用するチームにヒアリングを行い、各チームが求めている機能を見定めるようにしていました。
――今後のロードマップを教えてください。
宇田川:これまでは、大規模なデータを管理したり、多様なメタデータをデータカタログとして提供するための開発をメインに行っていました。今後は、私たちが集約しているメタデータを、TableauやNotebookなどの各種分析ツールで利用したり、データマネジメント運用の観点から参照したいというニーズが増えてきています。そうしたニーズに応えるべく、例えば、Queryを書きながらデータの利用方法に関する知見を参照できるようにするなど、セキュリティやデータガバナンスに配慮しつつAPIでメタデータを連携できる仕組みを開発して、データ活用に関する業務の効率を向上したいと思います。
また、1つのチーム内で多様なサービス、APIを提供することになるので、各サービスのユーザーニーズを元にSLAを見直し、デプロイ方法やモニタリングの体制も強化していく予定です。
――最後に、IU Devチームに興味を持ってくれた人にメッセージをお願いします。
宇田川:LINEのデータ基盤開発組織であるData Platform室では、データの可能性を信じており、技術に関する好奇心に溢れたメンバーが多く在籍しています。今後、様々な新しいプロジェクトや研究開発が予定されており、より多くのメンバーの協力が必要です!そうしたメンバーと切磋琢磨しつつ、LINEの各サービスがデータを活用して更なる進化を実現できるようなデータプラットフォームを一緒に作っていきましょう!
李:LINEの大規模なデータプラットフォームを対象に、アジャイルなソフトウェアエンジニアとして成長したい方は、是非気軽に応募してください。
奥山:エンジニア向けのサービス開発に興味があり、ソフトウェア開発が好きな方は是非応募してみてください!
張:データプラットフォームの開発経験がなくても、十分なソフトウェア開発の経験があれば、私たちのチームでは活躍できると思います。データエンジニアリングに興味がある方は、是非エントリーしてみてください!
IU Devチームではメンバーを募集しています
LINE株式会社では一緒に働くエンジニアを募集しています!
今回のインタビューと関連する募集ポジションはこちらです。ご応募お待ちしております。
-
Software Engineer / Data Platform室