Upgrade to Pro — share decks privately, control downloads, hide ads and more …

LINEサーバーサイドアプリケーションのトレンド / LINE server side application trend

LINEサーバーサイドアプリケーションのトレンド / LINE server side application trend

53850955f15249a1a9dc49df6113e400?s=128

LINE Developers
PRO

January 17, 2019
Tweet

Transcript

  1. -*/&αʔόʔαΠυ ΞϓϦέʔγϣϯͷτϨϯυ -*/&%FWFMPQFSNFFUVQJO4BQQPSP -*/&'VLVPLB͖ͩ͠ ͳ͓͖

  2. ⾃⼰紹介 • Developer Relationチーム • Java • @kis

  3. LINEのサーバーサイド • 使ってる技術 • Javaのバージョンをどうするか問題

  4. LINEで開発しているもの • LINEアプリ • いわゆるLINE • メッセンジャーやタイムライン、ウォレットなどを含む • LINEファミリーアプリ •

    LINEアプリとは独⽴したアプリ • LINE LIVE、LINEマンガ、LINE占いなど • アプリ以外 • Clova、LINE Biz-Solutionsなど
  5. サーバーは? • プライベートクラウド • AWSなどパブリッククラウドはほとんど使っていない

  6. 利⽤⾔語 • 主にJava • KotlinやGoも使われ始めている • ⼀部のサービスではPerlも

  7. LINEのJava • 主にJava 8 • フレームワークはほぼSpring Framework • DBアクセスはMyBatisが多い。⼀部Domaも使われている。

  8. LINEでのサーバーサイドKotlin • Kotlin: JetBrainsが開発しているJVM⾔語 • Javaからの置き換えが容易 • Androidの新しいコードはKotlin • サーバーサイドでも少しずつKotlinが増えている

    • フレームワークはSpring Framework • メインはJavaで⼀部だけKotlin • ⾮同期処理 • RxJavaよりCoroutineのほうが読み書きしやすい • データベースアクセス • SQLに改⾏を⼊れたい • テスト
  9. LINEのGo • LINE Ads PlatformではJava(JVM)のサーバーとGoのサーバー • LINEで広告プラットフォームをJava+Golangで⽴ち上げた話

  10. LINEのデータストレージ • ほとんどのプロジェクト • MySQL • Redis • ⼀部のプロジェクト •

    MongoDB • Elasticsearch • HBase • Cassandra
  11. その他のミドルウェア • 監視 • Prometheus/Grafana • 分散トレーシング • Zipkin •

    その他 • Kafka、Storm、Sparkなどなど
  12. Javaのバージョンをどうするか問題 • 2017年9⽉にOracleがJavaのリリース・サポート⽅針を変更 • 3⽉・9⽉にバージョンアップ • 2018年3⽉ Java10リリース • 2018年9⽉

    Java11リリース • 2019年3⽉ Java12リリース予定 • Java9以降のOracle JDKは無償での本番利⽤不可 • サポート購⼊か、他のディストリビューションを利⽤する必要がある • Java8の無償アップデート提供は2019年1⽉まで
  13. ところでJavaとは? • OpenJDKとして開発される • Oracleを中⼼に、Red HatやSalesforce、 IBMなどが参加 • バイナリは配布しない •

    ビルドは各社・各団体が提供
  14. Oracleの提供するJavaビルド • OpenJDK • クラスパス例外付GPLv2 • 無償での本番利⽤可 • 次のバージョンが出たら更新ストップ(つまり6ヶ⽉のサポート) •

    Oracle JDK • サポート契約なしでの本番利⽤不可 • 3年ごとのバージョンにLTSとして5年のサポート(Java11、17がLTS)
  15. Oracle以外のOpenJDKビルド • LTSに対して⻑期間にわたって無償でアップデート提供 • AdoptOpenJDK • イギリスJUGを中⼼にしたコミュニティ。IBMもスポンサー • https://adoptopenjdk.net/ •

    Azul Zulu • MicrosoftのAzureでも提供されている • https://www.azul.com/products/zulu-enterprise/ • Amazon Corretto • https://aws.amazon.com/jp/blogs/opensource/amazon-corretto- no-cost-distribution-openjdk-long-term-support/
  16. どのビルドを使うの? • AdoptOpenJDKが有⼒ • というところでAmazon Correttoが発表された • まあAdoptOpenJDKが有⼒かな、という感じ

  17. まとめ • いろいろな技術が使われています • 各プロジェクトの裁量で利⽤できる技術をどんどん使って います