LINE Developer meetup #63
LINE バイトシステムリニューアル
https://speakerdeck.com/line_developers/development-for-the-line-baito-renewal
Java 8, Avans, Backbone.js Knockout.js
リニューアルしたいけど……
どこまでが許容範囲?
一度トライ→途中で移行開発停止😭
ガンダーラ、ガンダーラ
ありがち、よくある……
再度トライ
要件が作り直しとか大きい
開発方針
Java11, SpringBoot2, MySQL, Elasticsearch, Redis, (Kafka)
React, Redux, TypeScript
styled-components
フロントエンド用に別にサーバー立てる(SSR)
開発順調=>リリース
DBマイグレーション
旧、新でスキーマ違う
マイグレーションアプリケーションを作成
Spring Batch
AdoptOpenJDK使ってる
Java→Kotlin
CIツール
Drone.io https://drone.io/
Decaton
LINE製Kafkaフレームワーク
JDKのマイナーアップデートはどのタイミングか?
サービスによる
マイナーアップデートで治る問題がある時にあげる
Kafkaの導入
もう導入してる?→導入してる
LINE応募で使用してる
複数のAPI使うのでとか非同期にしたいとか対障害性を担保するとか
実録LINEスタンププレミアム開発の現場
https://speakerdeck.com/line_developers/development-for-line-sticker-premium
家さうな……?
地方ブランチの話
エンジニア100人弱
Shop Team がFUKUOKAに誕生
いろんな人いる
日本・韓国・中国・台湾・ドイツ
新機能の開発フロー
ディスカッション
プロトタイプ
キックオフミーティング
https://twitter.com/kis/status/1263755854391595008
DXを改善する専属のチームがいる
うらやましい
課題
職能型組織で別れてる
横串で組織をまたぐ形
https://twitter.com/youhei/status/1263758128195072001
DXカイゼン
クリーンビルド10分
モジュール化
経営陣にも理解してもらう必要がある
福岡はご飯美味しいし、家賃も安い!
開発環境
秘伝のタレのようなスクリプトで、15分ぐらいまつと開発できる環境が出来上がる
LINE Shopチームのあけおめ対応
https://speakerdeck.com/line_developers/line-shop-teams-new-year-work
Armeria (Javaで書いたマイクロサービスフレームワーク)
https://github.com/line/armeria
モニタリングは専属で見てる人がいる
モニタリングのメトリクス
サービスレイテンシ(50,90,99 percentile)
ログ
JVM
あけおめ対応
マイクロサービスがどの程度捌けるか計測
モニタリングしながらサーバーを減らして計測してる
今後は安全に計測できるようにする
ロードバランスのアルゴリズム変える
継続的ロードテスト
caos monkyみたいな?
メトリクス
一台あたりのRequest/Sec
API レイテンシ
エラー数
CPU usage
Network traffice
JVM GC
DBAいるんだ
サーバースペック上げて、サーバー台数を減らす
DBのコネクション減る
台数減るので経費削減
12万4000リクエスト/sec………
前年比1.2倍
サービス障害発生😭
リクエストが想定以上にきた事によるサーバーリソース不足
カスタムスタンプの見積もりが甘かった
サーバー追加の作業も時間がかかった
幸いにもサービス全体に波及することはなかった
マイクロサービスの利点
よく設計されたマイクロサービスは影響が少なくできる利点がある
そだよそ
ポストもーてむ
レポート内容
日時
影響受けたサービス
原因
タイムライン
どうやって改善するのか
カスタムスタンプにrate limitterを用意
スケールアウトをもっと早くできるように
自動化をもっと!
k8sにマイグレート
Javaどんだけできたらついていけるか?
すげーできる必要はない
コンピューターの素養は必要
G1GCの動きとか