Chapter1. 배포 자동화
1-1. 지속적 통합
1-2. 지속적 배포
한번의 클릭 혹은 명령어 입력을 통해 전체 배포 과정을 자동으로 진행하는 것
- 시간 절약
- 휴먼 에러(Human Error) 방지
- 휴먼 에러 : 사람이 수동적으로 배포 과정을 진행하는 중 생기는 실수
- 전체 배포 과정을 일관되게 진행하는 구조를 설계한 배포 자동화를 통해 휴먼에러 발생 가능성을 낮춤
팀 구성원이 각자의 작업을 자주 통합하는 소프트웨어 개발 방식
모든 코드 변화를 하나의 리포지토리에서 관리한다.
각자 개발한 코드를 풀 리퀘스트(pull request)와 머지(merge)로 자주 통합하고 테스트하며 문제점을 파악한다.
- CI 단계
- Code: 개발자가 코드를 코드 저장소에 Push한다.
- Build: 코드 저장소로부터 코드를 가져와서 (유닛 테스트 후) 빌드한다.
- 개발자만 읽을 수 있는 소스코드를 실행 가능한 코드 및 프로그램으로 변환하는 과정.
- (Test): 코드 빌드의 결과물이 다른 컴포넌트와 잘 통합되는지 확인한다.
지속적 통합 과정이 원활하게 끝나면 바로 고객에게 배포하는 것
- CD 단계
- Release: 빌드까지 모두 준비가 되었고, 어떤 기능이 개발되었는지 비즈니스 관계자들과 이야기를 나누는 단계. 어떤 기능을 넣을지, 해당 릴리즈는 배포를 할지 말지 결정하는 단계로 여러 의사결정이 이루어진다.
- Deploy: 실제 배포
- Operation: 배포된 소프트웨어를 실제 운용하는 과정. 해당 과정에서 고객의 피드백을 충분히 받아 기획에 반영한다.
지속적 배포 사례 : Github Page
지정해둔 디렉터리에 커밋만 하면,
Github Page가 알아서 index.html 파일과 해당 디렉터리에 있는 파일을 잘 번들링해서 Github Page 서버에 업로드한다.