Description: 빌드와 Cloudflare Workers의 역할, 배포 실패를 성공으로 표시하는 문제를 쉽게 설명한다.
Introduction
사이트를 한 번 업데이트하는 데 수십 분이 걸리고 결과는 그대로라면 무엇을 의심해야 할까? 파일을 만드는 과정보다 배포 앞에 붙은 확인 단계가 문제일 수 있다.
What is happening?
빌드는 글과 코드를 브라우저에서 사용할 수 있는 파일로 만드는 작업이다. Cloudflare Workers는 요청에 응답하고 필요한 코드를 실행한다. GitHub Actions와 Buildkite는 빌드와 배포 명령을 실행한다. 서로 다른 역할을 전부 ‘워커가 멈췄다’고 부르면 원인을 찾기 어렵다.
The absurd failure
어떤 배포 절차에는 워커에 허락받기, 최신 코드로 전환하기, 다시 실행하기, 변경 사항 확인하기, 무료 사용량 장부 확인하기가 줄줄이 붙어 있었다. 첫 확인이 사용량 제한 때문에 응답하지 않아 건너뛰었더니 다음 확인에서 멈췄다. 그런데 화면에는 ‘성공’. 아무것도 배송하지 않은 택배 회사가 배송 완료 문자를 보낸 셈이다.
How to tell what failed
빨간 오류가 백 개여도 공통 파일 하나가 원인일 수 있다. 반대로 빌드가 성공해도 실제 사이트는 예전 버전을 보여줄 수 있다. 빌드 완료, 업로드 완료, 실제 주소에서 새 버전 표시를 따로 확인해야 한다.
A simpler route
해결 방향은 배포 명령을 단순하게 만드는 것이다. 워커 배포는 공식 명령 하나, 사이트는 빌드와 업로드 명령 하나로 통일한다. 실행하지 않았으면 이유를 남기고 실패로 처리한다. 마지막에는 실제 사이트를 확인한다.
Conclusion
사람의 일을 줄이려고 자동화했는데 사람이 자동화를 돌보느라 바빠졌다. 필요한 것은 감시자 한 명 추가가 아니라 불필요한 관문을 없애는 일이었다.
