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
0
430
ログラスの継続的ライブラリアップデートのWhyとHow / Why and How to Update Libraries Continuously in Loglass
YuitoSato
August 16, 2023
Tweet
Share
More Decks by YuitoSato
See All by YuitoSato
大AI時代で輝くために今こそドメインにディープダイブしよう / Deep Dive into Domain in AI-Agent-Era
yuitosato
1
490
50人の組織でAIエージェントを使う文化を作るためには / How to Create a Culture of Using AI Agents in a 50-Person Organization
yuitosato
6
4k
Railway Oriented Programming を オニオンアーキテクチャに適用する by kotlin-result / Railway Oriented Programming in Onion Architecture by kotlin-result
yuitosato
3
880
リファクタリングへの耐性が高いモデルベースの統合テストの紹介 / Model-Base Integration Test for Refactoring
yuitosato
7
2.8k
Expressing Business Logic with Types: Functional DDD for OOP
yuitosato
1
110
ビジネスロジックを「型」で表現するOOPのための関数型DDD / Functional And Type-Safe DDD for OOP
yuitosato
42
28k
Java21とKotlinの代数的データ型 & パターンマッチの紹介と本当に嬉しい使い方 / Algebraic Data Type in Java and Kotlin: Happy Use of Pattern Match
yuitosato
14
4.8k
リプレイス「後」が大事!Reactフルリプレイスから2年で良かったこと・その後大事なこと / The Important Point After The Framework Replacement
yuitosato
3
1k
B2B SaaSあるある! 一括処理のエラーハンドリングをKotlinで関数型的に処理する / Kotlin Functional Multi Error Handling
yuitosato
2
630
Other Decks in Technology
See All in Technology
Gateway H2 モジュールで スマートホーム入門
minoruinachi
0
140
AIにおけるソフトウェアテスト_ver1.00
fumisuke
1
360
Dataverseの検索列について
miyakemito
1
190
Winning at PHP in Production in 2025
beberlei
1
280
試作とデモンストレーション / Prototyping and Demonstrations
ks91
PRO
0
110
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
7
63k
Global Azure2025(GitHub Copilot ハンズオン)
tomokusaba
2
700
Pythonデータ分析実践試験 出題傾向や学習のポイントとテクニカルハイライト
terapyon
1
130
Cursorを全エンジニアに配布 その先に見据えるAI駆動開発の未来 / 2025-05-13-forkwell-ai-study-1-cursor-at-loglass
itohiro73
2
350
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2025年版)
infiniteloop_inc
2
11k
AIとSREで「今」できること
honmarkhunt
3
720
CodeRabbitと過ごした1ヶ月 ─ AIコードレビュー導入で実感したチーム開発の進化
mitohato14
1
240
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Building Applications with DynamoDB
mza
94
6.4k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
780
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.5k
Why Our Code Smells
bkeepers
PRO
336
57k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Fontdeck: Realign not Redesign
paulrobertlloyd
84
5.5k
Build The Right Thing And Hit Your Dates
maggiecrowley
35
2.7k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
41
2.3k
4 Signs Your Business is Dying
shpigford
183
22k
Speed Design
sergeychernyshev
29
930
A Tale of Four Properties
chriscoyier
159
23k
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