Jenkins로 CI/CD 구축하기: 우분투 환경에서 자동화된 빌드 및 배포

1. CI/CD

CI 는 개발자들의 코드 변경 사항을 자동으로 통합하여 빌드하고 테스트하는 프로세스입니다.

CD 는 빌드 및 테스트가 완료된 코드를 자동으로 운영 서버에 배포하는 과정을 말합니다.

이를 통해 품질 향상과 개발 생산성의 향상을 기대해 볼수 있습니다.

 

2. Jenkins 소개와 기본 개념

Jenkins 는 오픈소스 자동화 서버로, CI/CD 파이프라인을 구축하기 위해 널리 사용됩니다.

자바로 작성되어있으며, 다양한 플러그인을 통해 기능 확장에 용이합니다.

유연하고 사용이 간단하여 개발자들에게 널리 알려져 있습니다.

 

3. Jenkins 소개와 기본 개념

Jenkins를 활용하여 자동으로 배포하는 과정은 CI/CD 파이프라인에 해당되는 단계로, 개발된 소프트웨어를 운영환경에 신속하게 배포하는 핵심적인 작업입니다.


1. 배포 대상 환경 정의

자동 배포를 위해 먼저 배포 대상환경을 정의해야 합니다.

보통 개발, 스테이징, 프로덕션 등 여러 환경으로 구분하며, 각 환경에 맞는 설정과 변수를 Jenkins 파이프라인에 추가하고, 각 환경에 맞는 서버의 연결 정보를 설정합니다.

 

2. 배포 스크립트 작성

배포를 위해 스크립트를 작성이 필요합니다.

빌드된 결과물을 서버에 전송하고, 배포 환경에 맞게 구성하고 실행하는 역할을 합니다.

배포 스크립트는 각 환경마다 다른 설정을 고려하여 유연한 코딩을 필요로 합니다.

 

3. Zero Downtime Deployment 

배포하는 과정에서 중단하지 않고 새로운 버전으로 롤아웃하는 방법이 필요합니다.

로드 밸런싱 등의 설정이 필요합니다.

 

4. 보안

암호화된 비밀 정보를 안전하게 저장하고 관리해야 하며, 권한 설정을 통해 배포 작업에 접근할 수 있는 사용자를 제한해야 합니다.