jenkins를 사용하기 전에는 모든 개발자들의 수정사항이 제출되고, 브랜치에 병합된 후 빌드까지 생성되어야 통합테스트를 진행 할 수 있었다. 또한, 전체 애플리케이션의 코드에 대해서 테스트를 실행했기떄문에 빌드 오류를 찾아 수정하는것도 오래걸렸다.

하지만 jenkins를 사용하면서 애플리케이션에 반영되는 모든 변경 사항에대해 단위 테스트가 실행되었고, 문제가 발생하지않는 경우에만 브랜치에 병합된다.
병합후에는 통합으로 인한 결함을 판별하는 테스트가 실행되고, 배포단계에서 오류가 발견되면 마지막으로 성공한 빌드 이후에 추가된 파일만을 확인하면 된다.

jenkins가 등장하기 전에는 테스트와 배포에 많은 노력이 들어갔으나, jenkins는

Jenkins

1. 개념

젠킨스는 아파치 톰캣 처럼 서블릿 컨테이너 내부에서 실행되는 서버 시스템이다.
자바로 작서오디었으며, 소프트웨어 개발과 관련된 다양한 도구를 지원한다.

젠킨스는 소프트웨어 개발 프로세스의 다양한 단계를 자동화하는 도구로,
main 레포지토리에서 최신코드를 가져오거나, 소스코드 컴파일, 단위테스트 실행, 산출물 을 다양한 유형으로 패키징, 다양한 환경으로 배포 하는 기능을 제공한다.

2. 역사

2004년 코스케 카와구치가 Sun Microsystems에서 코드 오류로인한 빌드 실패 문제를 개선하고자 Hudson 이라는 자동화 서버를 개발하였다.
2011년 허드슨은 Oracle이 Sun Microsystems를 인수하면서 Jenkins 프로젝트로 갈라져 나온다.
Hudson은 2020년 1월 서비스를 종료하고 Jenkins만이 남게된다.

3. 젠킨스 아키텍쳐

젠킨스의 CI/CD 프로세스는 다음과 같다.

  1. 여러 개발자가 각자의 브랜치에서 작업후 main 레포지토리에 push 하고, 코드리뷰 후 dev 브랜치에 병합니다.
  2. 브랜치의 변경 사항이 젠킨스에 전달된다.
  3. 젠킨스가 변경사항을 수신하면 job을 시작한다.

젠킨스의 job

빌드 릴리즈 수명 주기의 여러 단계를 수행하기위해 순차적인 프로세스로 구현한 Task 및 하위 Task를 말한다.

댓글남기기