피드로 돌아가기
Dev.toDevOps
원문 읽기
Parallelization과 Strategy 최적화로 배포 시간 90% 단축
Magento 2 Static Content Deploy Optimization: Faster Builds, Fewer Headaches
AI 요약
Context
Magento 2의 Static Content Deploy 과정에서 다수의 Theme와 Locale 조합으로 인한 자산 생성 병목 현상 발생. 순차적 처리 방식과 비효율적인 기본 Strategy 채택으로 인해 대규모 스토어 기준 최대 30분의 배포 다운타임 리스크 상존.
Technical Solution
- CPU Core 수에 맞춘
-j플래그 적용을 통한 Theme/Locale 조합 처리 프로세스의 Parallelization 구현 - 불필요한 자산 생성을 배제하는
--theme및 Locale 명시적 지정 기반의 Scoped Deploy 구조 설계 - 중복 파일에 Symlink를 활용하여 Disk I/O와 저장 공간을 최적화하는
quickStrategy 채택 - Frontend와 Admin Asset Tree의 독립적 분리 및 병렬 실행을 통한 CI 서버 리소스 활용 극대화
--no-html-minify옵션을 통한 Staging 환경의 불필요한 연산 제거로 반복 배포 주기 단축- Build Artifact의 Tarball 배포 방식을 통한 수평 확장 환경의 중복 빌드 제거
Impact
- 4 Core 서버 기준 Parallelization 적용만으로 배포 시간 60-70% 감소
- 기본 설정(18-25분) 대비 최적화 설정(3-5분) 적용 시 약 80% 이상의 시간 단축
- Distributed Build 도입 시 서버당 배포 시간 1분 미만으로 개선
Key Takeaway
전체 자산을 매번 재생성하는 대신, 변경 범위의 최소화(Scoping)와 처리 프로세스의 병렬화(Parallelization)를 통해 빌드 파이프라인의 선형적 시간 증가를 억제하는 설계 원칙의 중요성.
실천 포인트
- `nproc` 또는 `sysctl`을 통해 서버 CPU Core 수를 자동 감지하여 `-j` 값에 할당하고 있는가? - Production 환경에서 `standard` 대신 `quick` Strategy를 사용하여 Disk I/O를 최적화했는가? - 사용하지 않는 Locale과 Theme가 배포 범위에 포함되어 리소스를 낭비하고 있지는 않은가? - Frontend와 Admin 배포를 분리하여 병렬 파이프라인으로 구성했는가?