LINE Platform Developmentセンター1について

佐藤春旗氏:最後のメイントピックになりますが、ここからは私の所属しているLINE Platform Developmentセンター1の紹介をさせてください。先ほどもお話しましたが、LINE Platform Developmentセンター1はよくLPDC1と省略されるので、私もLPDC1と言うかもしれません。

(スライドを示して)これは先ほどの図からそのまま持ってきたものです。その中にはMessaging Platform Engineering1室とMessaging Platform Engineering2室があって。それからBOT Platform Development室というところがあって、最後に私の所属しているCommunication & Service Integration室というところがあります。

海外出身のエンジニアも多い組織なので、チームの名前が横文字というか、アルファベットになっていたりはしますが、それぞれがちょっとずつ違う目標を持ってLINEのプラットフォームのサーバーサイドを担っているので、こういったかたちになっています。

組織構成の話は先ほども、かつ、もう1個前のところでも説明しましたが、我々はサーバーサイドをやっていますが、実は我々だけで単独でやっているわけではなくて、実はその中にはほかの組織とかほかの法人、あるいはほかの地域的な拠点との協業がかなりあります。

我々がよくやり取りをする相手としては、韓国にあるLINE Plusの中にLINE Platform Engineeringという組織があって、そことよく日常的に、本当に毎日のようにやり取りをしています。

これは私のチームが特に多いかなと思いますが、福岡にあるLINE Fukuoka、このLFKというのはLINE Fukuokaのことですが、この開発組織ともやり取りをしています。ほぼ日常的に、下手すると本当に毎日やり取りをしていて、個別、1個1個のプロジェクトの話もするし、マネージャー同士のやり取りとかも含めて協業を行っています。

もちろん場合によってはLINE Taiwanとか、ベトナムとの協業。一緒に開発をするプロジェクトがあったり、本当に多種多様なことをしていると思っています。

LINE Platform Developmentセンター1、我々の紹介です。我々がLINE Platformと言っているもの、これはLINEアプリそのものでもあるし、先ほどから紹介しているように、例えばLINE公式アカウントというかたちで、社外のパートナー企業やサービスが、我々の提供するAPIとかプラットフォームを使うことがあるので、それを通じて、例えば信頼性、柔軟性が高いとか、いろいろなことができる拡張性。(そして)もちろん高品質。

先ほどからいくつか述べていますが、やはり我々は扱っているものも大きいし、使われ方も多種多様なので、それを実現するためには、高品質なより良いソフトウェアを通じて実現することがどうしても重要だと考えていて、我々の目指す共通のコアバリューとして掲げています。

先ほどから共有していますが、ここでいうユーザーは例えば個人、1対1でチャットをしていることもあるし、パートナーの企業さんが我々のプラットフォームを使って、LINE公式アカウントから同時に1,000万ユーザーにメッセージを配信することもあります。似たような事例で、例えばLINEのファミリーサービスとか、LINEの社内から機能を使うこともあります。

もしかしたら特定の技術、例えばAI技術をLINE Platformの上で実現する時には、我々がそこに関わっていって、いかにこの技術をよりおもしろい、ユーザーの役に立つサービスとして実現するかに貢献していくというのが我々のやりたいこと、やっていることになります。

これはあくまでLINE Platform Developmentセンター1、我々の立場から見たコアバリューであるとか、やりたいことです。例えば信頼性とか高品質といった部分は、LINEのほかの組織、ほかのサーバーサイドエンジニア、あるいはサーバーサイドに限らないエンジニアもかなり共有しているところかなと思うので。

LINEの中のサーバーサイドエンジニアの一例ではありますが、「こういったことを考えている人がいるんだな」ということは、ぜひ参考に思ってもらえればと思います。

Messaging Platform Engineering室1

ここから先ほど紹介した4つのチーム、Messaging Platform Engineering1室から始まって(Communication & Service Integration室までが)それぞれなにをしているのか、なにを中心としてサービス開発をしているのかを紹介させてください。

最初がMessaging Platform Engineering1室というところです。これがLINEのプラットフォーム、特にメッセージに関連するユーザーのデータのうち、主要な部分を保存したり処理するためのデータ処理技術を担当しているチームです。

これもLINE DEVELOPER DAYなど、対外的なイベントでも紹介していますが、特に我々が扱っているのが「Apache HBase」というソフトウェアだったり「Redis」だったり、最近では「Apache Kafka」というEvent-basedな、非同期処理をうまくマイクロサービス上で実現するような、ミドルウェアのマネージドサービスとして提供していたりします。

これのユーザーはLINE Platformだけではなくて、LINEグループ横断規模。LINEなんとかというファミリーサービスも使ってもらっていたり、広告配信の一部で使われていたり、本当にいろいろな使われ方があります。

こういったかたちで、大規模なデータを保存したり、処理したりするためのプラットフォームにより近い部分の担当をしているのが、このチームの特徴ですね。

