제휴사 페이지 장애로 인한 매출 손실 및 사용자 경험 저하 문제를 해결하고자 함
Puppeteer를 활용하여 Headless Browser 기반의 URL Checker를 개발, 이미지 비교 방식으로 장애 감지
GitHub Actions에서 Kubernetes CronJob으로 운영 환경을 변경하여 에러 발생률 0% 달성
Puppeteer를 사용하여 제휴사 페이지를 주기적으로 스크린샷하고, 이전 스크린샷과 비교하여 장애 여부를 판단한다. 구체적으로 Resemble.js를 활용하여 이미지 유사도를 측정하고, 50% 이상 차이가 발생하면 장애로 간주한다. 따라서 페이지 변경 감지를 통해 장애 발생 시점을 빠르게 파악한다.
초기에는 GitHub Actions를 사용하여 CronJob을 구성했지만, ERR_CONNECTION_CLOSED, ERR_CONNECTION_TIMED_OUT 에러가 빈번하게 발생했다. 으로 런너를 변경했으나, 근본적인 해결책이 되지 못했다. 따라서 으로 전환하여 및 을 구축했다.
현재 사용 중인 Puppeteer는 Chromium 기반 브라우저만 지원하여, iOS 환경에서의 제휴사 페이지 검증에 한계가 있다. Playwright를 도입하여 Webkit 브라우저를 지원함으로써, iOS 사용자 환경까지 커버할 예정이다. 결과적으로 다양한 환경에서의 서비스 안정성을 확보할 수 있다.