この記事は ex-crowdworks Advent Calendar 2024の9日目の記事です。
はじめに
今年、株式会社クラウドワークスを退職したエンジニアコーチの@nisyuuです。使用しているランニングシューズはGEL-KAYANO 31です。
エンジニアとしてクラウドワークステック(旧クラウドテック)というフリーランスと企業をマッチングするエージェントサービスを開発していました。
クラウドワークステック開発チームでは、ライブラリを1週間おきと定期的にアップデートする取り組みや、EOLの事前アップデートに取り組んでいます。
定期的にバージョンアップをすることで、現行バージョンのサポート切れで想定される障害や、最新の機能を利用できる環境にしておくことでシステムをより良いものにすることが可能です。
日本にあるエンジニア組織で、ここまでの取り組みができている組織はほとんどないと思うため、今回はテック開発チームがどのようにライブラリのアップデートに取り組んでいるかを紹介します。
1週間おきにライブラリアップデート
テック開発チームのライブラリアップデートには、Dependabotというプロジェクトで使用されるライブラリをチェックし、脆弱性の検知やバージョンアップ用のPRを自動で作成するボットを活用しています。
Dependabotの設定はyamlファイルで実装することができます。
詳細はこちらをご覧ください。
使用しているライブラリは日々頻繁に更新されます。
そのため、1週間という短い時間スパンで更新をしていました。
バージョンアップ用のPRは休日に作られるため、次の週に担当者がバージョンアップの内容確認と動作確認をして対応していました。
アップデートは当番制で、エンジニア間で担当していました。
EOLの事前検知
EOLはこちらのサイトで確認していました。
EOLは頻繁に訪れるものではないため、週1で対応する必要はありませんでしたが、上記サイトがAPIを提供しており定期的にGASを通してSlackへ検知結果を通知するようにしていました。
さらに、通知内容をライブラリアップデートの当番が確認する運用を導入していました。
EOLの対応はボランティア活動のようになってしまっており、属人化していることが問題にもなっていたため、自動化と当番チェックの掛け合わせで効率よく属人化を防げるようになりました。
おわりに
気づいたらEOLが...といったことや、使っているライブラリに脆弱性があるけどメジャーバージョンを2つぐらい上げないといけなくすぐに対応できない...といったことにならないように、バージョンはこまめにチェックしてアップデートしておきましょう。
達成よろしく!