その上で、先ほどから共有しているような高い信頼性のあるサービスを実現するためには、こういったところも可用性が高いとか信頼性が高いことがすごく重要になっていて。

その中で特徴があるところとして、開発とか運用上、なにをするとよりうまくいくのか。「オペレーションが自動化できないか」とか、「なにかあった時により早く迅速に復旧できるプロセスは、どのようにしたら実現できるのか」といったことはよく議論されていたり。そういった特徴のあるチームかなと思います。

Messaging Platform Engineering室2

似たような名前でその隣にあるチームとして、Messaging Platform Engineering2室というものがあります。先ほどストレージの話がありましたが、それをユーザーに見えるかたちで、ユーザーにどのように届けるかにフォーカスしているチームです。

具体的な話でいうと、例えばLINEを使ってもらっているみなさんとか、ユーザーがメッセージを送った時に、それをどのように友だちのユーザーのデバイスに届けるかとか。最近でいうと、ちょっと前にリアクションというものが(機能で)ついたんですけれど、このリアクションを効率的に集めて、効率的にきちんとユーザーに届けるかとか。

LINEはモバイルデバイスからもデスクトップからも使えますが、そうすると、この間のデータをどのように同期するのかとか、例えば友だちを追加した時になにが起こるのかとか、そういったものを具体的に考えて作っていく、そして改善していくところにフォーカスしているチームです。

(スライドを示して)この中でいうと、LINEのそもそものユーザーがすごく数が多いとなると、1つ機能を実現してそれを提供していくというだけでも、そもそもかなり時間がかかったりします。

しかし、その中でいかに問題を起こさずにきちんとユーザーに機能を届けていくかは、課題として(捉えて)さまざまな取り組みをしています。

いざ実際リリースして上手く動かしていったとしても、数が大きくなってきたり規模が大きくなってくると、やはりどこかでなにか問題が起こるんですね。

なので、この中で我々が取り組んでいることとしては、なにか問題があった時に、いかにそれを早く検知するか。早く対応して、場合によってはなにかを直していくとか、あるいはロールバックなどで問題のないかたちにして、さらにどこを改善するのかを検討して、繰り返して改善をしていくといったところでは、かなり(しっかり)取り組んでいるチームかなと思います。

この部分がLINEアプリの機能のコア部分。みなさんが日常的に一番使ってくれている部分を作っているところです。

例えば今後、よりユーザーにちゃんと使ってもらうとか、ストレスなく使ってもらうLINEを作るためには、例えばどんな技術が必要なのかとか。

LINEも10年以上の歴史があるので、その中でなにかを変えていったり、なにかを置き換えていったり、あるいはなにかを削る、なくすことは考えなければいけない課題の1つですが、そういったところの課題に中心的に取り組んでくれているチームかなと思います。

先ほどからまたファミリーサービスの話などがたくさん出てきていますが、LINEグループとか、ほかのサービス、もしかしたらLINEの中のサービスかもしれないし、LINEの外のサービスかもしれませんが、そういったところとLINE Platformとの連携というところで、さまざまな課題、やりたいこと、あるいは将来的に必要になるような開発があって、そういったものに取り組んでいるチームでもあります。

BOT Platform Development室

3つ目の紹介で、BOT Platform Development室というところがあります。LINE公式アカウントという機能があって、パートナー企業が例えば1,000万のユーザーにメッセージを配信するために使うとか、場合によっては各サービスに例えば連携されたようなサービス、例えばなにか通販で物を買った時に、「物が配送されましたよ」とか、「ここで受け取れますよ」とか、再配達を依頼をするとか。そういったことがLINEの中で実現されていると思いますが、それを実際にテクニカルに提供しているのが、このBOT Platform Development室です。

これは具体的にいうと、LINE Messaging APIというものがあって、「LINE Developers」というサイトで登録すると、みなさんも含めてパートナー企業は使えるようになっていますが、こういったものの具体的なAPIを開発や運用しています。

この中の課題としては、先ほどから何度か言ってしまっていると思いますが、1対1のメッセージとは違って、例えば一度に1,000万のユーザーとか何百万とかメッセージを送るとなると、場合によりますが、サービスとかデータのスケール、規模が変わってきて、課題も変わる。

なのでこの分野では、大規模なデータ処理を最適化するとか、ロバストなシステムを作るところで信頼性を上げていく。

もしかしたらどこかでちょっと処理に問題があるとか、データに問題あるかもしれないんですが、その場合でも、なるべく問題のないようにきちんと処理を実行していこうという取り組みは各所で行っています。

この部分がMessaging APIも含めて公式アカウントを使ってくれる人、使ってくれるパートナー企業のための機能を提供しているので、ビジネスと、LINEのプラットフォームの上でどう実現するかに近いところはあって。

その中でユーザー体験とか、先ほど(言った)例えばユーザーが予約をするとかなにか通知を受け取る時に、より良い、使いやすいUIとか、より良い体験は何なのかを考えながら新しい機能を作ったり、改善をしたりしています。

