통합 스크립트 콘솔 또는 스크립트와 같은 플러그인을 사용하여 Jenkins를 자동화하십시오. 대규모 프로젝트의 경우 REST API 또는 CLI 도구를 사용하여 작업을 자동으로 생성하십시오.
효율적이고 자동화 된 워크 플로우를 위해 github, gitlab, gerrit, jira 및 redmine과 같은 다른 도구와 Jenkins를 통합하십시오. 또한 관리하기 쉬운 노예를 설정하고 Jenkins 커뮤니티를 활용하여 Jenkins 경험을 향상시킵니다. -
- (이 기사는 Cloudbees가 후원합니다. Sitepoint를 가능하게 한 후원자에 대한 지원에 감사드립니다!)
Jenkins는 지속적인 통합 및 지속적인 전달을위한 강력한 도구입니다. 이전 기사에서는 품질 보증을 위해 Jenkins를 설정하는 방법을 배웠고 프로세스를 향상시키는 데 특히 유용한 플러그인에 대해 배웠습니다. 이 기사에서는 Jenkins의 효율적인 사용을 보장하기 위해 7 가지 방법을 안내합니다. -
(이 기사는 2014 Jenkins 사용자 회의에서 Jenkins 기고자 Andrew Bayer가 제공 한 연설을 기반으로하며 여기에 허가를 받아 적응합니다.)
-
Jenkins가 안정적으로 실행되도록하십시오
Jenkins는 자주 새로운 버전을 출시합니다. 항상 최신 장기 지원 (LTS) 버전을 사용하고 업데이트를 피하는 것이 좋습니다. LTS 버전은 Jenkins 프로젝트에 의해 테스트되었습니다.
동일한 규칙이 플러그인에도 적용됩니다. LTS 버전은 없지만 많은 업데이트가 발생할 수 있습니다. 일반적으로 말하면 다음 규칙을 고수해야합니다. 작동중인 경우 업데이트하지 마십시오. 새로운 업데이트로 기능이 불안정해질 수 있습니다. 또한 주어진 플러그인은 예상과 다르게 작동 할 수 있습니다.
또한 Jenkins 서버의 백업을 생성했는지 확인하십시오. 모든 데이터를 백업 할 수 있지만 많은 시간과 리소스가 필요합니다. 대신, 해당 스크립트로 만 구성 파일을 백업하기로 결정할 수 있습니다.
젠킨스 부종을 피하십시오
부풀어 오른 Jenkins 설치를 피하기 위해 간단한 조치를 취할 수 있습니다.
많은 팀이나 프로젝트가있는 경우 여러 Jenkins 마스터를 만들 수 있습니다. 예를 들어, PHP 프로젝트 용 마스터와 Android 프로젝트를위한 별도의 마스터를 만들 수 있습니다. 이를 수행하면 변경 사항이 모든 프로젝트에 영향을 미치지 않으며 각 프로젝트의 특정 마스터에 필요한 플러그인 만있을 수 있습니다.
과제를 몇 가지 작은 과제로 나눕니다. 결국 건물이 결국 어딘가에 실패하는 것보다 더 성가신 것은 없습니다. 작업을 소규모 작업으로 나누면 실패하면 하나의 작업을 쉽게 다시 시작할 수 있습니다. 워크 플로 플러그인은 이에 유용합니다. 워크 플로 플러그인을 자세히 살펴보고 싶다면 최근 제품 리뷰를 확인하십시오.
자동화 jenkins
Jenkins에는 서버에서 명령을 실행할 수있는 통합 스크립트 콘솔이 제공됩니다. 이것은 Jenkins를 디버깅하거나 필요한 정보를 찾는 편리한 도구입니다.
흥미로운 플러그인은 Scriptler 플러그인입니다. 이 플러그인을 사용하면 나중에 재사용하기 위해 좋아하는 스크립트를 저장할 수 있습니다. 작업 대기열 지우기와 같은 사전 정의 된 스크립트가 포함 된 온라인 스크립트 디렉토리도 찾을 수 있습니다.
각 빌드에 대해 그루비 언어로 자신의 빌드 단계를 작성할 수도 있습니다. 이를 통해 과제에 더 많은 유연성이 제공되지만 더 많은 제어를 제공하므로 더 조심해야합니다. Scriptler 디렉토리에서 빌드 단계로 스크립트를 실행할 수도 있습니다.
많은 프로젝트가있는 경우 자동으로 작업을 생성하는 것을 고려하십시오. Jenkins에는 새로운 작업을 만들기위한 훌륭한 REST API와 CLI 도구가 제공됩니다. 또한 프로세스의 특정 부분을 자동화하거나 Cloudbees Templates 플러그인을 사용하여 사전 정의 된 작업 프레임 워크에서 작업을 쉽게 생성하기 위해 논의한 워크 플로와 같은 플러그인을 파헤칠 수 있습니다.
플러그인에 대해 조심스럽게 생각하십시오
Jenkins에는 다양한 플러그인이 손실되기 쉽습니다. 주어진 플러그인이 실제로 필요한지 확인하는 것이 중요합니다. 플러그인은 예상치 못한 Jenkins의 기능을 깨뜨릴 수 있습니다. 또한 건축 작업 속도를 늦출 수 있습니다. 올바른 작업에 대한 올바른 플러그인을 선택하십시오. 정말로 필요하지 않은 경우 설치하지 마십시오.
플러그인 목록을 추적하고 더 이상 사용되지 않은 플러그인을 제거하십시오. 이것은 Jenkins를 양호하게 유지하고 부종을 피하는 데 도움이됩니다.
또한 일부 플러그인에는 글로벌 구성 설정이 포함되어 있습니다. 플러그인을 설치 한 후 기본 설정이 원하는 것이 아니며 예기치 않은 동작을 유발할 수 있으므로 전역 구성을 확인하는 것을 잊지 마십시오.
-
다른 도구와 통합
Jenkins는 Jenkins를 다른 도구와 통합하는 데 사용할 수있는 REST API를 제공합니다. 최상의 통합 중 하나는 소스 코드 제어와 통합 될 수 있습니다. 예를 들어 Github 또는 Gitlab과 함께 Jenkins를 쉽게 사용할 수 있습니다. 개발자가 소스 코드에 풀 요청을 생성 할 때마다 Jenkins를 트리거하여 풀 요청에 결함이 있는지 확인할 수 있습니다. 이렇게하면 기준을 충족하는 풀 요청 만 허용되도록 할 수 있습니다.
jenkins를 Gerrit와 같은 코드 검토 도구와 통합 할 수도 있습니다. Gerrit에서 코드를 검토 할 때 Jenkins로부터 추가 피드백을 받게됩니다. 원하는 방식으로 모든 것이 수행되는지 확인하고 여러 분기에서 코드를 자동으로 병합 할 수 있습니다.
또 다른 방법은 Jenkins를 Jira 및 Redmine과 같은 버그 추적 시스템과 통합하는 것입니다. 개발자의 수정을 구축 할 때 Jenkins는 이러한 버그 추적 도구의 문제에 대한 업데이트를 게시하여 팀 가시성 수준을 향상시키고 다른 팀 구성원 (예 : 프로젝트 관리자 또는 QA 테스터)에 문제가 해결 될 때 알릴 수 있습니다. 반면에 특정 빌드에보고 된 모든 문제를 기반으로 변경 로그를 자동으로 생성 할 수도 있습니다.
물론 더 많은 통합을 수행 할 수 있습니다. 예를 들어, 모든 빌드에서 응용 프로그램을 쉽게 배포 할 수 있습니다. 당신이 결정하든, 좋은 자동화 통합을 통해 단조로운 작업을 수동으로 수행하는 대신 다른 것들을 처리 할 수 있습니다.
올바른 슬레이브를 설정하십시오
-
관리하기 쉬운 노예가 있는지 확인하십시오. 새로운 노예를 쉽게 교체하거나 추가 할 수 있는지 확인하면 인생이 훨씬 쉬워집니다. 슬레이브가 충돌하는 경우 몇 번의 클릭만으로 새 슬레이브를 올리십시오.
설치에 사용할 수있는 가상 이미지를 준비하거나 꼭두각시 (모듈) 또는 요리사 (레시피)를 통해 전체 구성을 관리 할 수 있습니다.
당신은 또한 노예를보다 다재다능하게 만들도록 선택할 수도 있습니다. 이것은 단일 노예에서 여러 다른 작업을 수행 할 수있어 노예를 더 보편적으로 만들 수 있음을 의미합니다. 그러나 위에서 언급했듯이 노예를 너무 복잡하게 만들어서는 안됩니다.
노예를 클라우드에 넣으면 Docker와 같은 컨테이너를 사용하여 자동으로 활성화하기로 결정할 수 있습니다. 이렇게하면 자원을 낭비하지 않으며 더 많은 노예가 필요할 때 자동으로 확장 할 수 있습니다.
Jenkins 커뮤니티
Jenkins를 효율적으로 사용하는 마지막 속임수는 Jenkins 커뮤니티를 활용하는 것입니다. 커뮤니티에 참여해야합니다. 플러그인을 작성하고 기여하거나보고/해결/해결 문제를 통해 참여하면 Jenkins를 개선하고 Jenkins 경험을 향상시킵니다. 또한 Jenkins Subreddit을 확인하거나 메일 링리스트에 가입하거나 IRC에 로그인하여 2 주간 Jenkins 프로젝트 회의에 참석하거나 프로젝트 회의간에 대화를 나누거나 뉴스 레터에 가입하십시오.
결론
모든 좋은 도구는 유지 보수 및 약간의 개선으로 더 나을 수 있습니다. Jenkins도 예외는 아닙니다. Jenkins는 지속적인 통합 및 지속적인 전달 프로세스를 제공하는 강력한 도구입니다. 그러나보다 안정적인 LT 버전의 LT를 선택하고 팽만감을 피하고, 자동화하는 시간을 보내고, 올바른 플러그인과 올바른 통합을 선택하고, 커뮤니티에 참여하면 Jenkins 프로세스가 실제로 빛나기 시작합니다. 지속적인 통합 및 전달 도구가 열심히 작동하는 경우 소프트웨어 개발이 크게 향상됩니다.
이 기사를 읽은 후 어떻게 접근 방식을 바꾸겠습니까? Jenkins가 순조롭게 실행되도록하는 팁이 있습니까?
Jenkins Performance (FAQ) 에 대한 질문이 자주 묻습니다
Jenkins의 느린 성능에 대한 몇 가지 일반적인 이유는 무엇입니까?
Jenkins의 성과는 여러 가지 요인에 영향을받을 수 있습니다. 이러한 요소에는 많은 작업 또는 빌드, 잘못된 구성 설정, 하드웨어 리소스 부족 및 구식 플러그인이 포함됩니다. 또한 복잡한 파이프 라인을 사용하고 오래된 데이터를 정리하지 않으면 Jenkins가 느려질 수 있습니다. Jenkins가 효율적으로 실행되도록 이러한 측면을 정기적으로 모니터링하고 최적화하는 것이 중요합니다.
Jenkins 마스터를 최적화하는 방법은 무엇입니까?
Jenkins 마스터 최적화에는 여러 단계가 포함됩니다. 먼저 Jenkins 마스터에 충분한 하드웨어 리소스가 있는지 확인하십시오. 둘째, 마스터에서 실행되는 작업 수를 동시에 제한하십시오. Jenkins 에이전트를 설정하여 하중을 할당 할 수도 있습니다. 마지막으로, 플러그인을 정기적으로 업데이트하고 이전 데이터를 정리하여 Jenkins 마스터를 원활하게 실행할 수 있도록하십시오.
Jenkins 파이프 라인의 성능을 향상시키는 방법은 무엇입니까?
Jenkins 파이프 라인 성능 향상에는 파이프 라인 스크립트 최적화가 포함됩니다. 복잡한 스크립트를 피하고 대신 더 간단한 스크립트를 사용하십시오. 또한 파이프 라인의 단계 수를 제한하고 불필요한 단계를 피하십시오. 또한 "병렬"단계를 사용하여 작업을 동시에 실행하고 시간을 절약하십시오.
Jenkins 리소스를 효과적으로 관리하는 방법은 무엇입니까?
Jenkins의 효율적인 리소스 관리에는 CPU, 메모리 및 디스크 공간과 같은 하드웨어 리소스 모니터링 및 최적화가 포함됩니다. 시스템로드를 정기적으로 확인하고 그에 따라 리소스를 조정하십시오. 또한 동시 작업 수를 제한하고 Jenkins 에이전트를 사용하여 부하를 할당하십시오.
Jenkins 플러그인을 최적화하는 방법은 무엇입니까?
Jenkins 플러그인의 최적화에는 최신 버전에 대한 정기적 인 업데이트가 포함됩니다. 또한 사용하지 않거나 불필요한 플러그인을 제거하십시오. 새 플러그인을 설치할 때는주의를 기울이고 필요하고 잘 관리 된 플러그인 만 설치하십시오.
대규모 프로젝트를 위해 Jenkins를 최적화하는 방법은 무엇입니까?
대규모 프로젝트의 경우 부하를 할당하기 위해 Jenkins 에이전트를 설정하는 것을 고려하십시오. 또한 동시 작업 수를 제한하고 파이프 라인 스크립트를 사용하여 작업을 자동화하십시오. 오래된 데이터를 정기적으로 청소하고 하드웨어 리소스를 최적화하십시오.
Jenkins 빌드 시간 속도를 높이는 방법은 무엇입니까?
쉬운 Jenkins 빌드 시간에는 "병렬"단계를 사용하여 빌드 스크립트 최적화 및 동시에 작업 실행 작업이 포함됩니다. 또한 동시 작업 수를 제한하고 Jenkins 에이전트를 사용하여 부하를 할당하십시오. 오래된 데이터를 정기적으로 청소하고 하드웨어 리소스를 최적화하십시오.
Jenkins 성능을 모니터링하는 방법은 무엇입니까?
Jenkins 성능 모니터링에는 시스템 부하, 메모리 사용 및 디스크 공간에 대한 주기적 검사가 포함됩니다. Jenkins 모니터링 플러그인 또는 Prometheus 및 Grafana와 같은 외부 도구와 같은 모니터링 도구를 사용하십시오. 성능 데이터를 정기적으로 검토하고 설정을 조정하십시오.
Jenkins 성능 문제를 해결하는 방법은 무엇입니까?
문제 해결 Jenkins 성능 문제에는 근본 원인을 식별하는 것이 포함됩니다. 시스템 부하, 메모리 사용 및 디스크 공간을 점검하십시오. 파이프 라인 스크립트 및 구성 설정을 확인하십시오. 또한 플러그인 및 하드웨어 리소스를 확인하십시오. 모니터링 도구를 사용하여 성능 데이터를 수집하고 병목 현상을 식별하십시오. Jenkins가 효율적으로 실행되도록하는 방법은 무엇입니까?
Jenkins가 정기적 인 모니터링 및 최적화를 포함하여 효율적으로 작동하도록하십시오. 시스템 부하, 메모리 사용 및 디스크 공간을 모니터링합니다. 파이프 라인 스크립트, 구성 설정 및 하드웨어 리소스를 최적화하십시오. 플러그인을 정기적으로 업데이트하고 오래된 데이터를 정리하십시오. 또한 부하를 할당하기 위해 Jenkins 에이전트를 설정하는 것이 좋습니다.