Jenkins 지속적 배포 [실제 예제 포함]
게시 됨: 2020-12-28Jenkins 배포 는 복잡한 자동화 소프트웨어 개발의 가속화된 프로세스입니다. 이 문서에서는 Jenkins가 여러 조직에서 실행되는 빌드, 문서화, 테스트, 패키징, 스테이징, 배포, 정적 분석 등과 같은 모든 개발 수명 주기 프로세스 또는 DevOps 단계를 통합하는 방법을 조명합니다.
오늘날 많은 조직에서 제품에 DevOps를 채택하고 있습니다. 소프트웨어 개발 수명 주기에서 프로젝트의 일부로 소프트웨어를 지속적으로 릴리스해야 합니다.
Jenkins와 같은 도구는 플랫폼에 관계없이 애플리케이션의 지속적인 통합 및 제공을 가능하게 하는 잠재력으로 인해 널리 사용됩니다. Jenkins는 Jenkins 배포 에서 모든 종류의 빌드를 처리할 수 있는 무료 단일 소스 도구입니다 . 이에 대해서는 기사에서 설명합니다.
Jenkins는 많은 테스트 및 배포 기술과 통합될 수 있습니다. 이 문서에서는 Jenkins를 사용하여 소프트웨어 프로젝트를 지속적으로 빌드하고 테스트하는 방법을 설명합니다.
세계 최고의 대학에서 소프트웨어 엔지니어링 온라인 과정 을 배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.
따라서 Jenkins의 작동 방식에 대해 알아보기 전에 Jenkins 학습의 기초가 되는 다음 주제를 이해해야 합니다.

- 지속적인 배포
- 지속적 배포와 지속적 배포
- Jenkins 배포 의 실제 예
- Jenkins 배포 의 이점
하나하나 살펴보도록 하겠습니다!
목차
지속적인 배포
지속적 배포에서 소프트웨어는 자동화를 통해 지속적으로 프로덕션 서버에 릴리스됩니다. 코드는 소스 코드 컴파일, 유효성 검사, 검토, 애플리케이션 패키징, 단위 테스트 및 통합 테스트 수행과 같은 단계를 통과합니다.
그런 다음 사용자 승인 테스트가 수행될 때 코드가 테스트 서버에 배포됩니다. 소프트웨어는 소프트웨어 릴리스를 위해 프로덕션 서버에 배포됩니다. Jenkins와의 지속적인 통합에 대해 읽어보세요.
지속적 배포와 지속적 배포
지속적 배포 및 지속적 배포는 지속적인 배포가 변경 사항에 대해 프로덕션에 배포되지 않는 SDLC의 두 가지 중요한 단계입니다. 개발자는 코드가 항상 배포 가능한지 확인하고 필요할 때마다 배포해야 합니다.

이미지 크레딧
지속적인 배포에는 사람의 중재 없이 모든 변경 사항이 자동으로 배포되어야 합니다.
위의 다이어그램에서 지속적 통합 단계가 완료된 후 구축된 애플리케이션은 프로덕션 서버에 자동으로 배포되며 이는 지속적인 배포일 뿐입니다.
또는 모든 것을 자동화하기 위해 최신 버전을 배포하기 위해 사람의 승인이 필요한 경우 지속적 배포를 실행하고 있습니다.
이러한 핵심적인 차이로 인해 각 프로세스를 다양한 상황에 적합하게 만드는 몇 가지 의미가 있습니다.
젠킨스
Jenkins는 소프트웨어 프로젝트를 지속적으로 빌드 및 테스트하는 데 사용되는 자동화 서버를 통해 소프트웨어 프로세스를 가속화하는 오픈 소스 도구로, 개발자를 위한 CI/CD 환경을 지원합니다. Java로 작성되었으므로 이식성이 매우 높습니다.
Jenkins에는 수천 개의 플러그인과 통합이 있습니다. 따라서 많은 사용자 정의가 필요한 대규모 프로젝트에 적합합니다. Git, Maven, Mercurial 및 Subversion과 같은 버전 제어 도구를 지원합니다.
Jenkins 배포의 실제 예
Jenkins가 어떤 도구이고 지속적인 배포를 위한 소프트웨어 개발 프로세스에 적용할 수 있는지 배웠으니 이제 프로덕션 환경에서 어떻게 작동하는지 살펴보겠습니다.
먼저 Jenkins가 서버에 설정되고 빌드 및 테스트를 위해 클라이언트의 프로젝트가 추가됩니다. 그러면 클라이언트는 테스트를 거친 애플리케이션을 다운로드할 수 있습니다. 프로젝트 자산을 서버의 새 위치에 배포하는 것은 까다로울 수 있습니다.
이를 위해 미리 버전 제어 시스템에 연결된 Jenkins에 클라이언트 프로젝트가 설정되어 있다고 가정해 보겠습니다.
1단계: Jenkins 항목 생성
주 메뉴에서 '새 항목'을 선택하고 이름을 지정합니다. 클라이언트 프로젝트에서 서버 폴더로 파일을 내보냅니다.

