Ak1x Blog

Ak1xの活動記録。ITとかスノーボードとか、色々。

LINE DEVELOPER DAY 2019に参加してきました

11月20日から21日にかけてグランドニッコー東京 台場で開催されていたLINE DEVELOPER DAY 2019に参加してきました。今回は学生向け参加支援制度の支援対象者に選んでいただいたので、被支援者として参加記を残します。

engineering.linecorp.com

 

筆者は

某大学情報系に通う学部3年生です。普段は大学で情報工学を中心に勉強しつつ、機械学習(とりわけ自然言語処理)を用いた研究に取り組んでいます。情報系の学部生としてLINEという会社に興味を持っていること、自身が研究で取り組んでいる機械学習に関する知見が多く得られるであろうということ、などをモチベーションとして今回のLINE DEV DAYに参加することとしました。

毎度のことですが、記事の内容に間違いが含まれることがあります。遠慮なくご指摘いただければと思います。特に今回は事前知識が少なく、各セッションで登場する単語がほとんどわからないような状況でした。記事を書く際にある程度調べて書いていますが、理解が至っていない部分もあるかと思います。読者様のご容赦とご指摘を重ねてお願いいたします。

 

LINE DEVELOPER DAYとは

「LINE DEVELOPER DAY」は、LINEが運営する様々なサービスの技術領域でのチャレンジや知見、これまでそして今後の取り組みを紹介する技術カンファレンスです。 

LINE DEVELOPER DAY 2019

 LINEのサービス以外にも国内外のゲストスピーカーによるセッションもあり、テーマはセキュリティやインフラなど多岐にわたっていました。

DAY-1は技術的な側面が強く、DAY-2はプロダクト寄り、という構成でした。各セッションの内容の充実度は言うまでもありませんが、ブースで社員の方と直接お話しすることもでき様々なお話を伺えたことも貴重な経験でした。

 

参加したセッションの内容

先述の通りML関係のセッションを中心に見て回ろうと考えていたのですが、直前になって予定が立て込んでしまい、各日2セッションしか参加することができませんでした。内容についてもMLに限らず私が面白そうだと思ったセッションを選んでいます。

 

エムスリー におけるAI・機械学習チームの立ち上げと機械学習プロダクト開発

 

speakerdeck.com

 

ここでわざわざ紹介するまでもなく有名な西場氏のセッション。エムスリー におけるゼロからのチーム立ち上げとその発展についての話でした。西場氏が所属するAI・機械学習チームの2017年3月の立ち上げ以降3年間チームリーダーとしてどのように行動してきたか、失敗も含めてお話しされていました。

(感想)

このセッションには途中から参加しました。「自分が当たり前と思うことは教育できない」「全員と均等にコミュニケーションを取らない(得意な人にメンタルケアは任せてしまう)」のようなマネジメント面における言葉が私にはとても刺さりました。これらは思っていても中々口に出せず、実行することはもっと難しいでしょう。そのまま真似するかはともかく、この考え方をしっかりと自分に残しておきたいですね。

また、採用に関して並並ならぬ熱意を感じました。エムスリー に入れていただけるようなギークさを身につけたいところ。頑張ります。。。

 

Backend Architecture Design for Analyzing and Processing Massive Blockchain Traffic

 

speakerdeck.com

 

LINEが独自に開発したブロックチェーンネットワーク「LINK Chain」のブロック/トランザクション情報をLINK SCANで表示するのにどのように構築したのかという話。ブロックチェーンの特徴とそれに合わせた実装手段の選択が中心でした。LINK SCANの開発ではApache Kafka・Apache HBase・Apacheなどが用いられたようです。

(感想)

今とても話題を呼んでいる「ブロックチェーン」の話です。構造自体は他のWebサービスと近くそこまで難しくはありませんが、ブロックチェーンが持つ特性に合わせたライブラリ選択の必要性を感じました。

 

Flutter for LIVE Commerce

 

speakerdeck.com

 

 LINEは「ライブコマース」に参入予定であり、専用アプリをiOS/Androidプラットフォームでリリース予定となっています。その開発にFlutterというフレームワークが使われたという話。FlutterはGoogleによって開発されたクロスプラットフォームのUIフレームワークです。クロスプラットフォームというとプログラム的な効率の良さに目が向けられがちですが、チーム間の単純化・意思決定の早さに繋がる点も重要であると強調されていました。仕様変更があっても人が減ることで意思決定をより早く行うことができたそうです。一方、こうした新たな取り組みはメリットだけでなくデメリットもあり、導入前はデメリットを周囲にきちんと説明することに取り組んでいたそうです。

(感想)

クロスプラットフォームというとReact Nativeのイメージがあり、Flutterについては名前を聞いたことがある程度でした。Lean開発を進める上で意思決定が早くできる点は大きいと感じます。クロスプラットフォームはどうしても個々にチューニングが必要な部分がある点が引っかかっていましたが、この部分は初めからネイティブで書いて対応されていたそうです。個人的にはFlareのAfterEffectsっぽい操作感が気になりました。

 

Rebuilding Slack Search with Armeria

 Slackの検索インフラをArmeriaを使ってリビルドしたという話。ArmeriaはLINEが公開しているHTTP/2対応Java向け非同期RPCライブラリです。リビルドの際のRequirementsはjava, multiprotocol(gRPC, thrift, etc...), honeycomb, Consulなど数多くあり、Armeriaがそれらを全て満たしていたため採用されたそうです。ArmeriaはthriftやgRPCを使って定義したAPIに沿ったクライアント・サーバのプログラムを作成し、HTTP/2で通信してくれるライブラリだとか。REST API他様々な機能に対応しており、マイクロサービスで必要なものが全て揃っている便利なフレームワークのようです。

(感想)

「Armeriaとは?」ってずっと唸ってました。RPC周りやHTTP/2についてもろくに知らなかったので帰ってから調べました。Armeriaの「なんでもできるよ」感はすごいですね。RPCをたくさん使うマイクロサービスでは重宝されるライブラリだと感じました。

 

終わりに

開催されてからだいぶ時間が経ってしまいましたが、なんとか書き終えました。今回参加した全体の印象は「全然知らないことばっかり」でした......。今回をきっかけに色んなライブラリやらフレームワークやらを調べていますが、その数の多さ・広さに絶望しています。一つ一つ勉強して全体を俯瞰できるようになりたいです。

最近Web系に知識が偏ってきていますが、サボりがちなML系の知識も増やしたいところ。ブロックチェーンも騒がしくなっていますし、面白そうなことはたくさんありますね。