News
Meetup
YouTube
Blog
2021/08/13 に公開
778 views
このエピソードについて
@potato4d が @sunecosuri と @jacksmam0 に、オンプレミス環境で構築・運用している Self Hosted 版 Renovate について話を聞きました。
ゲスト紹介
@sunecosuri
LINE Growth Technology (LINE GT)のフロントエンドエンジニア
LINE NEWS の toB 向けの CMS などの開発を担当
@jacksmam0
LINE Growth Technology (LINE GT)のフロントエンドエンジニア
Official Sticker Manager の開発を担当
Renovate
パッケージの更新管理支援ツール
更新チェック・更新作業をどちらも大きく支援する
更新チェック
一定の間隔で依存関係のバージョンアップデートを調査
更新があった場合、リリースノートを集約して Pull Request を発行
更新作業
アップデートがあった場合の自動 rebase
CI がグリーンの場合の自動マージ
major / minor / patch など変更の大きさごとの PR 集約
UIT での構築の経緯
LINE GT 内の Slack スレッドでパッケージのバージョン管理が話題に
話を聞いてみた結果、以下の傾向にあることがわかった
脆弱性があった場合にアップデートするだけ
欲しいパッケージをピンポイントで調査してアップデート
もっとパッケージをライトに上げたい
Renovate を構築すると良いのではという話があがってきた
LINE では GitHub Enterprise を利用しているため、SaaS 版は使えない
年末で少し工数が余っていたので、 @sunecosuri @jacksmam0 @potato4d の三人で取り組むことに
Renovate 構築での悩み
Renovate には構築方法が複数あり、調査から始まった
https://docs.renovatebot.com/self-hosting/
CLI/Node.jsパッケージ/Dockerイメージの3つ
はじめは Docker ベースで構築を進めていたが、違いがないことが判明
現在は CircleCI cron にて定期実行する形で、メンテナンスフリーな形で構築している
Renovate 運用での悩み
提供側と利用者側で Node.js のバージョンが同じとは限らない
直近だと Node.js v16 利用プロジェクトで package-lock.json のバージョンが違った
Renovate では v1 ベースで Pull Request を発行しているが、利用者側は v2
毎回大きな diff が発生する問題が生じており、調査を続けている
Renovate 本家に問題がある場合の原因調査が大変
本家の Issue を見に行って似たような問題があるかを調査することが主
そもそもオンプレミスで構築している人が多くないため、情報がないことも
OSS のアプリケーションを運用するのとは違った、影響範囲の広さを実感した
利用者側での感想
良くも悪くもアップデートをサボっていることが可視化される
メンバーに余裕がないと心理的な負担は結構ある
ワークしている状態だと健全に依存がアップデートされていって良い
特に devDeps は上げやすい
LINE の場合、専任のQAチームがいるのでどこまでQAしてもらうかが悩みどころ
他社の事例も聞いてみたい
Refs
LINE 新卒採用 2023
https://linecorp.com/ja/career/newgrads/engineering/
キャリア採用はこちらから
https://linecorp.com/ja/career/position/475
BGM&SE
魔王魂/騒音のない世界/OtoLogic
1.0x
1.3x
1.5x