
技術広報 @ShuzoN です。今回は当社からCARTA ZEROのエンジニア 李丞浩(以下、yish0) がプロポーザル採択され登壇しました。その概要と様子をお届けします。
登壇:「キーワードは『延命』 ― リプレイス困難システムの現実的バージョンアップ戦略」

「キーワードは『延命』 ― リプレイス困難システムの現実的バージョンアップ戦略」 というテーマで登壇。
登壇では、24時間無停止で運用され、毎月しっかりと売上を生んでいるものの、PHP 5.6 / Amazon Linux 2 という古い環境で動いているアフィリエイト広告サービスのPHPバージョンアップ事例を紹介しました。
触るのが怖い「稼ぐレガシー」への挑戦
このシステムは、仕様書もなくドメイン知識を持つ人もいない中、230本のエンドポイントを抱えていました。テストカバレッジも20%以下という状況で、「リファクタリングしてから」といった悠長な時間をかけられない制約の下、 「延命」 をキーワードに現実的な戦略を提示しました。
- アクセスログによるスモークテスト: 既存のテストでは不十分なため、アクセスログから有効なエンドポイントを特定し、リプレイテストを実施することでエラーの有無を地道に確認
- GoReplayによるミラーリング検証: 「同じInputなら同じOutputが出る」ことを担保するため、本番トラフィックをミラーリングサーバーに流し、レスポンスを比較検証する仕組みを導入
- ワンコード戦略:
spl_autoload_registerを活用し、PHPのバージョンに応じて動的にロードすることで、一つのブランチでPHP 5.6と8.4の両方を動作させる工夫を凝らす
失敗から得た「安全フェンス」の教訓
プロジェクトの途中で、ログディレクトリの権限付与ミスにより成果記録が止まってしまうというトラブルも経験しました。 アラートは設定されていたものの、実は2021年から動いていない状態だったことが発覚。 この苦い経験から、サービスの根幹を守るための「安全フェンス(本番で一連の流れを常に叩いて確認する仕組み)」を導入し、最悪の状況を即座に検知できる体制を整えています。
まとめ
PHPerKaigi 2026では、登壇を通じて、高すぎる理想に縛られず「延命」という現実解を選択する勇気と、それを支える技術的な工夫を共有することができました。これからもCARTAは、日々の業務で得た知見を技術コミュニティに還元し、エンジニア文化の発展に貢献していきます。