99클럽 36일차 TIL: jenkins
2024. 5. 9. 12:54ㆍ개발 공부
728x90
반응형
#1. 오늘의 학습 키워드
jenkins에 대해
- 저번 포스트 때 DevOps 와 CI, CD 등에 대한 개념에 대해 알아보았다.
- https://second-brain.tistory.com/53
- CI
- 여러 개발자들의 코드들의 지속적인 통합.
- CD
- 코드를 항상 배포 가능한 상태로 유지하고, 이를 자동화한다.
- CI/CD 는 개발자들의 새로 구현한 코드들이 사용자가 사용 가능한 서비스까지 전달하는 과정을 지속 가능한 상태와 자동화 된 과정으로 유지시키는 것이다.
- 그럼 이번엔 파이프라인을 구축하여 배포, 롤백 등을 자연스럽게 해주는 것에 대해 알아보자
- jenkins
#2. 공부한 내용
1. Jenkins
- 배포, 테스트, 도커 빌드 등 CI/CD 환경을 구축하기 위한 간단한 방법을 제공한다.
- 자바 Runtime에서 동작한다.
- 빌드, 배포, 테스트, 도커 빌드, 암호화, 파이프라인 등 원래 각자 수행해야 돼서 복잡했던 작업들을 하나의 플러그인으로 모듈화 시켜서 Jenkins 하나로 CI / CD 환경을 구축하고, 자동화 시킬 수 있게 도와준다.
- 젠킨스를 오픈소스 자동화 서버로 볼 수 있다.
- 1400 가지 정도의 플러그인을 가지고 있고 이 플러그인을 아래와 같이 5가지 영역으로 나눌 수 있다.
- 플랫폼
- UI
- 관리
- 소스코드 관리
- 빌드 관리
- 따라서 Jenkins 에서 CI / CD 측면은 Jenkins 가 제공할 수 있는 자동화 프로세스 중 한 가지일 뿐이다.
- 1400 가지 정도의 플러그인을 가지고 있고 이 플러그인을 아래와 같이 5가지 영역으로 나눌 수 있다.
1) Jenkins 파이프라인
- 파이프라인
- CI/ CD 파이프라인을 Jenkins 에 구현하기 위한 일련의 플러스인들의 집합 및 구성
- 파이프라인은 선언적 또는 스크립트 일 수 있다.
- Pipeline Syntax
- 선언적이 더 쉽다.
- Pipeline DSL ( Domain Specific Language ) 로 작성된다.
- 파이프라인 Section 구성
- Agent Section
- Jenkins는 많은 일을 해야하기 때문에, 여러 slave node를 생성하여 일을 할당 시킬 수 있다.
- node를 생성하는 것과 일을 할당하는 작업을 담당
- Post Section
- 후속 조치에 대한 작업을 결정하는 섹션
- Stage Section 에서의 작업이 끝난 후의 결과에 따라서 Post Section에 작업이 실행됨
- Stage Section
- 어떤 일을 처리할 지 정의하는 섹션
- 일련의 Stage를 정의하는 것
- Steps Section
- 한 Stage 내의 단계로 일련의 스탭을 보여준다.
- 사용할 수 있는 스탭은 플러그인이 제공.
- 스탭에 해당하는 작업은 플러그인의 메서드를 활용하여 일을 처리하는 등의 작업이다.
- Agent Section
- Pipeline → Agent → Stages → steps 순으로 작업 세분화가 이뤄진다.
#3. 오늘의 회고
- 정리:
- Jenkins 는 CI, CD를 지원하는 자동화 도구로 널리 사용된다.
- 장점:
- 유연성
- 다양한 플러그인 제공 → 다양한 개발환경, 툴 지원
- 확장성
- 클러스터링이나 스케일링이 가능하다. 동시에 여러 작업 지원도 가능
- 개방성
- 오픈소스.
- API 통신 가능하여, 다른 도구 및 시스템과 통합 용이.
- 넓은 풀
- 널리 사용되며, 다양한 커뮤니티와 생태계가 형성 되어있어서,
- Jenkins에 대한 지식은 널리 퍼져있다.
- 유연성
- 단점:
- 복잡성
- 많은 플러그인이 지원되는 만큼 초기 설정 및 관리가 다소 복잡하다.
- Pipeline 구성을 위한 별도의 언어를 알아야한다.
- 자원소모
- Jenkins 는 서버 리소스를 많이 요구할 수 있다.
- 보안
- 특정 플러그인의 취약성 등에 의한 보안 취약점 발생 가능
- 복잡성
728x90
반응형
'개발 공부' 카테고리의 다른 글
38일차 TIL: MOM(메시지 지향 미들웨어) (0) | 2024.05.11 |
---|---|
37일차 TIL: 디자인 패턴 (0) | 2024.05.10 |
99클럽 35일차 TIL: DevOps (0) | 2024.05.08 |
99클럽 34일차 TIL: 개발 방법론 - Agile (0) | 2024.05.07 |
99클럽 33일차 TIL: 클라이언트 사이드 캐시 (1) | 2024.05.06 |