具体例としては、リッチメニューというかたちで、テキストの代わりにタップで公式アカウントとやり取りができたり、普通のテキストとはちょっと違うかたちのFlex Messageというものを提供しています。

こういったかたちで、よりサービスにふさわしい見た目とか。例えばメニューを見るボタンがあって、それをタップできるとか。そういったインタラクティブなかたちのメッセージをLINEの中で実現することもやっています。

Communication & Service Integration室

最後の私が所属するところでCommunication & Service Integration室というものがあります。

一番大きくやっているのがスタンプ機能ですが、スタンプを含めたコンテンツとか、LINEのさまざまなコンテンツあるいはサービス。そういうものとLINEのプラットフォーム、メッセンジャーを連携していくところを担当しているチームです。

(スライドを示して)スタンプとかが一番大きいには大きいんですが、ファミリーサービス、例えば「LINEマンガ」とか「LINE MUSIC」のための販売プラットフォームとして右上に書いたものが「LINE STORE」というやつなんですが、こういったWebサービスを開発・運用していたりします。

それから、真ん中にあるものが、みなさんがLINEを開くとホームタブで表示されるのかなと思うんですけれど、実はハロウィンの時に、その上にこんなものが出ていたりしたんですね。これは開発中のデザインなので、実際の見た目はちょっと違うかもしれないんですけれど。

こういったかたちで、LINEアプリの中でいろいろなコンテンツを見せていくとか、LINEのファミリーサービスに連携していく。ユーザーがよりおもしろいことができるとか、LINEの中でもっといろいろなものに触れるための仕組みを一緒に作っているというのが、我々のCommunication & Service Integration室のやっていることになります。

その中で最近の事例でいうと、例えば機械学習を取り入れたなんらかのサービスとか、AI技術が使われた新しい機能を考えてもらったりとか、一緒に作っていったりとか。そういったところを取り組んでいくという意味でも、取り組みが多い、(取り組みに)近しいチームかなと思います。

ほかのところでも言及があって、かなり「信頼性」と繰り返してしまっているところではありますが、Communication & Service Integration室ではやり取りをする相手やパターンが多いです。いろいろなことをしているので。

その中でもSRE(Site Reliability Engineering)と呼ばれるような取り組みで信頼性を上げていくこと。いかに効率良くいろいろなことをトライして、場合によってはどんどん改善をしてとやるのかは、課題としてよく取り組んでいるところだと思います。

LINE Platform Developmentセンター1の課題と求める人物像

もう少しだけ時間をください。あくまでLINE Platform Developmentセンター1という私たちの組織の紹介ではありましたが、これまでもこれからも「おそらくこういった課題があるかな」と考えているところで、我々はメッセンジャーを作っています。

LINEアプリをいかに自分たちのビジネスとかほかのビジネス、ほかのサービスとつなげていくのか。その中では、本当に多種多様なちっちゃなデータから本当に大きなデータまで。あるいは大量のデータを一度に処理する、あるいはすごく長い時間をかけて処理する。本当にいろいろなパターンがあります。

こういったところに技術的にアプローチしていく、解決していくのが我々の仕事かなと思っていて、その上で、いつでもどこでも使えるLINE、あるいはLife on LINEを実現するために、いろいろな取り組み、例えば負荷対応とか、障害が起こった時にも使えるサービス、迅速に復旧できるようなサービスを作ることが課題になっています。

そこに一緒に取り組んでもらう人ということで、もちろん技術に興味があって、かつ難しい問題を解決したい。そこに対して柔軟に動くようなシステム(を作りたい)。

先ほども紹介しましたが、もう10年動いているシステムではありますが、課題はまだまだたくさんあるし、基本的に1個課題を解決するとまた問題が(出てくる)。次のフェーズ、次のレベルに移っていくということが繰り返されているので。

常に同じことをできるわけではなくて、技術を使って違う問題を繰り返し解いていくとか、改善をしていくことがメインのミッションなのかなと思っています。こういったところに一緒に取り組んでいける人。

もう1つは、そこに対して高品質なソフトウェアを目指すとか、技術的な課題に対して取り組む興味があるとか。それからLINEの特徴の1つとして、いろいろなユーザーが使ってくれる、かつダイレクトに使ってくれる個人のユーザーもいるし、パートナーの企業さんもいる。そういったものに対して、信頼できるプラットフォームを提供したいというのが(ある)。

もしちょっとでもこの中にマッチするもの、ちょっと響くものがあれば、ぜひ応募をお願いします。

最後はざっくりまとめのスライド、繰り返しになるので割愛しますが、本当にいろいろなサービスでサーバーサイドの開発のチャンスがあると思うので、もしおもしろそうなこと、興味があることがあれば、ぜひ調べてみたり、この後のQ&Aで聞いたりしてください。

以上で終わりにします。ありがとうございます。