「LINE DEVELOPER DAY 2016」に行ってきました
「LINE DEVELOPER DAY 2016」に行ってきました。
LINEサービスを利用した開発者向けセッション、LINE開発の取り組み紹介などなど。
開催概要
- 日時
- 2016/09/29(木)10:40-18:30
- 場所
- 渋谷ヒカリエ 9F ヒカリエホール
- 主催
- LINE株式会社
- 参加者数
- 約1000人?
- 中国系?、韓国系?、東南アジア?の方々が結構いた印象。海外拠点の開発メンバーを呼んでいるらしい。
- hashtag
- #linedevday
- 資料
会場雰囲気
セッションメモ
Opening & Introduction
- LINEのCTOのPark Euivin氏さんのオープニングトーク
- LINEの目指している姿などを説明。
- キーワードは「Closing the distance」
Keynote New world by the LINE BOT
- LINEの新サービスの紹介
- LINE notify
- LINE Message API
- LINEのBotをつくって応募すると最大で1000万円もらえるコンテストがある。
- LINE BOT AWRDS:botawards.line.me
- 所感
LINEが乗り越えてきた困難な問題
- LINEがダウンしたときの対応の話
- メインのRedisのデータが無くなったこともある。バックアップのMySQLとWebアプリのログから復旧した。
- サーバ現在数千台
- 障害発生時は、デマ情報対応・拡散対応もしないといけない。
- 「開発者がサーバに味噌汁をこぼしたから落ちた」とか言われるらしい。
- 今回は2016年3月のサービスダウンの話
- 負荷分散のため、ユーザへの更新通知(2000個以下)は、全ユーザで3時間以内で分散で通知するようにしている。
- 原因は、全ユーザに2000個以上の変更通知がある状態になり、一気にアクセスがあり負荷がかかった。
- この場合の変更通知に対するアクセスにはユーザ認証が必要で、認証サービスに負荷がかかった。
- この場合の変更通知はなかなか無い(長らく使っていないユーザのみ)ので時間的に負荷分散していなかった。
- LINE着せ替えのテストで追加していた変更が多かった。
- Circuit Breakerの仕組みを作った
- リモートアクセスの成功/失敗をカウントし、 エラー率が閾値を超えたときに自動的にアクセスを遮断する仕組み
- 音声通信機能を提供するサービスは、インシデントがあると国へ報告義務が発生する。
- 質問「LINEのインシデント共有をLINEでやっているとき、LINE障害時は使えない?」
- 回答「HipChat、社内インフラに別のメッセージングがある」
- 所感
- 他人のサービスの障害の話おもしろい(´Д`)
- 5分で原因が分かって30分で暫定対応でサービス復旧できたらしいので対応力がすごい(´Д`)
- Circuit Breakerの考え方が収穫。
LINE Login - LINE Platform
- LINEのAPIサービスの「LINE Login」と「AutoLogin」の説明
- LINEのアクティブユーザ2億人
- LINE Login = Webサービスのログイン・会員登録の際にLINEのユーザ情報を利用でき、入力する必要がない。
- AutoLogin
- LINEアプリから他のサービスにログインする際にLINEのログイン情報入力が不要
- 所感
- つなぎやすさ、つながれやすさ大切。
Security x LINE Platform
- LINEのセキュリティについて
- トークのメッセージの暗号化について
- 例:USER 1の秘密キーとUSER2の公開キーで暗号化して送信して、USER2はUSER2の秘密キーとUSER1の公開キーで復号化する。
- グループトークの場合、全メンバーの公開鍵からグループ共通のキーを作って共有する。メンバーが増えると作り直す。
- スパム検査とかは暗号化されて内容がわからないので、ユーザ報告とユーザ同意をとって内容を確認してスパム認定している。
- リスクアセスメントについて
- 所感
- 内容が難しくなんとなくだけ雰囲気はわかった(;´Д`)
Group App Platform
- 新しいLINEグループの機能とその開発の話
- 要求・背景
- グループが巨大なグループになりがち。トーク部屋が一つだけだと話しにくい
- 過去のトークをみたい
- 新機能
- グループの管理者が作れる。参加を承認制にできる。
- グループ内に複数のトークルームが作れる。
- トークルームに対して自由にアプリを追加できる
- APIにアクセスする際にいろいろアクセストークンを検討したが、一番分かりやすいトークン(channel トークン)を利用してもらうことにした
- 所感
- LINEグループの新機能の仕様の話が多かったので、開発よりの話も聞きたかった(;´Д`)
- 認証のためのトークンはどう定義し提供していくかを考えるのはどこのサービスも苦労していそう。
LINE LIVE を支えるアーキテクチャ
- LINE LIVEの開発・仕組みの話
- HLS(HTTP LIVE Streaming)
- ファイルはビットレートごとに別で保存されていて、クライアントの状況によって取得するファイルを変えている。
- 配信者のアップロードが途中できれると、視聴者側クライアントからストレージへアクセスが増えてしまう。
- チャットログもJSON形式でファイル化して、ストレージにいれてCDN配信している。
- LOVE(いいね)を連打する機能:人は連打できる場所があると連打する。連打は楽しい。
- 所感
- 仕組みだけ聞くとシンプルだけどもろもろ実現は大変そう。
LINE Shop powered by Armeria
- LINE Shopで使われている通信ライブラリ「Armeria」の説明
- 非同期RPC/APIクライアントのためのライブラリ
- Welcome to Armeria — Armeria 0.27.0.Final documentation
- LINEバックエンドは、Javaのアプリケーションサーバ上にThrift over HTTP(ThriftのトランスポートをHTTPで実装したもの)として実装されているらしい。
- API呼び出しカウント/秒を可視化している。
- バックエンドのリクエスト解析は、Zipkinを使っている。
- HTTPコネクション接続数が600,000/分だったものが、HTTP/2を使うようになったら2000/分だった。Listen Dropが無くなった。
- しかしコネクション維持時間が長くなるので、LBがコネクション単位での振り分けだと偏りができたりと分散がうまくいかないことがある。
- Client-side Load Balancingなどを使う必要がある。
- 所感
LINEのエンジニアが働く環境と文化
- 「Tech Focus」技術的な方針。
- エンジニア文化はトップダウンで決めたのではなく、現場で根付いたものをまとめた。
- リポジトリ数@GHEがすごい
- 単純なローカライズだけでなく、地域文化を理解したモノ作り(カルチャライズ)
- 多言語なチームについて専門の通訳チームがいる。翻訳Botがいる。しかし会ってのコミュニケーションも大事。エンジニアはコードがあれば会話ができる。
- 椅子は複数の候補から選べる。スタンディングデスクも使える。
- オライリーの本は全部買って置いている。
- 考え方
- Take Ownership
- 当事者意識をもって。しかしチームとしての成果を重視する。
- Take Risks
- リスクをとって挑戦する。
- 新しい技術の利用は工数が読めないなどのリスク。しかし進むためにだから使う。
- Be Open
- できるだけ情報公開。全員でゴールするため。
- 誰かにレビューされること。開いた気持ちで指摘を受け入れる。
- Take Ownership
- 成長にはPositive Peer Pressure(良いプレッシャー)が必要。
- 現実としてマネージャはコードまで見れていないと思うので、技術は同僚が評価したほうが正確(coworker評価)。マネージャは、サイクルが回っているか、プレッシャーがかかっているかを見る。
- LINEはこれまで外部との交流がなかったので今後推進していく。OSSを利用しているのでそれへの貢献も。
- 外部との交流を促進する部署を作った。
- 所感
- 内容・事例的には他社でもありそうだけど、執行役員がそれをメッセージとして言うところ・大切にしているところがすごい(´Д`)
その他
LINE色がすごかった
- 事前案内、受付、資料配布、事後アンケートなどがLINEアプリ上で実施された。
- 開催場所・日時なども通知してほしかった(;´Д`)行くとき結局Webページみた。
- 会場などにビーコンが配置され、全部回るとオリジナルスタンプがもらえる。
- 他のカンファレンスと違って、カンファレンスをアトラクション感覚で楽しめた(*´Д`*)
お金のかけ方がすごかった
- 受付で「お食事代」としてヒカリエのギフト券2000円分くれた(*´Д`*)
- 有効期限は2月までだったので使わずに、お昼は松屋にいった(小声)
- 休憩場所がフリードリンクで、LINEキャラのブラウンをモチーフにしたどら焼きがたくさん置かれていた(twitter上で「無限どら焼き」と呼ばれていた)
- 休憩場所が埋まっている割にスペースがあったのでもう少し椅子を増やして欲しい(;´Д`)
- アンケートに答えるとノベリティとして「耐熱タンブラー」「カップ・タブレット置き」「LINE beaconキット」をくれた。もはや引き出物(*´Д`*)
- LINE儲かっている(確信)
聴講環境がよい
- 今回のイベントをブログなどで発信してくれる人を「プレス枠」として優先参加させていたのと、そのプレス枠だと会場の前方・机ありで聴けるのでよかった。ゆっくり聞けた。
- 無線LANも用意されていたが、回線が混雑して(?)遅かったので自分のPocketWifi使った(´・ω・`)
まとめ
知識的・物理的にいろいろもらった(*´Д`*)
無限どら焼き
引き出物