복습 4일 차
jenkins 소개 및 설치 내용을 복습하는 날이다. jenkins가 무엇인지 왜 사용해야하는지부터 복습한다.
Jenkins
Jenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their software
www.jenkins.io
소프트웨어 개발시 개발 내용을 로컬에서 작성한 코드를 빌드하고 빌드한 내용을 서버에 배포하는 일련의 과정이 존재한다. 개발자들은 작성한 내용을 commit하여 서버에서 병합하는 작업을 수번 반복한 다음 하루가 끝난 시간인 밤에 빌드를 하여 정상적이라고 판단하면 배포하게 된다. 젠킨스는 정기적인 빌드에서 나아가 git과 연동하여 commit이 생성 될때마다 자동으로 빌드가 되도록 파이프라인 구축이 가능하다.
빌드 자동화가 없다면 코드를 컴파일하고 컴파일한 내용을 서버에 배포하는 과정을 수동으로 해야 하며 하루동안 소비한 시간은 작지 않을 것이다. 컴파일 내용을 확인하고 배포를 시작하고 배포가 완료되기를 기다려야하는 시간을 줄일 수 있다면 생산적인 업무에 시간을 사용 할 수 있을 것이다.
젠킨스는 여러사람의 코드를 하나의 환경에서 컴파일, 빌드, 배포하는 것을 목적으로 한다. 젠킨스가 주는 이점은 표준 컴파일 환경에서 컴파일 오류가 가능하다. git 과 연동하여 commit 완료 시점에 파이프라인을 실행시켜 빌드, 배포를 가능하게 할 수 있다. 파이프라인에 프로파일링 툴을 사용하여 성능 변화를 감시 할 수 있으며 젠킨스 script를 사용하여 파이프라인 단계에 원하는 작업을 실행 시킬 수 있다.
그렇다면 젠킨스는 장점만 있는 것일까 단점도 찾아보았다. 사람들이 주로 말하는 단점은 젠킨스를 설정하는 데 시간이 걸리고 업데이트 관리 및 유지하려면 상당한 양의 작업이 필요하다는 것과 프로젝트 설정이 자주 변경되는 환경에서 젠킨스 환경도 같이 변경해야 하는데 이 과정이 번거롭고 빌드를 위한 시간을 소비해야 하는 점을 단점으로 말했다.
jenkins는 무료 오픈소스이고 경쟁 제품으로 atlassian의 bamboo가 있다 bamboo는 bitbucket, jira, confluence와 연동할 수 있다는 이점 이 있어 회사차원에서 많이 사용되는 제품이다
아래 링크는 배달의 민족에서 CI/CD 도입에 대해 작성한 문서다
woowabros.github.io/experience/2018/06/26/bros-cicd.html
라이더스 개발팀 모바일에서 CI/CD 도입 - 우아한형제들 기술 블로그
이 글은 CI/CD를 안드로이드에 도입하게 되면서 정리한 내용입니다. 구축 및 운영하고자 하시는 분에게 경험을 공유하고자 합니다.
woowabros.github.io
젠킨스 설치
젠킨스를 지원하는 운영체제는 아래와 같다. 프로젝트마다 요구하는 환경이 다를텐데 웬만한 환경은 모두 지원하니 빌드자동화 적용이 가능하다고 본다.
젠킨스 설치는 어렵지 않다. 기본적인 플러그인을 설치되기를 기다리고 관리자 계정을 추가하면 설치는 끝난다.
자바스프링 프로젝트 환경에 맞는 젠킨스 설정은 이전에 작성한 블로그 글을 첨부한다.
[패스트캠퍼스 수강 후기] 올인원 패키지 : AWS/Docker 클라우드 서버구축👉AWS강의 100% 환급 챌린지
25. Chapter 03. Jenkins 소개 및 설치#1 26. Chapter 03. Jenkins 소개 및 설치#1 실습 27. Chapter 03. Jenkins 소개 및 설치#2 28. Chapter 03. Jenkins 소개 및 설치#2 실습 29. Chapter 03. Jenkins 배포 및..
dooyeoung.tistory.com
24일 마무리
빌드 자동화의 필요성과 장단점을 복습했으며 젠킨스가 어떻게 탄생했는지 찾아봤다. 다른 팀은 젠킨스를 어떻게 활용하는지 참고 할 수 잇었다.
현재 수강 중인 강의는 아래와 같다
올인원 패키지 : AWS/Docker 클라우드 서버구축👉https://bit.ly/3bFlm0e