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
Renovate を使った ライブラリアップデート 仕組み化の取り組み
Search
ANDPAD inc
September 27, 2023
Technology
0
920
Renovate を使った ライブラリアップデート 仕組み化の取り組み
テックリード
栗山 徹
@kotetu
2023 年 9 月 28 日
モバイルアプリの開発生産性を上げる Lunch LT 登壇資料
ANDPAD inc
September 27, 2023
Tweet
Share
More Decks by ANDPAD inc
See All by ANDPAD inc
アンドパッドにおける CocoaPods ライブラリ群の SwiftPackageManager への移行戦略
andpad
0
30
Flutter は DCM が 9 割
andpad
1
40
Amplify で SPA をホスティングする際の注意点
andpad
0
25
マルチプロダクト開発の現場でAWS Security Hubを1年以上運用して得た教訓
andpad
0
63
rails stats で紐解く ANDPAD のイマを支える技術たち
andpad
1
390
本編では話さない Zig の話
andpad
2
250
"noncopyable types" の使いどころについて考えてみた
andpad
0
390
ANDPAD黒板のオフラインモード機能 リリースまでの軌跡
andpad
0
280
アンドパッドのマルチプロダクト戦略を支える SRE
andpad
1
250
Other Decks in Technology
See All in Technology
LINE NEWSにおけるバックエンド開発
lycorptech_jp
PRO
0
290
Aurora PostgreSQLがCloudWatch Logsに 出力するログの課金を削減してみる #jawsdays2025
non97
1
230
JAWS FESTA 2024「バスロケ」GPS×サーバーレスの開発と運用の舞台裏/jawsfesta2024-bus-gps-serverless
ma2shita
3
260
Snowflake ML モデルを dbt データパイプラインに組み込む
estie
0
110
30→150人のエンジニア組織拡大に伴うアジャイル文化を醸成する役割と取り組みの変化
nagata03
0
190
Introduction to OpenSearch Project - Search Engineering Tech Talk 2025 Winter
tkykenmt
2
110
MIMEと文字コードの闇
hirachan
2
1.4k
技術スタックだけじゃない、業務ドメイン知識のオンボーディングも同じくらいの量が必要な話
niftycorp
PRO
0
110
Potential EM 制度を始めた理由、そして2年後にやめた理由 - EMConf JP 2025
hoyo
2
2.8k
OPENLOGI Company Profile for engineer
hr01
1
20k
わたしがEMとして入社した「最初の100日」の過ごし方 / EMConfJp2025
daiksy
14
5.2k
Cracking the Coding Interview 6th Edition
gdplabs
14
28k
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.3k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
4
380
How GitHub (no longer) Works
holman
314
140k
Raft: Consensus for Rubyists
vanstee
137
6.8k
Making the Leap to Tech Lead
cromwellryan
133
9.1k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Building Your Own Lightsaber
phodgson
104
6.2k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Practical Orchestrator
shlominoach
186
10k
Code Review Best Practice
trishagee
67
18k
Bootstrapping a Software Product
garrettdimon
PRO
306
110k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.3k
Transcript
栗山 徹 (@kotetu) - ϞόΠϧΞϓϦͷ։ൃੜ࢈ੑΛ্͛ΔLunch LT (2023/09/28) Renovateを使った ライブラリアップデート 仕組み化の取り組み
1
• LTのテーマ • iOSアプリ開発における Renovate を使ったライブラリアップデート仕組み 化について • ライブラリアップデートに対する考え方 •
株式会社アンドパッドにおける運用事例 • Renovate の使い方については最後に参考文献として共有します はじめに 2
1. モバイルアプリ開発におけるライブラリアップデート 2. Renovate について 3. ANDPAD iOS アプリにおけるライブラリ更新フロー 4.
まとめ アジェンダ 3
(くりやま とおる) • X (Twitter) : @kotetu • 株式会社アンドパッド テックリード
• iOSDC Japan 2023 • 「認証体験向上のために passkeys (パスキー) に対応する」 • 「Swift Markdownを使ったMarkdownアプリ 開発」 栗山 徹 4
1. モバイルアプリ開発における ライブラリアップデート 5
• 新機能の利用、機能改善の適用 • 不具合の解消 ライブラリアップデートの目的 6
• 新機能 • パフォーマンス向上 • 既存機能のエンハンス • プログラミング言語のバージョンアップ対応 • 破壊的変更が発生することもある
新機能の利用、機能改善の適用 7
• ライブラリの実装起因の不具合解消 • セキュリティ問題の修正 • OSアップデートに伴う不具合解消 不具合の解消 8
• 「遅れないように」かつ「小まめに」アップデートすることが望ましい ライブラリアップデートへの向き合い方 9
• 重要なアップデートに迅速に対応できる程度には追従する • クラッシュをはじめとした不具合修正 • セキュリティ問題 • 一方で慎重さも必要 • アップデートにより問題が発生しないかどうか見極める必要がある
「遅れないように」アップデートする理由 10
• アップデート間隔が長いと1回あたりのアップデート対応工数が増える • リリーススケジュール調整の手間が増える • アップデート作業に対する理解を得るのに苦労する • 工数かかる → 今はアップデートしない
→ 放置してさらに対応工数増える の悪循環 「小まめに」アップデートする理由 11
• 対応工数 (特にメジャーバージョンアップ時) • 機能開発に影響しないような体制作りが必要 • アップデート作業の手間 • ライブラリアップデート情報のキャッチアップ •
Pull Request 作成 • テスト 望ましいアップデートフロー実現への障壁 12
• 対応工数 (特にメジャーバージョンアップ時) • 機能開発に影響しないような体制作りが必要 • アップデート作業の手間 • ライブラリアップデート情報のキャッチアップ •
Pull Request 作成 • テスト 望ましいアップデートフロー実現への障壁 13 Renovateで効率化できる
2. Renovate について 14
• “Universal dependency update tool” • 依存関係の更新ツール • 主な機能 •
ライブラリの更新検知 • Pull Requestの自動生成 Renovate 15 Renovate の GitHub リポジトリ https://github.com/renovatebot/renovate
• 更新を検知したら自動でPRを作る • 自動でマージ設定可能 • 生成頻度など、設定項目が豊富 Pull Request ࣗಈੜ 16
• ライブラリ管理ツールへの対応 (iOS) • Renovate は SwiftPM, CocoaPods, Carthage をサポートしている
• Dependabot は SwiftPM のみ • ANDPAD (iOSアプリ) は Renovate を利用 • CocoaPods を利用しているため Renovate と Dependabot 17
3. ANDPAD iOS ΞϓϦにおける ライブラリ更新フロー 18
• 更新に気付いたらアップデートする、という慣習が続いてきた • 気付かないこともある • 更新が多すぎて上げにくい • 全社で Dependabot 導入の機運が高まった
• バックエンド・フロントエンド問わずアンドパッド全リポジトリで対応 Renovate を使い始めた経緯 19
• CocoaPods を利用 • 社内全 iOS 関連リポジトリで利用 • 複数種類の社内共有ライブラリを運用 •
使用しているサードパーティライブラリ • 20種類以上 ANDPAD iOS アプリ 20
ライブラリアップデートフロー 21
ライブラリアップデートフロー 22 Renovate で自動化 手動実行
• Pull Request 作成までは Renovate で自動化 • 更新確認は日次で実施 • 並列で出せる
Pull Request の数は 5 に設定 • レビュー担当がレビューし、手動でマージする • QA 方針はアップデート内容により異なる • 影響範囲が小さい場合はリリース前のリグレッションテストで担保 Renovate の運用ポリシー 23
• ϚΠφʔόʔδϣϯΞοϓͷසΞοϓ • 通常の運用工数の範囲内でアップデート 対応できるようになった • レビューアのチェックとQAにより品質 も維持 Renovate 導入の効果
24
• 影響範囲が大きなアップデートに対するアップデートポリシーの確立 • ex) メジャーアップデート、破壊的変更の有無 • 「時間的に余裕があれば対応」「アップデートしないといけない状況に追 い込まれたら対応」になりがち • Pull
Request 作成頻度が高い • レビューアコスト増、コンフリクト頻度増 運用面での課題 25
4. まとめ 26
• ライブラリのアップデートは「遅れないように」かつ「小まめに」 • アップデートフローの確立には様々な障壁がある • Renovate によりフローを一部自動化してエンジニア負荷を軽減できる • Renovate が貢献できるのはフローの一部
• 手動で対応する作業含めチームとしてどう取り組むかを考える必要がある まとめ 27
もっとアンドパッドの開発組織が知りたい方へ We are Hiring!! 28 技術スタックや募集ポジションを 掲載しています! https://engineer.andpad.co.jp/
• 「 potatotips #77で「RenovateによるiOSライブラリーの自動更新」という発表をしました&いくつかの補足」 • https://ikesyo.hatenablog.com/entry/potatotips-77-renovate-for-ios • 「Renovateで実現するライブラリの自動更新生活」 • https://speakerdeck.com/ikesyo/automated-library-updates-with-renovate
• 「Renovateまとめ(iOSを例に解説)」 • https://qiita.com/_asa08_/items/b0be1453f70efb3b9c29 • 「Renovateの導入と半年間の運用の振り返り」 • https://zenn.dev/sunadoi/articles/889219ab865583 • 「[GitHub] Renovate の導入と設定」 • https://qiita.com/ksh-fthr/items/40732b6396f36c62bea2 参考文献 29