피드로 돌아가기
Dev.toBackend
원문 읽기
Zero-Downtime 구현을 위한 Strangler Fig 기반 점진적 Legacy 마이그레이션
Strangler Fig: migrare il legacy un pezzo alla volta
AI 요약
Context
PHP 5.6 기반의 200,000 라인 규모 Legacy 시스템의 높은 코드 결합도와 테스트 부재로 인한 유지보수 불능 상태. 비즈니스 연속성 보장을 위해 전체 재작성(Rewrite) 시 발생하는 12개월의 공백과 리스크 제거가 시급한 상황.
Technical Solution
- Nginx 기반의 Reverse Proxy를 전면 배치하여 Legacy 시스템으로의 모든 요청을 인터셉트하는 Facade 계층 구축
- 신규 기능 및 마이그레이션 대상 모듈을 최신 스택(PHP 8.4)으로 개별 구현하여 신구 시스템의 병렬 공존 구조 설계
- Proxy 설정 변경을 통해 특정 엔드포인트(/clienti, /fatture 등)의 트래픽을 신규 시스템으로 점진적 라우팅하는 트래픽 쉐이핑 적용
- 데이터 정합성 확보를 위해 Shared Database 모델 또는 Event-driven Sync 기반의 분리된 Database 구조 중 선택적 적용
- 개별 기능 단위의 독립적 배포 및 롤백 체계를 구축하여 마이그레이션 실패 시 즉각적인 Legacy 복구 경로 확보
실천 포인트
- 시스템 전면에 요청을 제어할 수 있는 Proxy/Gateway 계층이 존재하는지 확인 - 가장 위험도가 낮고 단순한 도메인부터 마이그레이션 우선순위 선정 - 신구 시스템 간 데이터 동기화 전략(Shared DB vs Sync)에 따른 스키마 오염 가능성 검토 - 기능 단위의 세밀한 라우팅 규칙을 통한 점진적 트래픽 전환 계획 수립