🔖 요약
👏 프로젝트 소개
- 프로젝트 개요
- 프로젝트 이름: 젠킨스 도입 및 운영
- 프로젝트 기간: 2024년 3월 1일 ~ 2024년 3월 31일
- 역할: 시스템 엔지니어
- 오픈 소스 솔루션 리서치
- 서버 선정 및 구축
- 유지 관리 및 운영
✍️ 프로젝트 배경
- 도입 이전 상황
- 모든 개발 및 운영 서버에 git에 푸시가 되면 각 서버에 수동으로 접속하여
git pull
을 실행해야 하는 번거로움 - 개발 브랜치 (master, develop, feature)별로 소스 배포를 진행하는데, 이를 자동화하지 않으면 시간이 많이 소모됨
- yona에서 웹훅을 전송하고 해당 서버에만 배포하는 프로세스 필요
- 도입 이유 및 목표
- 도입 이유:
- 효율적인 CI/CD 파이프라인 구축
- 소스 코드 배포의 자동화 및 효율성 증대
- 목표:
- 서버에 대한 자동화된 소스 배포 시스템 구축
- 개발 브랜치별로 자동 배포 설정
🔦 기술 스택 및 주요 기능 구현
- 기술 스택
- 주요 기술:
- Jenkins (자동화 서버)
- Ubuntu 22.04
- Git
- Yona (웹훅 전송)
- Shell Script
- 주요 기능 및 구현 내용
- CI/CD 파이프라인:
- 자동 소스 배포
- 브랜치별 (master, develop, feature) 소스 코드 자동 배포 설정
- Yona에서 웹훅을 통해 Jenkins로 트리거 전달
- Jenkins가 해당 서버에 자동으로 배포 수행
🔦 도입 과정
- 초기 요구사항 분석
기능 | 설명 |
자동 소스 배포 | 브랜치별로 소스 코드를 자동으로 배포하는 기능. |
웹훅 통합 | Yona에서 웹훅을 통해 Jenkins로 트리거를 전달하는 기능. |
사용자 및 권한 관리 | 사용자 계정을 생성하고, 각 사용자에게 적절한 접근 권한을 부여하는 기능. |
로그 및 감사 기능 | 배포 로그를 기록하고, 감사 기능을 제공하는 기능. |
- 오픈 소스 CI/CD 시스템 리서치
기능 | Jenkins | GitLab CI |
라이선스 | MIT | MIT |
자동 소스 배포 | ✅ | ✅ |
웹훅 통합 | ✅ | ✅ |
사용자 및 권한 관리 | ✅ | ✅ |
로그 및 감사 기능 | ✅ | ✅ |
플러그인 지원 | ✅ | ✅ |
대시보드 | ✅ | ✅ |
API 통합 | ✅ | ✅ |
- 서버 설치 및 Jenkins 환경 구성
- 설치 정보
- 설치
- Jenkins 설치 및 설정
- Jenkins 서버 설치 및 플러그인 설정
- Git 통합 설정
- Yona 웹훅 설정
- Yona에서 브랜치별 푸시 시 웹훅 전송 설정
- 배포 스크립트 작성
- Shell Script를 사용하여 서버에 소스 코드를 자동으로 배포하는 스크립트 작성
- 각 브랜치별 배포 파이프라인 설정
CPU | 4Core |
MEM | 8GB |
DISK | 100GB |
OS | Ubuntu 20.04 |
Jenkins | 2.448 |
🔦 결과 및 성과
- 성과 및 결과
- 도입 후 성과
- 소스 코드 배포의 자동화 및 효율성 증대
- 수동으로
git pull
을 실행하는 번거로움 없이 자동으로 소스 코드를 배포할 수 있게 되었습니다. - 개발 브랜치별 자동 배포
- 브랜치별로 소스 코드가 자동으로 배포되어 개발 속도가 향상되었습니다.
- 업무 단순화 및 시간 절약
- Yona에서 웹훅을 통해 Jenkins로 트리거를 전달하여 해당 서버에만 소스를 배포함으로써 시간과 노력을 절약할 수 있었습니다.
- 향후 계획
- 정기적인 시스템 업데이트 및 유지보수
댓글