유대선

staging이 없어서 배포할 때마다 장애가 났다

공장 현장의 고처리량 운영 파이프라인에 production과 같은 staging 환경이 없어서, local과 dev에서만 검증한 배포가 검증 없이 prod로 들어갔다. 그 둘이 가렸던 차이가 장애로 드러났다.

·1 분 소요·English version →

local에선 됐다. dev에서도 됐다. 그런데 production에서 깨졌고, 그게 배포할 때마다 거의 매번이었다.

공장 현장의 고처리량 운영 파이프라인이었다. 설비, 연동 서버, DB 사이에 엄격한 트랜잭션 일관성이 걸려 있었다. local과 dev는 더 작고 깔끔한 데이터에 느슨한 설정으로 돌았다 — 애초에 prod 모양이 아니었다. 그 사이에 prod와 같은 모양을 한 세 번째 환경은 없었다.

그래서 local과 dev가 가렸던 것들은 production에서만 드러났다. 다른 설정, dev 데이터로는 닿지 못한 데이터 양, 실제 부하에서만 나오는 타이밍. 매 배포가 코드가 prod 모양의 조건을 처음 만나는 순간이었고, 그 첫 장소가 곧 production이었다. 장애는 거기서 났다.

고쳐야 할 건 한 줄이다:

production과 같은 설정·데이터를 가진 staging 환경이 있어야 한다. 그래야 배포가 prod에 닿기 전에 prod 모양의 조건에서 검증된다.

그땐 그 단계가 없었다.