이 포스트는 2018년 1월 17일 수요일에 진행됐던 세미나 강의 영상을 시청하고 작성했습니다.
세미나 강의는 이 곳을 눌러 시청하실 수 있습니다.
노트 필기식으로 작성한 내용이기에, 존댓말을 사용하지 않은 점 참고하시기 바랍니다.
* 발표자 : 김충섭 (퍼플웍스) 님
지속적 통합 및 전달 (CI/CD)란?
CI
Continous Integration, 지속적 통합
빠르고 효과적으로 제품을 출시하기 위해 지속적으로 소스를 통합하고 빌드하고 테스트하고 배포하는 과정이 필요하다.
CI는 보통 테스트/빌드까지의 과정을 이야기하고…
CD
Continuous Delivery, 지속적 배포
CD는 여기에 추가로 전달/배포까지 지칭한다.
Microsoft Azure DevOps 시스템을 참고하자면
위 사진에서, 일반적인 CI/CD 사용 패턴을 알 수 있는데 CI는 2, 3, 5에 해당되는 부분이고, 그리고 나머지 부분은 CD에 해당되는 부분이다.
따라서 CI와 CD는 연동적이고 연속적이라고 부분이고 전체적인 하나의 과정으로 진행한다고 보면 되겠다.
Continuous Integration Tools
개발자들과 기업체에서 주로 사용하는 툴과 언어들을 랭크로 확인할 수 있는, stackshare 에서 ‘What are the best Continuous Integration Tools?’ 이라는 기사를 작성했었는데,
그 기사에 의하면 Jenkins, Travis CI, Circle CI 등이 주로 사용한다고 말한다.
이번 실습에서는 Jenkins 에 대해서 다루도록 하겠다.
Jenkins
소개
- 빌드, 테스트, 코드 분석, 배포, 알람 등 다양한 기능 제공
- Master / Agent 구성 (하나의 Master에 수십, 수백개의 Agent 사용 가능)
- 1400여개가 넘는 플러그인, Pretty But Old UI
- 무료
실습
노트에 기록하는 것보다 실습을 진행했고, 직관적이기 때문에 별도로 기록한 부분은 없었습니다.
따라서 위에 기재된 링크를 따라 들어가셔서 실습 자료를 내려받아 진행하시면 되겠습니다.
- pipeline : Stage 별로 작업 만들기
- Do not allow concurrent builds 체크 : 한 빌드를 진행중이면, 연속적으로 빌드를 진행하지 않도록 한다.
- GitHub project : GitHub Project 주소를 입력하면, GitHub에 업로드된 프로젝트를 활용하며 빌드한다.