01Overview概要
「動いているけど、いつ壊れるか分からない」状態を、安全に前へ進めるためのバージョンアップ。
既存の小売向け Web サイト(Laravel 8 + Nuxt.js + Cloudflare 配信)の継続運用と、Laravel 8 から 10 へのバージョンアップ作業を 1 年間にわたり担当しました。
Laravel 8 はメインサポートが終了しており、依存ライブラリも徐々に Laravel 9+ にしか追従しなくなる状況でした。「いつかやらないといけない」を計画的に解消するため、本番運用と並行して段階的にコードベースを Laravel 10 に引き上げました。
02Features主な実装内容
Laravel 8 → 9 → 10 段階アップグレード
メジャーバージョンを 1 つずつ慎重に上げ、各段階でテスト・本番反映を実施。Laravel Shift も部分活用しつつ、独自実装の差分は手動で吸収。
依存パッケージの追従
composer 依存の主要パッケージを段階的に更新。互換性のないライブラリは代替実装に置換しました。
Nuxt.js フロントとの整合性確保
API 変更点をフロント側にも反映。型定義・OpenAPI の更新でフロントの実装ズレを防止。
Cloudflare 配信 × 継続運用
Cloudflare CDN・WAF 配下での無停止運用。バージョンアップ作業中もユーザー影響がほぼゼロ。
03Tech Stack技術スタック
Laravel 8 → 9 → 10 / PHP 8.1+ / Nuxt.js / TypeScript / Cloudflare(CDN・WAF)/ MySQL
04Achievements技術的工夫・成果
- 本番運用を止めずに Laravel 8 → 10 のメジャー 2 段アップグレードを完遂
- composer 依存パッケージのドリフトを段階的に解消
- Cloudflare 配信を活かして、ロールバックも即座に可能な体制を維持
- 1 年の継続運用で、機能追加・バグ修正と並行してアップグレードを進める運用ノウハウを獲得
