105
6장 상용배포
에 처음부터 복잡한 인프라부터 시작하는 것보다 훨씬 더 낫다.
시작 단계의 프로젝트에는 거대 기술 기업에 있을 법한 수준의 상세한 인프라 요구사항은 없
고, 배포 시 어떤 이슈가 발생할지 미리 파악하기도 어려울 수 있다. 공통적으로 사용하는 도
구와 모범 사례들이 존재하지만, 모든 경우를 다룰 수 있는
CI
/
CD
방법론은 존재하지 않는다.
즉, 간단하지만 필요한 기능은 모두 갖춘
CI
/
CD
워크플로우에서 시작하고, 품질 또는 확장 과
제가 나타나면 추가적인 단계 또는 더 복잡한 단계를 도입하는 것이 최선의 방법이다.
6.2
머신러닝 아티팩트 개발
지속적인 통합 파이프라인의 목표는 여러 기여자
contributor
의 작업을 통합할 때 불필요한 노력을
들이지 않도록 하는 것뿐만 아니라 개발 내역 간 충돌로 인한 버그를 최대한 감지하는 것도 포
함한다. 그 첫 번째 단계는 중앙화된 버전 관리 시스템을 사용하는 것이다(여전히 작업자 랩탑
에서 몇 주간 작업하며 공유하지 않는 경우가 흔하다).
가장 일반적인 버전 관리 시스템은 리눅스 커널의 소스 코드를 관리하기 위해 처음 개발된 오
픈소스 소프트웨어인 깃
Git
이다. 전 세계의 소프트웨어 엔지니어 대다수가 이미 깃을 사용하고
있으며, 계산 과학
scientific
computing
과 데이터 사이언스에서 점점 더 많이 채택하고 있다. 깃을 활
용하면 변경 사항을 선명하게 기록할 수 있고, 이전 버전의 코드로 안전하게 롤백하며, 여러 기
여자가 메인 분기에 병합하기 전에 각자 보유한 ...