실무에서 DB 마이그레이션을 포함해서 코드를 어떻게안전하게 배포할지 늘 고민하고 있다. 모든 것을 자동화하기에는 비용도 많이 들고 DB Migration이 잘못되면 어떻게 하지? 별도로 클라우드나 K8S를 안 쓰는 서버는 Rollback은 어떻게 할 수 있지? 등 여러 고민이 있다.
목차를 펼치자 마자 사로잡힌 문구인데 다음과 같은 표현이 기억이 난다.
XP: 힘들수록 더 자주해라
배포를 자주 할수록 리스크가 작아지고 자동화를 더 잘하게 되고 테스트가 보완된다는 말이다.
41페이지
최근 팀을 옮기고 새로운 환경에서 적응 중인데 시간이 부족해서 반수동으로 테스트, 스테이지 테스트, 릴리즈를 하고 있다. 몇 주 동안 팀에 적응하며 어떻게 테스트, QA환경 구성, 배포 등이 이뤄지고 있는지 파악했고 동료가 친절하게 문서화도 해줘서 빠르게 파악할 수 있었다.
텍스트처럼 나도 스타트업 특성상, 스케줄을 예상하기 어려울 때도 있는데, 이 책을 읽으며 예측이 어려울 때일수록 배포를 줄이기보다 변경 단위를 작게 하고 흐름을 끊지 않는 체계를 선택하는 편이 전체 리스크를 낮춘다는 것을 배웠다.
한번 팀에 새로 제안해 볼 것들을 적어본다.
1. 배포를 자주하며 리스크를 줄이고 자동화, 테스트를 강화해가자.
2. 수동으로 하는 부분은 점진적으로 제거하고 시스템적인 안정 장치를 둬서 리스크를 줄이자.
3. 배포 완료의 정의를 관측할 포인트까지 포함해서 정의해보자.
배포를 특별한 날의 이벤트가 아니라 기본적인 동작으로 자동화되도록 한번 액션을 취해봐야겠다!