티스토리 뷰
개요
서버 어플리케이션에 기능을 추가 하려면 개발자가 개발자 노트북에서 개발을 완료 하고 테스트까지 한 다음에 이상이 없으면 사용자가 사용할 수 있게 수정된 내용을 서버에 반영해야 합니다. 서버에 반영을 하는 것을 '배포'라고 하고 배포 하기 위한 준비 과정을 '빌드'라고 합니다.
Build란?
빌드는 서버에 올릴 수 있는 상태로 만드는 것을 빌드라고 합니다.
서버에 올려서 사용자가 사용 할 수 있게 하는 것은 배포(Deploy)라고 합니다.
예를 들어 SpringBoot 어플리케이션을 쿠버네티스에 배포하는 경우 먼저 Maven이나 Gradle로 빌드를 해서 .jar이나 .war를 만든 후 Docker빌드를 해서 Docker Image를 만듭니다. 그 후에 k8s에서 .yml파일에 이미지 버젼이 바뀐것을 반영하게 됩니다.
Build를 자동화 해야하는 이유
빌드는 하루에 한번을 할 수도 있고 안할수도 있지만 1주일, 1달로 따지면 꽤 많이 합니다. 그리고 이게 1년이면 꽤 많은 시간이라고 할 수 있습니다.
예를들면 옛날에는 자바를 빌드 할 때 javac라는 커맨드를 직접 사용 했지만 지금은 IDEA를 이용하면 main()메소드를 실행했을 때 javac를 하고 java가 실행이 됩니다.
이렇게 반복되는 과정은 버튼 하나 또는 단축키로 자동화 시킬 필요가 있습니다.
왜냐하면 이 작업을 하는데도 집중력, 긴장감 등이 소모 되기 때문입니다. 그리고 빌드는 시간이 꽤 걸리는 작업인데(30초 이상 걸림) 빌드를 실행 시키고 나서 빌드가 될 때까지 기다리는 시간도 모아보면 엄청 길 것입니다.
개발자의 시간은 소중하기 때문에 최대한 반복작업은 자동화 할 필요가 있습니다.
저도 수동으로 빌드를 5개월쯤 하니 자동화를 안시킬 수가 없었습니다. 수정하고 빌드하고 dev에 올리고 하는데 너무 시간을 많이 잡아먹기 때문입니다.
Jenkins란?
위에서 이야기한 빌드를 자동화 해주는 툴입니다.
Jenkins는 빌드를 자동화 시키기 위해 사용합니다.
대표적인 기능은
1. 대쉬보드 제공
여러가지 배포 작업의 상황을 모니터링 할 수 있습니다
2. 배포 스크립트 실행기능
배포 스크립트를 개발자 로컬에서도 실행 할 수 있는데 젠킨스라는 프로그램을 띄워놓으면 스케쥴링을 해줍니다
3. 다양한 플러그인
빌드를 하는 환경도 다양하고 빌드를 할 때 바꿔 주어야 하는 옵션도 다양하고 각각 개발 환경과 개발한 언어도 다 다릅니다. 이런 것들을 커버하기 위해 젠킨스는 다양한 플러그인을 제공 합니다.
Jenkins를 안쓰게 되는 이유
다음 글 : Jenkins Pipeline Project만들고 git pull실행하기
요즘은 Gitlab이 대세라고 합니다.
'개발 > Infra' 카테고리의 다른 글
iterm2에서 복사 하는 법 (0) | 2018.09.10 |
---|---|
serverless앱 shell script(sh) profile 받아서 없으면 메세지 출력하고 종료 있으면 배포 (0) | 2018.08.31 |
jenkins에서 프로젝트 삭제 (0) | 2018.08.22 |
gmail 2차 인증 otp로 적용 하기 (0) | 2018.03.29 |
mac에 awscli 설치 (1) | 2018.02.21 |
- Total
- Today
- Yesterday
- 싱가폴
- docker container tissue
- 도커컨테이너
- 도커각티슈케이스
- shellscript
- 도커티슈박스
- vim
- docker container case
- 개발자
- Sh
- docker container whale
- docker container
- Linux
- 도커티슈케이스
- 이직
- 도커각티슈박스
- docker container tissue box
- 2017 티스토리 결산
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |