+ 실습으로 바로 넘어가기 보다는 아키텍처나 개념을 먼저 익혀두는것이 수월한것 같다.
참고 1.www.youtube.com/watch?v=LFDrDnKPOTg
참고 2.www.bogotobogo.com/DevOps/Jenkins/images/Intro_install/jenkins-the-definitive-guide.pdf
CI
가장 단순한 형태의 지속적 통합 도구는 버전컨트롤 시스템을 모니터링하는 도구를 예로 들 수 있다.
버전의 변경 사항이 감지될 때 마다(코드가 커밋될 때 마다?) 애플리케이션을 자동으로 컴파일 하고 테스트한다.
문제가 발생하면 개발자에게 이를 알려서(빌드가 깨졌어요! 등등을 메신저를 연동해서 알린다던지.. 메일을 보낸다던지..) 이를 해결 할 수 있도록 한다.
- CI는 해당 기능 말고도 더 많은것들을 할 수 있다. 코드품직 측정, 코드커버리지 메트릭 자동 모니터링.. (정적 분석도구를 돌린다던지..)
- CI는 특히 배포 프로세스를 자동화 할수 있어서 클릭 하나만으로 빌드 및 개발계에 배포가 가능하다. (특히 JIRA와 연동했을경우, JIRA의 SR단위(이슈)에 따라 독립적으로 개발계에 배포가 가능하다는점이 놀라웠다.)
- 또한 젠킨스는 다양한 플러그인을 제공하는데, 플러그인을 이용해서 유닛테스트까지 자동으로 실행하서 실패한 케이스가 있다면 이를 알려주는 기능도 사용 가능하다고 한다. 코드를 리팩토링하거나 기능을 수정해야할때 유용할것 같다.
젠킨스 특징
- 설치가 쉽다 : 자바 base라서 OS를 안탄다.
- 설정이 쉽다 : 웹UI를 제공한다. 에러 체크가 쉽다.
- 플러그인이 많다.
- 확장성 : 플러그인 아키텍처를 통해 확장성이 높다.
젠킨스 파이프라인
1) 개발자가 코드를 작업 후 커밋한다.
2) 젠킨스는 빌드/테스트를 한다.
3) 테스트를 성공하면 테스트 서버에 코드를 배포한다.
젠킨스 아키텍처
1) 개발자가 소스코드를 코드 레파지토리로 submit한다.
2) 젠킨스(CI 서버)는 주기적으로 코드 레파지토리를 체크하다가 새로 추가된 코드를 pull한다.
3) 빌드서버는(ex.메이븐) 코드를 실행 가능한 파일로 빌드한다.(jar/war) 빌드가 실패하면 개발자에게 이를 알려주고 1)부터 다시 시작
4) 젠킨스는 테스트 서버에 빌드 결과물을 배포후 유닛테스트를 진행한다. 만약 테스트에 실패하면 개발자에게 피드백이 간다. 1)부터 다시 시작..
5) 테스트 서버에서 테스트가 전부 성공하면.. 이제는 product server에 배포한다.
'Today I learned' 카테고리의 다른 글
2020 10 07 (0) | 2020.10.07 |
---|---|
2020 10 05 (0) | 2020.10.05 |
2020 10 03 (0) | 2020.10.03 |
2020 10 02 (0) | 2020.10.02 |
2020 09 27 (0) | 2020.09.27 |
댓글