コードを書きたい

コードが書きたかった

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

最初に

11月20日(水)-21日(木)にグランドニッコー東京台場で開催された「LINE DEVELOPER DAY 2019」に参加してきました。

参加の経緯としては、「LINE DEVELOPER DAY 2019 学生向け参加支援制度」に当選し、交通費などの支援をいただけることになったからです。

普段からLINEを使っている上で、どんな技術が使用されているかなど興味はありましたが、なかなか触れる機会がないためこれはチャンスだと思い、支援制度に応募した次第です。

1日目

1日目は夜行で東京入りし、直で会場に向かいました。東京テレポート駅から無料のシャトルバスがでており、活用させていただきました。

さて、本題のセッションですが、以下で印象に残ったセッションについて語っていこうと思っています。

Inside of Blog; 〜15年熟成されたサービスの光と影、カオスとレガシーへの挑戦〜

speakerdeck.com

こちらのセッションではLINEが運営する2つのブログサービス「Livedoorブログ」と「LINEブログ」の裏話がされていました。

Livedoorブログでは、実は、750個以上のサーバーを使っていることや、550個以上のデータベーステーブルが存在すること、43500個以上のファイルを扱っていること、そして、4100000行ものコードの量が15年という月日で蓄積されていることを説明されました。

そんな年月をかけたからこそのサービスのサーバーを移転する際に起こった出来事がとても大変そうなことばかりでした。

ケースとしては、ドキュメント自体がないということ、テストが存在しないこと、DNSレコードの77%が必要のないものであったことなどが挙げられます。

そして一番厄介そうだったのが、MySQLのバージョンが一番古い4.0を使っていたということです。これはサービスからテーブルAと同じ構造のテーブルBを作り、Alter tableして対策されたそうですが、テーブルの量が増えることにより、負荷が余計にかかってしまったそうです。

LINEブログについてですが、実はLINEブログはLivedoorブログからフォークされて作られているそうで、レガシーだったものを全て半年で書き換えていったそうです。ここには想像もできないような大変な作業が組み込まれているのだと思います。

これらを踏まえて、今現在運営しているサービスが15年後どうなるのか想像して書く必要があると登壇者は述べられました。たとえば、ドキュメントの整理をすることや、ソースコードのレビュー、リファクタリングなど、小さなことからでもいいので将来を見据えた開発を心がける必要があるなということをとても実感させられました。

LINE NEWSの記事配信を支える技術

speakerdeck.com

こちらのセッションでは、LINE NEWSの記事配信を支える技術について聞くことができました。

現在、LINE NEWSはどれくらいの方々に利用されているのかというと、月間6800万のアクティブユーザーと、月間120億のPVだそうです。

LINE NEWSではパーソナライズされたレコメンドシステムを実装しています。これは機械学習と手動での操作で行われているそうで、タブTOPのおすすめ記事は手動、他の2つの画面は機械学習によるものだそうです。

スマートフォンからのリクエストに対し、レコメンド用のRedisからWEBサーバーにフェッチ、記事のキャッシュからデータをMySQLから呼び出しているそうで、毎時間、約1億人分のレコメンドのインポートを実現させているそうです。(書いている内容が間違っていたらすみません。)

またそのためのインポーターは、ファイルのダウンロード→ファイルデータのパース→Redisに保存といった流れを20スレッドで非同期・並列で実行し実現させているそうです。

発表の中では、セントラルドグマと呼ばれるLINE独自に開発されているリポジトリシステムの紹介がありました。jsonyamlなどの設定ファイルを管理できるシステムでファイルの更新があると最新の情報をクライアント側に保持することができるシステムのようです。

2日目

2日目は主にハンズオンのセッションを体験しました。

他のセッションではLINEのセッションよりゲストで登壇されておられる方のセッションを聞いていました。

LINE Pay ハンズオン - あなたのBotにLINE Pay決済機能を追加してみよう

公開して良い資料なのかよくわからないので、ここでは公開しませんが、BotにLINE Payの決済機能を追加してみるというハンズオンの内容でした。

そこまで難しい内容でもなく、誰でも簡単にBotにLINE Payの決済機能を作ることができるのだなと実感しました。

こちらがそのハンズオンで作成したものになります。

最後に

とてもいい機会を与えてくださったLINEさんに感謝しています。

セッションを聞いていると、自身の技術力のなさも余計に感じられ、速くもっと成長しなければならないような、そんな焦燥感をずっと抱いていました。

今回聞いた内容、学んだ内容はこれからの糧にして、自身の技術力向上を測っていきたいと思っています。