去年、「来年こそはこの時期だけ沖縄に避難する!」と固く誓っていたですが、子供が産まれてそんなことが言ってられなくなリました。最近、アンドパッドで最も古くから稼働している施工管理サービスのRubyを2.7から3.0にバージョンアップしました。この記事では、バージョンアッププロジェクトの進め方と今回のプロジェクトを通して学んだことを説明します。複数のチームが開発を行うモノリスでは、Ruby・Rails・各種gemやライブラリのアップデートを誰が責務を持って行うのか、宙に浮きがちな問題です。施工管理サービスも歴史が長く、複数のチームが開発を行うモノリシックなサービスで、例に漏れない状況でした1。2.7が2023年3月31日にEOLを迎えてしまうことによるバージョンアップ熱の高まりがありました。3.0で施工管理サービスのRSpecを全て成功させるようにr7kamuraさんが精力的に修正を進めてくださったこともあり、今回のRubyバージョンアップの狼煙が上がりました。施工管理サービスのRubyをバージョンアップするためのメンバーがアサインされ、プロジェクトがスタートしました。プロジェクトの進め方このプロジェクトはおおよそ以下の4ステップで進行しました。全チームに動作確認の工数確保を依頼し、動作検証期間のスケジュールを確保する。動作検証期間の開始時に、本番環境以外の全ての環境でRubyをバージョンアップし、全チームに動作検証を依頼する。動作検証中にRubyバージョンアップ起因の不具合を全て洗い出し、これを修正する。Rubyバージョンアップ起因の不具合が全て修正され、全チームの動作検証が完了したことを確認して、本番環境のRubyをバージョンアップする。動作検証期間中のCI/CD動作検証期間中にCI/CDをどのように設定していたのか気になる方も多そうなので、これについて説明します。CD動作検証期間中のCDは、以下のように設定していました。3.0用のGemfile.lockをGitリポジトリに載せて並行運用。イメージのビルド時に、使用するGemfile.lockを切り替える。