2단계: 빌드 후 작업 만들기
클라이언트 프로젝트로 이동하여 구성을 선택합니다. 이제 빌드 후 작업을 시작하고 드롭다운 메뉴에서 '아티팩트 보관'을 선택합니다. 보관 및 내보낼 파일 형식을 추가합니다.
그런 다음 다른 빌드 후 작업인 '다른 프로젝트 빌드'를 추가하고 이전에 생성한 빌드 항목을 입력합니다.

보관소
3단계: '아티팩트 복사' 플러그인 설치
세 번째 단계에서는 Jenkins의 'Copy Artifact 플러그인'을 설치합니다.
빌드 단계를 구성하고 추가하려면 '프로젝트 이름'으로 이동하세요. Copy Artifact 플러그인이 설치되면 '다른 프로젝트에서 아티팩트 복사' 옵션이 표시됩니다. 아티팩트를 복사할 폴더를 지정하고 위치 경로를 설정합니다.
위치를 "var/www/clients/.."로 설정합니다. 그러면 서버에 새 폴더가 생성됩니다. HTTP 주소(!)로 경로를 지정하십시오.

프로젝트 저장
4단계: 테스트 수행
기본 단계가 끝나면 이제 애플리케이션을 테스트할 시간입니다.
이를 위해 클라이언트 프로젝트에서 빌드를 시작합니다. 그러면 새 빌드가 프롬프트됩니다. 서버의 배포 폴더를 확인하십시오. 여기에서 배포된 파일을 볼 수 있습니다.
그러나 모든 작업을 수행한 후에도 빌드가 실패하고 'FileException' 오류가 발생했습니다.
왜요?
가능한 이유는 다음과 같습니다.
- Jenkins는 폴더에 대한 쓰기 권한이 없었고 파일을 배포할 수 없습니다.
- SSH를 서버에 연결합니다.
- 출력 폴더 권한을 확인하십시오.
- 우리는 문제에 직면했습니다.
이 문제를 해결하려면 다음 단계를 수행하십시오.
- Jenkins를 그룹(여기서는 'www-data' 그룹)에 추가합니다.
- sudo chown 명령 을 사용하여 출력 폴더의 소유권을 'www-data' 그룹으로 변경 – R : 'www – data' 클라이언트.
- sudo chmod 명령 을 사용하여 폴더에 대한 쓰기 액세스를 허용합니다 .
- 서버를 다시 시작하고 배포된 애플리케이션 확인
Jenkins는 어떤 이점을 제공합니까?
- Jenkins는 오픈 소스 도구이며 우수한 커뮤니티 지원을 제공합니다.
- Jenkins는 비교적 설치가 쉽습니다.
- Jenkins에는 1000개 이상의 플러그인이 있습니다. 플러그인을 사용할 수 없는 경우 쉽게 코딩할 수 있습니다.
- Jenkins는 무료입니다.
- Jenkins는 Java로 구축되었습니다. 따라서 모든 주요 플랫폼에 이식 가능합니다.
또한 읽기: Jenkins 프로젝트 아이디어 및 주제

마지막 말
Jenkins는 지속적 통합에 널리 사용되는 강력한 Java 작성 자동화 도구입니다. Jenkins를 사용하면 작성된 내용으로 소프트웨어 프로젝트를 지속적으로 빌드하고 테스트하는 것이 더 쉽습니다. 수많은 테스트 및 배포 기술과 통합하여 항상 소프트웨어를 제공하는 최고의 도구입니다.
소프트웨어 개발 학습 – upGrad를 사용한 DevOps
upGrad는 조직에서 매우 빠른 속도로 애플리케이션과 서비스를 제공하는 방법을 배우게 될 소프트웨어 개발 – DevOps 전문화 분야의 Executive PG 프로그램을 제공합니다. upGrad의 교수진은 DevOps의 모든 기능과 DevOps를 배우는 것이 수익성 있는 경력을 만드는 이유를 가르쳐 줄 것입니다.
DevOps 프로그램 하이라이트의 소프트웨어 개발 전문 분야에서 upGrad의 PG 디플로마:
이 연장된 12개월 온라인 과정은 다음과 같은 기능을 제공합니다.
- 라이브 강의와 함께 지식이 풍부한 온라인 세션
- 데이터 과학 및 기계 학습의 귀중한 콘텐츠에 무료로 액세스
- 7개 이상의 라이브 프로젝트 및 과제 작업
- 10가지 프로그래밍 언어 및 도구 배우기
- 보장된 배치 보장
- 취업 지원을 통한 360° 취업 지원
