Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 스케줄러
- scheduler
- spring cloud eureka
- OS
- Spring cloud
- i/o scheduling
- 젠킨스
- jenkins pipeline
- i/o schduler
- position independent code
- eureka
- spring eureka
- MSA
- 스케줄링
- 소켓
- linux
- 라즈베리파이 에러
- socket
- 리눅스
- 네트워크
- 라즈베리파이
- pthread_join()
- 포맷
- pthread_create()
- scheduling
- 우분투
- Jenkins
- 젠킨스 파이프라인
- 소켓 프로그래밍
- SD카드
Archives
- Today
- Total
dayne의 블로그
Jenkins 설명 및 설치 과정 본문
목차
1. Jenkins 개념
2. Jenkins 동작 과정
1. Jenkins 개념
Jenkins를 설명하기 이전에, 먼저 CI / CD에 대한 이해가 필요합니다.
참고 : https://dayne-w.tistory.com/15
Jenkins는 CI / CD 환경 구축을 위한 오픈 소스 도구로, 소프트웨어 개발 생명주기를 자동화함으로써 개발 생산성을 높일 수 있습니다.
Jenkins를 사용하면 코드 변경 사항이 발생할 때마다 자동으로 빌드, 테스트 배포하는 과정을 수행할 수 있습니다.
따라서 개발자는 코드 변경에 대한 빌드 및 테스트 과정을 수동으로 진행할 필요가 없어지며, 변경 사항에 대한 신속한 검증 및 배포가 가능해지고, 이 과정에서 발생 가능한 휴먼 에러를 방지할 수 있습니다.
아래는 Jenkins 사용 시의 장점입니다.
- 편리한 설정
- 웹 기반의 콘솔로 다양한 인증 기반과 결합이 가능하며, 권한 관리 기능을 통해 안전한 빌드 / 배포 환경을 구축할 수 있습니다.
- 빌드 / 배포에 대해 통지를 받을 수 있는 설정이 간편합니다.
- 안정적인 빌드 / 배포 환경
- 소스 버전 관리 툴과 연동하여 코드 변경을 감지하고, 자동화 테스트를 포함한 빌드를 수행하여 소프트웨어 품질을 향상시킬 수 있습니다.
- 유닛 테스트, 통합 테스트 등의 테스트 과정을 설정할 수 있고, 테스트 결과에 대한 피드백을 받아 잠재적 오류를 사전에 예방할 수 있습니다.
- 빌드 결과물을 지속적으로 배포하도록 설정해, 개발 프로세스 전체를 자동화할 수 있습니다.
2. Jenkins 동작 과정
Jenkins는 Maser / Slave라는 구조로 동작합니다.
- Master는 controller라고 불리며, Jenkins slave를 관리하고 작업 스케줄링과 slave 모니터링을 포함하여 다양한 작업들을 수행합니다.
- Slave는 agent라고 불리며, 실제 파이프라인 작업을 수행합니다. 다양한 환경에서 작동하며 작업을 분산시켜 부하를 감소시키는 역할을 담당합니다. agent는 로컬 또는 클라우드 컴퓨터를 통해 Jenkins controller에 연결될 수 있어, 다양한 유연성을 제공합니다.
- Webhook
- 특정한 애플리케이션이 다른 애플리케이션으로 이벤트 발생 정보를 실시간으로 제공하기 위한 방법입니다.
- 젠킨스는 외부에 Webhook URL을 열어두고, Github로부터 이 Webhook URL로 요청을 받아 이벤트가 발생한 즉시 그 사실을 알 수 있습니다.
- Webhook
위의 사진에 대해 좀 더 자세히 설명하겠습니다.
- Github에서 Main Branch로 Push(Merge)
- 개발자가 Github 저장소의 메인 브랜치에 코드를 푸시하거나 PR을 머지합니다.
- Webhook을 통한 Jenkins 트리거
- Github에서 발생한 Push / Merge 이벤트가 Webhook을 통해 Jenkins에 전달됩니다.
- Webhook
- 특정한 애플리케이션이 다른 애플리케이션으로 이벤트 발생 정보를 실시간으로 제공하기 위한 방법입니다.
- 젠킨스는 외부에 Webhook URL을 열어두고, Github로부터 이 Webhook URL로 요청을 받아 이벤트가 발생한 즉시 그 사실을 알 수 있습니다.
- Git clone
- Jenkins는 지정된 Github 저장소를 클론하여 최신 소스코드를 가져옵니다.
- BE-Build
- Jenkins는 도커 환경에서 Spring 기반의 백엔드 애플리케이션을 빌드하여 .jar 파일을 생성합니다.
- FE-Build
- React 기반의 프론트엔드 애플리케이션도 마찬가지로 빌드하여 정적 파일(JS 파일, ...)을 생성합니다.
- BE-Deploy (백엔드 배포)
- Jenkins는 백엔드의 빌드된 .jar 파일을 AWS EC2 인스턴스로 전송합니다.
- 해당 EC2 인스턴스에서 deploy.sh 스크립트를 실행하여 .jar 파일을 실행합니다.
- FE-Deploy (프론트엔드 배포)
- Jenkins는 프론트엔드의 빌드 파일을 AWS EC2 인스턴스로 전송합니다.
- 해당 EC2 인스턴스에서 deploy.sh 스크립트를 실행하여 빌드된 파일을 실행합니다.
'CI CD > Jenkins' 카테고리의 다른 글
젠킨스 자동 배포 파이프라인 스크립트 작성 예시 (0) | 2024.10.29 |
---|---|
Jenkins Pipeline 개념 및 문법 정리 (1) | 2024.10.29 |