하루에 여러 번 배포하는 팀은 특별한 용기를 가진 것이 아닙니다. 한 번에 나가는 변경이 작고, 실패하면 이전 버전으로 돌아갈 수 있고, 돌아간 사실을 바로 알 수 있습니다. 파이랩이 납품하는 서비스에도 이 세 가지를 먼저 넣습니다. 기능보다 배포 경로가 먼저 준비되는 프로젝트가 결과적으로 기능도 더 많이 나갑니다.
배치가 작으려면 기능 플래그가 필요합니다. 코드는 매일 들어가도 사용자에게는 아직 보이지 않게 둡니다. 데이터 마이그레이션은 코드와 분리해서, 새 컬럼을 읽고 쓰기를 마친 뒤에 옛 컬럼을 지웁니다. 이 순서를 건너뛰면 배포가 무서워지고, 무서워지면 변경이 한 주에 한 번으로 뭉칩니다.
스테이징은 운영의 축소판이어야 합니다. 비밀 값의 개수, 외부 연동, 백그라운드 작업이 같아야 합니다. 데이터 양까지 같을 필요는 없지만, 권한과 네트워크 경로는 같아야 합니다. 파이랩은 스테이징에서만 되는 설정을 발견하면 그 차이를 버그로 적습니다.
배포 기록은 채팅창에 남지 않게 합니다. 누가, 어떤 커밋을, 언제 올렸는지가 남아야 다음 사람이 롤백합니다. 도구의 이름은 바뀌어도 이 기록은 남깁니다.