LINE Developer meetup #63 LINE バイトシステムリニューアル
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ツール
Decaton
LINE製Kafkaフレームワーク
JDKのマイナーアップデートはどのタイミングか?
サービスによる
マイナーアップデートで治る問題がある時にあげる
Kafkaの導入
もう導入してる?→導入してる
LINE応募で使用してる
複数のAPI使うのでとか非同期にしたいとか対障害性を担保するとか
実録LINEスタンププレミアム開発の現場
家さうな……?
地方ブランチの話
エンジニア100人弱
Shop Team がFUKUOKAに誕生
いろんな人いる
日本・韓国・中国・台湾・ドイツ
新機能の開発フロー
ディスカッション
プロトタイプ
キックオフミーティング
DXを改善する専属のチームがいる
うらやましい
課題
職能型組織で別れてる
横串で組織をまたぐ形
DXカイゼン
クリーンビルド10分
モジュール化
経営陣にも理解してもらう必要がある
福岡はご飯美味しいし、家賃も安い!
開発環境
秘伝のタレのようなスクリプトで、15分ぐらいまつと開発できる環境が出来上がる
LINE Shopチームのあけおめ対応
Armeria (Javaで書いたマイクロサービスフレームワーク)
モニタリングは専属で見てる人がいる
モニタリングのメトリクス
サービスレイテンシ(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の動きとか