Page 19 -
P. 19
작성한 코드가 프로덕션에 그렇게 쉽게 들어간다고 생각하니 짜릿한 동시
에 무서웠다.
하지만 3년간 사용해본 결과, 지속적 배포는 두말할 필요 없이 제품의 성
장에 중요한 역할을 했다. 내가 쿼라에 있던 마지막 해에는 새로운 사용자
등록, 사용자 참여 지표가 3배 이상 증가했다. 이런 성장에는 지속적 배포
와, 개발 주기 반복 속도를 높이기 위해 실행한 다른 여러 투자들이 큰 역
할을 했다. 2
인프라에 레버리지가 높은 투자를 많이 한 덕분에 앞에서 말한 바와 같이
배포 주기가 빨라질 수 있었다. 우리는 코드의 새로운 버전을 자동으로 만
들고 패키징하는 도구를 만들었다. 수천 개의 단위 테스트와 통합 테스트를
개발자 계층에서 병렬로 수행하는 테스트 프레임워크를 개발했다. 모든 테
스트를 통과하면 배포 스크립트의 모든 것이 예상대로 동작하는지 추가 검
증하기 위해 카나리아라고 불리는 웹 서버에서 새로운 빌드를 테스트한 후
프로덕션 계층에 배포했다. 제품 상태를 모니터링하는 포괄적인 대시보드
와 경고 시스템에 투자했고, 일부 잘못된 코드가 걸러지지 않을 때를 대비
해 변경사항을 쉽게 롤백할 도구도 만들었다. 이런 투자 덕분에 배포 시 수
동 작업에 들어가던 간접 비용이 없어지고, 새 버전을 배포하는 일이 그냥
일상 업무에 불과하다는 자신을 갖게 되었다.
지속적 배포라는 도구가 이토록 강력한 이유는 무엇일까? 근본적인 변화
가 일어나기 때문이다. 지속적 배포 시스템을 갖추면 일괄적인 대규모 변경
을 꾀하는 일반적인 회사와 달리 점진적으로 소규모로 변경을 수행하고 배
치할 수 있다. 접근법이 달라지면 전통적인 배포 프로세스에 드는 상당한
간접 비용이 사라질 뿐 아니라 변경사항에 대한 추론이 더 쉬워지고 개발
주기 반복 속도도 훨씬 더 빨라진다.
4장 반복 속도에 투자하라 091
이펙티브엔지니어_07.indd 91 2022-06-14 오후 3:57:32