Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ログラスの継続的ライブラリアップデートのWhyとHow / Why and How to Up...
Search
YuitoSato
August 16, 2023
Technology
540
0
Share
ログラスの継続的ライブラリアップデートのWhyとHow / Why and How to Update Libraries Continuously in Loglass
YuitoSato
August 16, 2023
More Decks by YuitoSato
See All by YuitoSato
「規約、知識、オペレーション」から考える中規模以上の開発組織のCursorルールの 考え方・育て方 / Cursor Rules for Coding Styles, Domain Knowledges and Operations
yuitosato
9
8.6k
大AI時代で輝くために今こそドメインにディープダイブしよう / Deep Dive into Domain in AI-Agent-Era
yuitosato
2
4.5k
50人の組織でAIエージェントを使う文化を作るためには / How to Create a Culture of Using AI Agents in a 50-Person Organization
yuitosato
6
8.8k
Railway Oriented Programming を オニオンアーキテクチャに適用する by kotlin-result / Railway Oriented Programming in Onion Architecture by kotlin-result
yuitosato
5
1.6k
リファクタリングへの耐性が高いモデルベースの統合テストの紹介 / Model-Base Integration Test for Refactoring
yuitosato
7
3.9k
Expressing Business Logic with Types: Functional DDD for OOP
yuitosato
1
190
ビジネスロジックを「型」で表現するOOPのための関数型DDD / Functional And Type-Safe DDD for OOP
yuitosato
44
32k
Java21とKotlinの代数的データ型 & パターンマッチの紹介と本当に嬉しい使い方 / Algebraic Data Type in Java and Kotlin: Happy Use of Pattern Match
yuitosato
14
5.7k
リプレイス「後」が大事!Reactフルリプレイスから2年で良かったこと・その後大事なこと / The Important Point After The Framework Replacement
yuitosato
3
1.1k
Other Decks in Technology
See All in Technology
The Journey of Box Building
tagomoris
4
3.4k
はじめての MagicPod生成AI機能 機能紹介から活用方法まで
magicpod
0
110
データ定義の混乱と戦う 〜 管理会計と財務会計 〜
wonohe
0
140
小説執筆のハーネスエンジニアリング
yoshitetsu
0
750
Hacobu Tech Deck
hacobu
PRO
0
120
20260423_執筆の工夫と裏側 技術書の企画から刊行まで / From the planning to the publication of technical book
nash_efp
3
430
Choose your own adventure in agentic design patterns
glaforge
0
150
AIはハッカーを減らすのか、増やすのか?──現役ホワイトハッカーから見るAI時代のリアル【MEGU-Meet】
cscengineer
PRO
0
190
Chasing Real-Time Observability for CRuby
whitegreen
0
200
AIでAIをテストする - 音声AIエージェントの品質保証戦略
morix1500
1
140
AI駆動1on1〜AIに自分を育ててもらう〜
yoshiakiyasuda
0
150
AWS Transform CustomでIaCコードを自由自在に変換しよう
duelist2020jp
0
120
Featured
See All Featured
Optimizing for Happiness
mojombo
378
71k
Raft: Consensus for Rubyists
vanstee
141
7.4k
Code Review Best Practice
trishagee
74
20k
Agile that works and the tools we love
rasmusluckow
331
21k
Test your architecture with Archunit
thirion
1
2.2k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
490
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
120
Facilitating Awesome Meetings
lara
57
6.8k
Making Projects Easy
brettharned
120
6.6k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
160
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
320
エンジニアに許された特別な時間の終わり
watany
106
240k
Transcript
1 ©2023 Loglass Inc. ログラスの継続的ライブラリアップデートの WhyとHow 2023.08.15 佐藤有斗(@Yuiiitoto) 株式会社ログラス
2 ©2023 Loglass Inc. 自己紹介 株式会社ログラス 開発部 エンジニア 佐藤有斗(@Yuiiitoto) 2020年12月にソフトウェアエンジニアとしてログラスに入社。
React、Kotlinが得意で、ログラスのフロントエンド全般の設計・開 発と経営データの集計・分析エンジンのバックエンドを開発してい る。 KotlinのOSSをちょこちょこ開発・保守しています。
3 ©2023 Loglass Inc. ログラスについて 企業価値を向上する 経営管理クラウド
4 ©2023 Loglass Inc. ログラスについて(5秒) 企業価値を向上する 経営管理クラウド
5 ©2023 Loglass Inc. “魅⼒的な発信を⾏っている「開発者体験ブランド⼒」評価の⾼い企業” 25位にランクイン
6 ©2023 Loglass Inc. こちらの記事経由で登壇のお誘いを受けました https://zenn.dev/yuitosato/articles/cad5ab93e852ab
7 ©2023 Loglass Inc. ログラスでは隔週30分でライブラリをアップデートする会を設けています
8 ©2023 Loglass Inc. アジェンダ 1. なぜライブラリを継続的にアップデートし続けるのか? 2. どうライブラリを継続的にアップデートし続けるのか?
9 ©2023 Loglass Inc. 1. なぜライブラリを継続的にアップデートし続けるのか?
10 ©2023 Loglass Inc. 最近話題になった記事 https://qiita.com/autotaker1984/items/a3091772dbb0fb91473d
11 ©2023 Loglass Inc. なぜライブラリをアップデートし続けるのか? • 脆弱性対応 • 新機能にアクセスするため
12 ©2023 Loglass Inc. なぜライブラリをアップデートし続けるのか? • 脆弱性対応 • 新機能にアクセスするため https://www.cyberkendra.com/2021/12/worst-log4j-r
ce-zeroday-dropped-on.html https://nextjs.org/blog/next-13
13 ©2023 Loglass Inc. なぜライブラリを「継続的に」アップデートし続けるのか? • 脆弱性対応 • 新機能にアクセスするため •
アップデートの複雑性を減らすため
14 ©2023 Loglass Inc. ビッグバンバージョンアップデート( ≠継続的)は失敗しやすい • 説明コストが高すぎて着手できない • 説明できても人が足らなくて着手できない
• 着手できても難しすぎて失敗する • あとなんか腰が重い
15 ©2023 Loglass Inc. ライブラリアップデートのレベルイメージ。もちろんライブラリによる。 Level3: LTSが切れている。破壊的な変更があり、メジャー バージョンがNつずれている。 Level2: メジャーバージョンが
1つずれている。破壊的な変更が あるが、マイグレーションガイド通りに行えば影響は限定でき る。 複雑性 Level1: 破壊的な変更がない or 少ないパッチ、マイナーバー ジョンアップデート。多くは CIが通ればマージできる。
16 ©2023 Loglass Inc. 複雑性が増えれば、必要工数が増える Level3: LTSが切れている。破壊的な変更があり、メジャー バージョンがNつずれている。 Level2: メジャーバージョンが
1つずれている。破壊的な変更が あるが、マイグレーションガイド通りに行えば影響は限定でき る。 複雑性 工数 Level1: 破壊的な変更がない or 少ないパッチ、マイナーバー ジョンアップデート。多くは CIが通ればマージできる。
17 ©2023 Loglass Inc. 必要工数が増えれば、ステークホルダーと説明コストが増える Level3: LTSが切れている。破壊的な変更があり、メジャー バージョンがNつずれている。 Level2: メジャーバージョンが
1つずれている。破壊的な変更が あるが、マイグレーションガイド通りに行えば影響は限定でき る。 Level1: 破壊的な変更がない or 少ないパッチ、マイナーバー ジョンアップデート。多くは CIが通ればマージできる。 複雑性 工数 説明コスト 経営陣 エンジニアリング マネージャー
18 ©2023 Loglass Inc. 更新をサボればサボるほど、 失敗しやすくなる
19 ©2023 Loglass Inc. Level2までで対応したい。末期がんになる前に治療する。 Level3: LTSが切れている。破壊的な変更があり、メジャー バージョンがNつずれている。 Level2: メジャーバージョンが
1つずれている。破壊的な変更が あるが、マイグレーションガイド通りに行えば影響は限定でき る。 複雑性 工数 説明コスト 経営陣 エンジニアリング マネージャー Level1: 破壊的な変更がない or 少ないパッチ、マイナーバー ジョンアップデート。多くは CIが通ればマージできる。
20 ©2023 Loglass Inc. 2. どうライブラリを継続的にアップデートし続けるのか?
21 ©2023 Loglass Inc. どうライブラリをアップデートし続けるのか? 1. 監視する 2. 固定で時間を取る(Level1の解消) 3.
自動化する(Level1の解消) 4. 特殊部隊を作る(Level2~の解消)
22 ©2023 Loglass Inc. 1. 監視する GitHub Dependabotをオンにしよう (それだけ)
23 ©2023 Loglass Inc. 2. 固定で時間を取る(Level1の解消) • 1ヶ月に1時間とか時間取る(ログラスは隔週 30分) •
DependabotのPRを確認してマージしていく • みんなでやると楽しい • ナレッジを貯めよう
24 ©2023 Loglass Inc. 2. 固定で時間を取る(Level1の解消) • 1ヶ月に1時間とか時間取る(ログラスは隔週 30分) •
DependabotのPRを確認してマージしていく • みんなでやると楽しい • ナレッジを貯めよう • 善意に頼らずみんなで仕組みの中でやろう
25 ©2023 Loglass Inc. 善意に頼らずみんなで仕組みの中でやろう 2. 固定で時間を取る(Level1の解消)
26 ©2023 Loglass Inc. 3. 自動化する(Level1の解消) • ライブラリアップデートを自動化する • パッチとプロダクションコードに関わらないマイナーバージョンアップデートを自動化
27 ©2023 Loglass Inc. 4. 特殊部隊を作る(Level2~の解消) • 機能開発 vs メジャーバージョンアップデートの優先順位を測るのは難しい
• 最初から横断で技術的な投資をするチームを設けておけば優先順位判断をスキップできる
28 ©2023 Loglass Inc. Dependabotのマージ数が1686に
29 ©2023 Loglass Inc. Amazon Aurora Postgresqlがv11系→v15系に v11.x => v15.x
30 ©2023 Loglass Inc. Next.jsがv10系→v13系に v10.x => v13.x
31 ©2023 Loglass Inc. ライブラリを最新に保って 良い環境で開発しよう! 採用強化中です!!!
32