무중단 자동 배포: 멀티사이트 CMS를 위한 AI 기반 QA
Source: Dev.to

Pantheon이나 Acquia와 같은 주요 관리형 호스트에 코드를 배포하는 것은 비교적 쉽습니다. 하지만 배포가 50개의 지역 서브‑사이트 전반에 걸쳐 컴포넌트 렌더링을 조용히 깨뜨리지 않았는지 확인하는 일은 훨씬 더 어렵습니다.
수동 QA는 엔터프라이즈 CI/CD 파이프라인에서 점점 커지는 병목 현상이 됩니다.
팀이 디커플드 헤드리스 아키텍처 업데이트를 배포한다면, 표준 유닛 테스트와 코드 스니퍼는 언제나 통과하지만, React 프런트엔드가 예기치 않은 API 스키마 변경으로 인해 중요한 Drupal 분류 용어를 렌더링하지 못할 수 있습니다.
이때 전통적인 CI는 멈추고, 에이전시 QA가 시작됩니다.
graph TD
A[GitLab CI Success] -->|Webhook| B[Agent Orchestrator]
B -->|CLI| C[Infra Alignment: Purge Cache]
C -->|Puppeteer/Playwright| D[Global Edge Testing]
D -->|Vision API| E[Visual Drift Analysis]
E -->|Pass| F[Auto-Promote to Prod]
E -->|Fail| G[Slack / Jira Alert]
순수 스크립트 파이프라인의 문제점
표준 Jenkins 또는 GitLab CI 파이프라인은 코드가 정상적으로 컴파일되고 단위 테스트가 통과하는지를 확인합니다. 그러나 이들은 렌더링된 페이지 상태를 검사할 수 있는 컨텍스트 인식이 부족합니다. 이 때문에 기업은 매 배포 후 로그인, 검색, 결제와 같은 핵심 흐름을 수동으로 검증하기 위해 인간 QA 팀에 의존하게 됩니다.
만약 배포가 금요일 오후 4시 30분에 이루어진다면, 이 수동 검증 기간 때문에 작업이 비근무 시간 혼란으로 이어집니다.
에이전트 기반 QA 파이프라인 (솔루션 개요)
이 문제를 해결하기 위해 배포 웹훅에 의해 자동으로 트리거되는 특수 Playwright 에이전트를 설계했습니다. 이는 “희망”에 의존하는 대신 엄격하고 시각적이며 기능적인 검증을 수행합니다.
단계 1: CI 웹훅 트리거
GitHub Actions 또는 GitLab CI가 Staging(또는 Production) 환경에 대한 배포를 성공적으로 완료하면, 보안 웹훅을 에이전트 오케스트레이터에 전송합니다. 오케스트레이터는 즉시 대기열 상태에 들어가 캐시 무효화를 기다립니다.
단계 2: 자동 인프라 개입
에이전트가 수행하는 첫 번째 작업은 인프라 정렬입니다. Varnish 또는 Cloudflare 뒤에서 실행되는 Drupal 또는 WordPress 플랫폼의 경우, 오래된 캐시가 잘못된 부정 테스트를 보장합니다.
에이전트는 CLI 도구를 통해 자동으로 인증하여 환경이 깨끗한 상태임을 확인합니다.
# Automated Cache Invalidation via CLI
terminus env:clear-cache $SITE.$ENV
lando drush cr
cloudflare-cli purge --zone $ZONE_ID --all
단계 3: 시각 및 기능 검증
단순 curl 상태 검사 대신, 오케스트레이터는 Playwright를 사용하여 전 세계적으로 헤드리스 Chrome 인스턴스를 생성합니다.
// Playwright: Automated Multi-Site Verification
test('Verify Decoupled Component Render across Regionals', async ({ page }) => {
const regionalSites = ['en-us', 'es-mx', 'fr-fr', 'de-de'];
for (const site of regionalSites) {
await page.goto(`https://${site}.brand.com/booking`);
const component = page.locator('.booking-masthead-v2');
await expect(component).toBeVisible({ timeout: 10000 });
// Functional check: Does the API respond?
const apiResponse = await page.waitForResponse(res => res.url().includes('/jsonapi/'));
expect(apiResponse.status()).toBe(200);
}
});
Vision LLM Regression Detection
Playwright 스크린샷을 빠른 Vision LLM 모듈에 파이프라인으로 연결하면, 시스템은 전통적인 DOM 스크래퍼가 간과하는 시각적 드리프트나 깨진 레이아웃(예: 히어로 배너가 “Book Now” 버튼을 가리는 경우)을 즉시 표시할 수 있습니다.
Originally published at VictorStack AI — Drupal & WordPress Reference.
비즈니스 영향
AI 기반 시각 QA를 코드 수준 CI와 함께 적용함으로써:
- 신뢰할 수 있는 배포: 높은 신뢰도의 금요일 배포; Playwright 에이전트가 스테이징 복제를 통과하면, 프로덕션 배포가 자동으로 진행됩니다.
- QA 병목 현상 제거: 회귀 테스트 주기가 수작업 4시간에서 자동화된 병렬 검증 5분 이하로 단축되었습니다.
- 사이트 간 일관성: 단일 마스터 CMS 브랜치에서 50개 이상의 현지화된 사이트를 운영하는 조직의 경우, 에이전트가 모든 사이트를 동시에 검증합니다—수동 QA 인력으로는 불가능한 작업입니다.