向けのカンファレンスです。数年前から開催されているみたいで、今年は初めての2日間開催らしいです。(自分は今年初参加でした)とてもお金と人員コストがかかっており、社員の方が言うには2ヶ月ほどこのカンファレンスのために時間をかけて用意したらしいです。16時頃からカンファレンス会場に到着して見て回ったので、共有できる情報がとても少ないですが、書き残しておきます。公開可能な発表資料は下記のリンク先にあるので、参考に。大きなホールでの発表となるセッションとホールなどを使わずに一区画を使用したショートトラックがありました。自分の聞いた発表は全部で3つほどですが、簡単に紹介します。track)19新卒エンジニアの方の発表でした。同じ新卒エンジニアとは思えないほどハキハキとした発表をしていました。基本的に社内で開発しているシステムはSpringBootなどを用いてJava製。全体の社内リポジトリの割合を調べるとJavaは90%で残りの10%はKotlinで作成されているとのこと。新しい機能はKotlinで開発するという部署もあるそうです。BootORMapper:Mybatis上記を使用しているとのことでした。自分が今開発しているプロダクトと全く同じ構成でした。Kotlinでは拡張関数が使えるのがメリットであり、実際にプロダクトで拡張関数を実装した実例を話してくれました。自分もKotlinを用いた実装で、拡張関数を実装したことがあるのでとても同意できる点でした。設定をすることでヌルポが防げるという話でした。発生箇所を探し出すのに苦労しますが、Kotlinでこれを防ぐことが出来る点があるという話でした。Kotlinの大きなメリットの1つですね。Bootを使用しているプロダクトでKotlinの導入する懸念点として、KotlinとLombokの併用にはアノテーションの兼ね合いでエラーが起こる可能性があり、そのエラーが起きた時に原因を見つけるのがなかなか難しくなるということで、この点の考慮は必要だと感じました。track)マルチプロジェクトで開発されているプロダクトで、Gradleによりライブラリ管理が二重管理になるというのが手間となるというので、2重管理にならないようなGradleプラグインを開発したというお話でした。新しいライブラリを導入するときに複数のGradleに同じ記述を書かなくてよいのは便利だと思います。他にも、ライブラリを追加・変更した場合、その影響がどのレイヤー、クラスまで影響があるのかをログ出力するというプラグインを作成したお話でした。実際に開発されたプラグインはOSS化されて公開されているとのことなので、どのプラグインかわすれてしまったので調べて見つけたら、改めてリンクを貼り付けようと思います。ものがすべてのサービスを提供していたそうです。開発に関して様々な観点で考慮しなければならない点が増えて大変なことが多かった。60万行越えるほどのモノリシックな状態だったそうです。今ではそれぞれのサービスで開発を行っていて、1つの大きなTalkServerを分割していったそうです。Dogma、RoutingツールのLEGYというものがあるそうです。ライブラリのArmeriaクライアントサイドのロードバランサーだったり、サーキットブレーカーやリクエストに関するロギングなどを組み合わせたものみたいです。OSS化されているので詳細はライブラリを御覧ください。YAMLやJSONなどのテキスト形式で設定を行うことが出来るものみたいです。障害に関する仕組みづくりや設定に関してロングポーリングなどでPullやPushなどでコンフィグレーションが見れるそうです。こちらもOSS化されておりますので、詳しくはリポジトリを見てもらうと良いかもしれません。HTTP/2Hostsなどのエンドポイント情報をそれぞれのサービスを簡単に結びつけてくれたりなどをしてくれるようです。Erlangで開発されている。SPDYを使用して独自で開発している。機能を持ち、nginxに近いみたいです。以上の3つの大きなプロダクトを使用して、モノリシックな状態からマイクロサービスアーキテクチャ化していったそうです。ブースでの発表セッションなどのLT発表以外にも色んなサービスを紹介するブースが用意されており、色んな内容を見聞きすることが出来ました。全部は回ってないですが、訪問したブースの話を載せておきます。Cloudですべてのトラフィックやデータを所持している。LINEPAYはサービス停止などになったことはなく、全部が落ちたことはほぼない。メンテナンスとかで夜中に起こされることなどがない。(とても羨ましいですね)自社の持つクラウドがすべてのトラフィックを捌ききれるので、メンテナンス状態にすることもほとんどないそうです。凄いですね!LINEにおけるObservabilityプラクティス大規模なサービスを提供しているLINEのサービスで用いている監視ツールのお話です。ログツールも基本的にPrometheusやMicrometer、Zipkinなどを使用していて、Saasは基本的に使用していない(Datadogなど)。その理由として、他の会社にデータを渡さずに会社自身がデータを保持できる。ログツールごとに専属のエンジニアがいるので、サービスを全部統一してログ出力することができるということを上げていました。UIテスト自動化UIテストの自動化は自分たちの部署でもあるので、LINEの話を伺いに行きました。LINEのサービスでUI自動テストを実施してるのは5サービスほど。基本的にはQA社員が手動でテストを行っているみたいです。その数なんと約200人!ほとんどは手動テストで動作検証しているそうです。UIテストの自動化をしている各サービスには、UI自動テスト専属のエンジニアがいて、QAの非エンジニアの方にもわかるようにログの可視化ツールなども内製している。実際にそのレポート作成ツールを見せてもらいました。UIテスト専属エンジニアの方は、機能開発のミーティングなどにも参加してどんな機能が出るのかなどの確認も一緒にするそうです。基本的に新しいサービスは手動で行い、古いサービスを自動テストしているとのことでした。台湾のLINEからのブース出展でパーソナライゼーションに関する展示がありました。LINEショッピングなどのレコメンドでいいねや購入した商品、クリックなどから商品のレコメンドを行っている話でした。購入する人が増えたみたいです。DBもMysqlやMongoDBだったりと色んな開発言語、ツール、フレームワークが使用されていました。新機能を使ったウェブアプリケーション開発プラクティスLIFFというOSS化しているWEBフレームワークがあるらしく、実際にLINEアプリで導入されている物があるみたいです。(乗換案内ジョルダンやGIFアニメーションの選択画面)LINEアプリにあるサービスの半分ほどはWEBで出来ているみたいで、LINEニュースもWEBで出来ているそうです。FrameworkLINEのサービスや開発についてLINEの全体的なサービスについて、人事やエンジニアの方とお話しました。基本的にJavaほぼ100%で最近Kotlinが増えているそうです。ほとんどのサービスは、Springフレームワークを使用して開発しているみたいで、JAVAのコミッターなどもいるそうです。新しいJAVAバージョンが出たときには、社内の勉強会を開いて、要点だけを教えてくれたりするそうです。(すごい)社員数はグローバル全体で6000人。日本の社員数は約2000人だそうです。エンジニアファーストで役員がログの出力に関して口を出すほどで、執行役員の方がブースで来訪者にサービスの詳細説明を行っていました。書きましたが、AWSなどの他社クラウドサービスは使わず、OpenStackでプライベートクラウドですべてのサービスを運用しているみたいです。サービスごとにそれぞれチームが組まれているので、あまり開発のスピードが遅くなることはないそう。逆に、周りの部署がどんなことしているのかの把握が出来ないみたいです。メッセージングのサービスも障害などで落ちてはいますが、数秒〜数分で復旧するような仕組みが出来ており、ユーザーからすると「ちょっと電波が悪いのかな?端末再起動してみよう。直った!」というレベルなので障害だと認識されることがほとんどないそうです。まとめLINEの規模が自分の想像より遥かに大きく、エンジニアの数も想像の何倍もの人数が働いてるということでした。弊社との状況(規模やエンジニアの数など)がかなり違うので、開発などの参考にするには難しい感じでした。ツールとか何から何まで内製でサービスを運用するのは本当にすごいことだと思います。システムとしては完成形に近いのかなと感じました。障害の仕組みづくりやグローバルな組織づくり、エンジニアファーストなサービス開発などとても良いなと感じる部分がありました。悪い部分や課題な部分がほとんど内容として話していなかった部分が多いので、ちょっとどんな課題が今あるのかとかは知りたいなと感じました。聞いた課題の1つとしては、LINEはサービス開発してから7年以上経っているそうで、改善はしていますがまだまだレガシーな部分があるそうです。あと、開発言語やフレームワークがどのサービスも同じもの(基本的にJava制でSpringフレームワーク)を扱っているのは結構意外でした。参加出来ませんでしたが、行けて色々なお話聞けて良かったです。...2019-09-08初のISUCON参加は惨敗だった今回初めてISUCONに参加をしました!ISUCONの存在は数年前から...2019-02-13DroidKaigi2019に参加してきました!(2日目)DroidKaigi2019(1日目)の記事の続きでDroidKaigi2019(2日目...2019-02-11DroidKaigi2019に参加してきました!(1日目)DroidKaigi2019の1日目に参加したことをブログにしました。はてなブログProサーバーサイド領域を中心にエンジニアをしています。フロントエンドやモバイルアプリの開発も勉強中。reserved.引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。