Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
©2023 RAKUS Co., Ltd. OSSライブラリの呪縛と解放戦略 2023/08/24 ミノ駆動さんと語るエンジニア怪談 LT @akkiee76
Slide 2
Slide 2 text
Akihiko Sato 株式会社ラクス / 楽楽精算 / Lead Engineer @akkiee76 自己紹介
Slide 3
Slide 3 text
OSSライブラリのアップデート戦略 今日のテーマ
Slide 4
Slide 4 text
OSSライブラリの アップデートしていますか?
Slide 5
Slide 5 text
アップデート大変ですよね?
Slide 6
Slide 6 text
アップデートしないと 様々な問題が発生します 👻
Slide 7
Slide 7 text
OSSライブラリの呪縛 1 ● セキュリティリスク ● 互換性の懸念 ● 保守性の低下 ○ 公式のサポートが受けられないことも ● 法的リスク ○ ライセンス違反などの法的問題が発生ことも アップデートしないとどうなるか?
Slide 8
Slide 8 text
OSSライブラリの呪縛 2 ● セキュリティホールが増える 😈 ● 顧客情報が流出することも 😈 ● 社会的信頼の低下 😈 ● 株価低下 😈 更にアップデートしないとどうなるか? プロダクト存続の危機 😅
Slide 9
Slide 9 text
OSSライブラリの呪縛 3 ● 対応コストが取れない 😭 ● 技術的な難易度が高い 😭 ● 仕様を知る人がいない 😭 どうしてアップデートが難しいか? アップデートのハードルが高くなる 😅
Slide 10
Slide 10 text
OSSライブラリの呪縛を解放しよう ● OSSライブラリを管理する ○ アップデート日、EOLスケジュール ● アップデートのコストを見積もる ● アップデートを開発スケジュールに計上する(必要なコスト) 継続的なアップデートを行うためには? アップデートのハードルを下げよう 😃
Slide 11
Slide 11 text
OSSライブラリ アップデート対応例 🔨
Slide 12
Slide 12 text
OSSライブラリをアップデートしよう 1 ● OSSライブラリを見える化(一覧化)😃 ● 定期的なアップデートを行う 😃 ● アップデートはバージョン開発の初期に行う 😃 弊社での主なアップデートへの取り組み
Slide 13
Slide 13 text
OSSライブラリをアップデートしよう 2 ● 管理ツールで一覧化 ○ yamory、楽楽販売、スプレッドシート ● アップデート時のバージョン、最終リリース日を記載 ● 難易度・優先度を棚卸し ○ 難易度・工数は定量的に判定し、工数に反映する OSSライブラリを見える化(棚卸し)する 😃
Slide 14
Slide 14 text
OSSライブラリをアップデートしよう 3 ● 半年〜1年周期でアップデートを実施 ● 開発リストに計上する(コストを計上する) ○ レビュー待ちのタスクなどでコツコツ行う ● アップデートする組み合わせは柔軟に組み替える ○ 影響度、難易度によってスコープを変える 定期的なアップデートを行う 😃
Slide 15
Slide 15 text
OSSライブラリをアップデートしよう 4 ● 場合によっては全機能影響を受けることも ○ 機能開発中だとデグレを発見しやすくなる ● 可能であればアップデート後から開発スタート ○ merge を次バージョン初期にするでもOK! アップデートはバージョン開発初期に行う 😃
Slide 16
Slide 16 text
● OSSライブラリを見える化(一覧化)😃 ● 定期的なアップデートを行う 😃 ● アップデートはバージョン開発の初期に行う 😃 主なアップデートへの取り組み
Slide 17
Slide 17 text
● Frontendライブラリの アップデートで苦労した話 ● これで失敗しない!JUnit 5 へのマイグレーション方法 ● 既存プロジェクトへの Swift Concurrency 導入戦略 ● 大規模AndroidアプリのDIをKoinからHiltへ移行するTIPS これまで行なってきたアップデート戦略
Slide 18
Slide 18 text
まとめ ● OSSライブラリは生物 ○ 対応しないとハードルが上がる ● アップデートは定期的に ○ アップデート不可能にならないように定期的にアップデート! ● アップデートは戦略を持って行おう ○ アップデート対応は開発スケジュールに入れる!
Slide 19
Slide 19 text
Thank you !