LINE株式会社は11月20、
- LINE DEVELOPER DAY 2019
- URL:https://
linedevday. linecorp. com/ jp/ 2019/ - ※ 参加申し込みは11月4日
(木) までにカンファレンス公式ページから
今年で5回目となる本イベントですが、
イベント開催に先駆けて、
エンジニアの好奇心を満たす内容に必ず出会える!
お話を伺ったのは以下の3名の皆さんです。
- LINE Z Part チーム Software Engineer 河村勇人氏
- LINE App Dev 3チーム Software Engineer 玉木英嗣氏
- LINE 開発Bチーム Software Engineer 大森貴博氏
プラットフォーム、
まず、
「DEVDAY」なのでゴリゴリのエンジニア向けにエンジニアリングの話しかしない!
Reliability Engineering Behind The Most Trusted Kafka Platform
河村勇人氏(1日目:16:20~17:00 / HALL-A)
最初は、
河村氏は、
今回は、
基盤開発・運用の現場と実際がわかる
- ――
「Reliability Engineering Behind The Most Trusted Kafka Platform」 の見どころについて教えてください。 河村:実は昨年も似たようなタイトルで
「Multi-Tenancy Kafka cluster for LINE services with 250 billion daily messages」 という発表を行っています。去年の発表でもKafka固有の知識や使い方などだけでなく、 Kafka platform上で、 ユーザから求められるサービスレベルで運用していくためのリライアビリティエンジニアリングにフォーカスしてお話をさせていただきました。 今年もタイトルには
「Kafka」 と入っていますが、 必ずしもKafkaのことを知らなくても、 そこでのリライアビリティエンジニアリングのエッセンスを一般化したような形で、 テクニックや考え方の紹介を行っています。今回のセッションでは去年よりもその傾向を強めて、 Kafkaについての固有の話は最初だけで、 あとは徹底してパフォーマンスエンジニアリングやSLO (Service Level Objective) を決めるための計測の仕方など、 リライアビリティエンジニアリングに一般化した話をする予定です。 1つは、
分散システムでサービスレベルを測るときの話題です。分散システムは面白くて、 サーバ側とクライアント側が協調して動作します。サーバ側だけで取得できるメトリックだけではサービスレベルを測ることができません。必ずクライアント側の視点から、 サーバ側と協調して動作した上での結果のメトリックを見る必要があります。そこをどうやっているかというお話をさせていただきます。 もう1つは、
トラブルシューティングの話です。Kafkaのクラスタで起きたパフォーマンスのイシューについて、 それが起きたところからどんな段階を経て調査を進めていったか、 その過程でどのようなテクニックを使ったか、 そして最終的にその問題の原因を突き止めるまでの流れを説明していきます。
ゴリゴリの“ガチ”エンジニアにおすすめ
- ――Kafkaは1つの題材として、
サービス開発運用には欠かせない、 リライアビリティエンジニアリングやパフォーマンスエンジニアリングについて、 実践的、 かつ、 河村さんご自身やLINE社として蓄積されてきたノウハウが公開される、 非常に濃いセッションになりそうです。実際、 どういった方に聴講してもらいたいですか? 河村:とにかく
“ゴリゴリ” のエンジニアですね。 (LINE DEVELOPER DAYは) イベント名からして 「DEVDAY (開発者の日)」なので、 エンジニアリングの話がしたい。開発者と話したいと私は強く思っています。DEVDAYのように、 非常に規模が大きいカンファレンスでは (多くの方に聞いてもらえるよう) 一般向けの内容に寄せて、 比較的抽象的な内容にする発表者もいますが、 私は来場者数や聴講者数ではなく、 自分が技術者として純粋に面白いと考えている内容にフォーカスし、 準備しています。 余談ですが、
去年もそうした内容でお話をしたところ、 案の定技術者ではないような方はポカーンとされていました (笑)。しかし、 技術者の方からは好評をいただいたので、 今年も技術者向けのゴリゴリの技術の話をする予定です。とくに、 ローレイヤに興味がある方や日ごろからリライアビリティエンジニアリングやパフォーマンスエンジニアリングをやっている方たちにとっては、 確実に面白い話になるので、 期待してください。
Feature Flagを活用した開発の最前線を大公開
Journey of Feature Flag development in LINE Android
玉木英嗣氏(2日目:15:30~16:10 / HALL-D)
続いて、
LINE AndroidアプリにおけるFeature Flagを活用した開発の舞台裏
- ――入社以来、
LINE Androidアプリを開発しているという玉木さん。今回のセッションでは、 まさに現在進行系の開発の模様について、 とくにGitを活用したチーム開発について話してくださるとのこと。どんな内容なのでしょうか? 玉木:私のセッションは
「Journey of Feature Flag development in LINE Android」 というタイトルですが、 実はAndroidの (技術的な) 話はあまり出てきません。どちらかというと、 もう1つのキーワードである 「Feature Flag」 にフォーカスした内容を準備しています。Feature Flagパターンとは、 Gitのブランチを形成する手法の1つです。 開発途中でもすべての変更をメインブランチに入れる代わりに個別の機能をOn/ Offするためのフラグを使用する手法で、 開発スピードを落とさずリリースタイミングを柔軟に管理したい場合に向いています。 今、
多くの方がよく使っている手法としてFeature Branchパターンがあります。Feature Branchパターンの場合、 その機能のFeature Branchに変更を1つ1つマージしていく。その後、 完成したときにメインブランチに取り込むという方法がGit開発の定番として、 一般化しているのではないでしょうか。 私たちLINE、
とくにLINEのクライアントアプリの場合、 関わるエンジニアの数や管理する機能、 新規で開発する機能が大規模になると、 Gitでのコミット数やPR (プルリクエスト) 数も多くなり、 たとえば1週間で変更されるコードの量も桁違いに多くなります。 そういう状況では、
Feature Branch パターンで開発をすすめると、 1つ1つのそれらが複雑に絡み合い、 マージしようとするとコンフリクトが起きてしまい大きなリファクタリングもできなくなってしまう。Feature Branch パターンではこのような課題に直面し、 頭を悩ませるリスクが多くなります。私自身そうした辛みを何度も経験しました。そこで、 私たちはLINEのAndroid開発チームではFeature Flagパターンによる開発 (以降Feature Flag) を取り入れています。 Feature Flagを取り入れることで、
どんな良いことが起こるのか。わかりやすいところでは、 開発時のコンフリクトが少なくなります。また、 万が一トラブルが発生したり、 大幅な修正が必要になった際のロールバックも柔軟に行えます。たとえば、 新機能のリリースタイミングで、 QA (品質保証) で何かしらの問題が発生したときでも、 すぐに元の状態に戻すことができます。 Feature Flagでは、
(Feature Branchのように) 特定のバージョンに向けてリリースを進めているときに、 タイミングによってはすぐにマージできずにもやもやしてしまうということがなく、 どんどんメインブランチにマージできます。このように、 大規模アプリ・ 大規模チーム開発のストレスを軽減し、 効率的に開発が進められるのがFeature Flag戦略の特徴です。 私たちのLINE Android開発チームでは、
2015年12月からFeature Flagを使用した開発を進めています。今回のセッションは、 これまでの振り返りをしながら、 実際の開発の様子や問題が起きたときの解決策など、 Feature Flag開発の生の事例を公開します。
多機能で複雑なチーム開発で辛みを感じた方、お待ちしています
- ――LINE Androidアプリの規模感
(機能・ ユーザ数・ 開発者数) というのは、 おそらく平均的なAndroidアプリと比べても、 突出して大規模ではないかと思います。そういった印象を踏まえて、 どのような方が聴講すると楽しめますか? 玉木:おっしゃるとおり、
規模感で言えば、 私たちのアプリは非常に大規模です。しかし、 Feature Flag開発は、 規模の大小だけではなく、 開発スピードを上げたいなど、 規模以外の面で活用できる手法です。 今現在、
Feature Branchでの開発において、 何かしら辛みを感じたことがある方はぜひ来ていただきたいです。スライド自体はクライアントの話にフォーカスしていることろがあるので、 iOSやAndroidなどクライアントの開発を行っている方だと、 “あるよね” といった頷ける部分があると思っています。その中で、 Feature Flagを使って “なるほどね” と思える、 共感できる内容をたくさんお届けして、 エンジニアの皆さんの開発生活のお役に立てればと思います。 もちろん、
Feature Branch / Feature Flag未経験の方を始め、 これからスマホクライアントアプリ開発に関わる方も知っておいて損はありません。私たちの経験をもとに、 今のスマホアプリ開発の現状を知ることができるはずです。 また、
現在取り組んでいるAndroid向けのFeature Flag関連のプラグインをOSSで近日中に公開を予定していますので、 そのあたりの最新動向を知りたい方も、 ぜひお越しください。
ガラケーもスマホも。17年目を迎えたLINEのブログ開発の光と影~ livedoor BlogとLINE BLOGの関係は?
Inside of Blog; 15年熟成されたサービスの光と影、カオスとレガシーへの挑戦
大森貴博氏(1日目:13:40〜14:20 / HALL-C)
最後に、
インターネットメディアを変えたブログの存在、その主役となったブログサービスの変遷
- ――大森さんのセッションの見どころを紹介していただけますか?
大森:前の2人と比べて、
私は、 一世代二世代前のLINEエンジニアですね。4年ほど前からブログの開発に関わり、 「livedoor Blog」 と 「LINE BLOG」 という、 2つのサービスのリードエンジニアを担当しています。2001年に旧ライブドア (当時はオン・ ザ・ エッヂ) に入社し、 現在に至ります。 私がお話しするのは
「Inside of Blog」 というタイトルで、 内容は2003年にリリースされた 「livedoor Blog」 が今年で17年目を迎え、 最近、 すべてのサービスの移行作業をおこなっています。おもにそのときの感想というか、 まさにそのときに起きたことのブログ的な内容でお届けします。 ご存知の方も多いかと思いますが、
旧ライブドアはNHN Japanに買収合併され、 現在のLINEになりました。その過程で元々ライブドアが運営していたlivedoor Blog、 そして、 5年前にリリースしたLINE BLOGの2つのブログサービスが現在存在しています。実は3年ほど前から、 livedoore Blogを、 LINE側のインフラに乗せ換えるというプロジェクトが稼働しており、 その移行作業の内容を中心に、 大規模ブログを運営しながらどのように移行をしているのか、 エンジニアリングの観点からご紹介します。 livedoor Blogはユーザも多く、
歴史が長い分、 稼働しているサーバ台数も多く、 また、 サービス基盤として利用するミドルウェアやプログラムが古く非常にレガシーなサービスです。機能によっては、 今はもう開発環境が整備されていないものもあります。 そのあたりの、
企業としてあまり表に出すことがないところを今回は大公開して、 複数サービスの移行という (表向きの) 内容だけではなく、 サービス開発・ 運用におけるノウハウだったり、 真似してはいけないことなどを、 実際の話として紹介します。私としては、 それらを反面教師にしていただければいいかなと思っています (笑)。ちなみに没タイトルとして 「Dark Side of Blog」 という案もありました。 また、
livedoor BlogとLINE BLOGという、 開発時期がまったく異なる同じ目的のサービスの違い、 それらの関係性など、 ふだん表に出ない部分だと思いますので、 そのあたりもお話しする予定です。 内容が内容なだけに、
人によっては響かないかもしれませんが、 2001年のブログブーム、 Web 2. 0ブームを知っているエンジニアにとっては 「懐かしい」 と思ってもらえるのではないでしょうか (笑)。ただ、 livedoor Blogの細かな部分、 とくにPerlに関わる内容は、 懐かしさだけで終わってしまうかもしれないので、 その点はあまり触れないようにするつもりです。逆にその頃を知らない世代からすると新鮮というか新しい発見があるかもしれませんね。
サーバサイドエンジニアを中心に、運用保守の仲間が欲しい方はぜひ
- ――少し伺っただけでも、
とても懐かしく思いました (注:聞き手はオン・ ザ・ エッヂ時代の他のエンジニアにもインタビューをした経験がある)。懐かしさ、 だけではないかと思いますが、 具体的にどのような方をターゲットに、 プレゼンテーションをする予定でしょうか。 大森:ブログの基盤となるサーバ周りの話を中心に行いますので、
発表内容は、 サーバサイドエンジニアをメインターゲットとして考えています。 私は、
息の長いサービスの開発にいくつも関わってきましたが、 その様なサービスを生み出すためには、 コードのメンテナンスだけでなくその裏側であるインフラ (足回りの部分) やミドルウェアのメンテナンスも非常に重要です。すでにご経験のあるエンジニアだけではなく、 これから永続的なサービス開発・ 運用をしたいエンジニアに、 少しでも役立つ情報を持ち帰ってもらって、 仲間として理解が得られたらいいなと考えています。 また、
移行の話や運用の話は、 実際に稼働しているブログメディアの評価にも関わります。ですから、 エンジニアではない方、 たとえば、 企画職やディレクターといった職域の方にも聞いてほしいですね。
他にも見どころ満載!エンジニアイチオシの気になるセッション
どのセッションも、
玉木:私が気になっているのは、
中村俊介の 「LINT です。次の10年へ向けた(LINE Improvement for Next Ten years)」のセッション 『LINE』 のプラットフォーム改善の紹介が行われるセッションです。 「LINT」 の活動自体は、 クライアントチームなので耳にする機会が多いのですが、 具体的にどのようなことをやっているのかは、 そこに携わっている方ではないと知らなかったりします。自分が担当しているアプリケーションが、 これからどのように進化しようとしているのかというところに関して、 すごく興味があります。 あと、
主に公募で決まったブースが20個ほどあります。海外のチームからの参加もあり、 それぞれどのようなものが展示されるのか気になるところです。 河村:中身を詳しく知っているわけではないのですが、
井出真広の 「マイクロサービス化」 と岡田遥来のLINE公式アカウントのシステムの裏側のセッションです。登壇する本人たち自身が、エンジニア的に面白いなと思っています。 井出は、
自分が持っているプロジェクト以外にも、 自分なりにテーマを持ちいろんなサービスに対して横断的に自分のやってみたい取り組みを実行しています。縦のサービス区切りの視点ではなく、 横で区切ったときの視点で、 どんなことが見えているのか気になります。岡田も普段から近いところで協業していて、 技術的に面白い取り組みをされている方なので、 注目しています。 大森:自分はずっとサーバサイドエンジニアなので、
気になっているのはアプリ側です。あまり関わったことがないので、 そちらの話を聞こうと思っています。わかりやすそうだったのが、 10分間のショートトラックですが、 Bruce Evansのアプリのサイズの話ですね。 「LINE」 はわりと大きいサイズのアプリでダウンロードにも時間が掛かりますが、 そのあたりで苦労があるのかなと思い興味を持ちました。 あとは、
先ほど玉木が紹介していたFeature Flagの話題です。こちらはサーバサイド開発にも適用できそうな感じがしたので、 実際にそれを使ってみてどんないいところや悪いところがあるのか気になりました。
LINT (LINE Improvement for Next Ten years) |
---|
URL:https:// |
LINEのメッセージングプラットフォームにおけるマイクロサービス化への長い道のり |
URL:https:// |
進化したLINE公式アカウントのメッセージ配信を支える技術 |
URL:https:// |
増大するアプリのバイナリーサイズを縮小 |
URL:https:// |
11月20、21日はグランドニッコー東京台場で、エンジニアの醍醐味を満喫しよう
最後に、
大森:
「DEVDAY」 には、 本当に多様な、 そして、 さまざまな方をターゲットにしたセッションが用意されています。今の段階では迷っている方も、 まず、 会場にお越しいただき、 そのときの様子や混雑具合などを見ながら、 自分に合うセッションを見つけ出せるはずです。決め打ちで起こしいただくのも良いですが、 会場で選ぶというのも楽しみ方の1つになるのではないでしょうか。自分のセッションはかなり癖があるので、 オススメはしません (笑)。ちょうどお昼の後のセッションなので、 眠くなったら会場に来てください (笑)。 河村:繰り返しになりますが、
私は、 自分自身が話していて面白い話をします。皆さんもエンジニアであれば、 聞いて面白いと思っていただけるんじゃないかと思います。さまざまなタイプのセッションがありますが、 私は純粋にエンジニアリングに関わる内容をお話します。純度の高いエンジニアリングの話が聞きたい方はぜひ私のトークに来てください。 玉木:これだけたくさんの分野のセッションが1ヵ所で聞けて、
なおかつ (少なくとも今年は) 無料です (笑)。こんなお得なことはありませんので、 まず、 会場に来てみてください。そこで、 自分が気になるセッション、 たとえば、 タイトルで気になるワードがあればそれを来てもらうのでも良いですし、 周りの人に相談してみるのもイベントならではの楽しみ方かもしれません。 もちろん、
主催である 「LINE」 の中で使われている技術が一挙公開される、 年1回の場でもありますから、 ふだん気になっていたLINEの技術・ エンジニアリングを楽しんで聞いていただければ嬉しいです。各セッションのあとには、 スピーカーと話し合う場と時間も用意されています。あと、 今年はゲストセッションも豪華で、 それらを楽しみにしている社員も多いです。 その他、
今年は大森のセッションのように、 昔から行っているサービスに関するものがいくつかあるのも特徴です。弊社ならではの特徴でもありますし、 イベントだから話せる、 失敗談や普段話せない内容も (おそらく) 出てくると思います。そして、 河村が準備しているゴリゴリのエンジニア向けのセッション、 これから先のLINEや取り巻く社会に関わる未来のエンジニアリングの話もあります。 私がまとめるのもなんですが、
まずはサイトでどんなコンテンツがあるかぜひ見てみてください。そして、 少しでもピンときたら、 11月20、 21日はグランドニッコー東京台場にお越しいただき、 エンジニアの醍醐味を満喫してください。 - ――ありがとうございました。