Jenkins지속적 통합(CI) 도구를 사용하는 이유는 무엇일까요?

Jenkins?

Jenkins 다음으로 작성된 오픈 소스 지속적 통합 서버입니다. Java 자동화된 방식으로 지속적 통합 프로세스를 달성하기 위해 일련의 조치를 조율하는 데 사용됩니다. Jenkins 소프트웨어 개발 수명주기의 전체 단계, 즉 빌드, 테스트, 문서화, 배포 등을 지원합니다.

Jenkins 는 전 세계적으로 널리 사용되는 애플리케이션으로, 약 300만 건의 설치 수를 기록하고 있으며 매일 증가하고 있습니다. 를 사용함으로써 Jenkins소프트웨어 회사는 다음과 같은 방법으로 소프트웨어 개발 프로세스를 가속화할 수 있습니다. Jenkins 빠른 속도로 빌드 및 테스트를 자동화할 수 있습니다.

이 애플리케이션은 서버 기반 애플리케이션이며 Apache Tomcat과 같은 웹 서버가 필요합니다. 그 이유는 다음과 같습니다. Jenkins 이 소프트웨어가 그토록 인기를 얻게 된 이유는 프로젝트 개발 과정에서 발생하는 반복적인 작업을 모니터링할 수 있기 때문입니다. 예를 들어, 팀이 개발 중인 경우...ping 프로젝트, Jenkins 프로젝트 빌드를 지속적으로 테스트하고 개발 초기 단계에서 오류를 보여줍니다.

지속적인 통합이란 무엇입니까?

지속적인 통합 여러 개발자의 코드 변경 사항을 단일 프로젝트에 여러 번 통합하는 프로세스입니다. 소프트웨어는 코드 커밋 후 즉시 테스트됩니다. 각 코드 커밋을 통해 코드가 빌드되고 테스트됩니다. 테스트를 통과하면 배포를 위해 빌드가 테스트됩니다. 배포가 성공하면 코드가 프로덕션으로 푸시됩니다.

이 커밋, 빌드, 테스트 및 배포는 지속적인 프로세스이므로 지속적인 통합/배포라는 이름이 붙습니다.

어떻게 Jenkins 일하세요?

Jenkins 이 애플리케이션은 서버 기반 애플리케이션이며, 다양한 플랫폼에서 실행되려면 Apache Tomcat과 같은 웹 서버가 필요합니다. Windows, 리눅스, macOS유닉스 등에서 사용하려면 Jenkins파이프라인을 생성해야 하는데, 파이프라인은 일련의 단계로 구성됩니다. Jenkins 서버가 처리합니다. Jenkins 지속적 통합 파이프라인은 일련의 도구로 구성된 강력한 도구입니다. 주인, 모니터, 편집하다 test 코드 또는 다음과 같은 코드 변경:

  • 지속적인 통합 서버 (Jenkins, Bamboo, CruiseControl, TeamCity및 기타)
  • 소스 제어 도구 (예: CVS, SVN, GIT, Mercurial, Perforce, ClearCase 등)
  • 빌드 도구 (메이크, ANT, 메이븐, 아이비, Gradle및 기타)
  • 자동화 테스트 프레임워크 (Selenium, Appium, TestComplete, UFT및 기타)

젠킨 역사

  • 카와구치 코스케 Java SUN Microsystems에서 일하는 개발자는 반복적으로 코드를 작성하고 오류를 수정하는 데 지쳤습니다. 2004년에 빌드 및 테스트 작업을 자동화하는 Hudson이라는 자동화 서버를 만들었습니다.
  • 2011년에 Oracle 썬 마이크로시스템즈를 소유했던 회사는 허드슨 오픈 소스 커뮤니티와 분쟁이 있었고, 그래서 허드슨을 포크하여 이름을 바꿨습니다. Jenkins.
  • 허드슨과 Jenkins 독립적으로 운영을 계속했습니다. 하지만 짧은 시간 안에, Jenkins 허드슨이 32개의 프로젝트만 보유한 반면, 다른 회사는 많은 프로젝트와 참여자를 확보했습니다. 시간이 흐르면서 Jenkins 인기가 높아지면서 허드슨은 더 이상 관리되지 않습니다.

지속적 통합을 사용하는 이유는 무엇일까요? Jenkins?

어떤 사람들은 구식 개발 방식이...ping 소프트웨어가 더 나은 방법입니다. CI의 장점을 알아보겠습니다. Jenkins 다음 예시를 통해

약 10명의 개발자가 하나의 프로젝트를 진행하고 있다고 상상해 봅시다. 공유 저장소. 일부 개발자는 25일 만에 작업을 완료하는 반면 다른 개발자는 완료하는 데 30일이 걸립니다.

전 Jenkins 후 Jenkins
모든 개발자는 할당된 코딩 작업을 완료한 후 동시에 코드를 커밋하곤 했습니다. Later, 빌드가 테스트되고 배포되었습니다.

Code 커밋 빌드는 자주 이루어졌지만 테스트 주기는 매우 드물었고, 단 한 번의 빌드도 며칠에 한 번씩만 진행되었습니다.

개발자가 코드를 커밋하는 즉시 코드가 빌드되고 테스트됩니다. Jenkin은 하루 동안 여러 번 코드를 빌드하고 테스트합니다.

빌드가 성공하면, Jenkins 소스 코드를 테스트 서버에 배포하고 배포 팀에 알립니다.

빌드가 실패하면 Jenkins 오류를 개발팀에 알리겠습니다.

코드가 한꺼번에 빌드되었기 때문에 일부 개발자는 다른 개발자가 코딩을 마칠 때까지 기다려야 빌드를 확인할 수 있습니다. 코드는 개발자가 커밋한 직후에 빌드됩니다.
여러 커밋에 대한 오류를 격리, 감지 및 수정하는 것은 쉬운 작업이 아닙니다. 단일 개발자가 커밋할 때마다 코드가 빌드되므로 빌드 실패의 원인이 된 코드가 누구인지 쉽게 감지할 수 있습니다.
Code 빌드하고 테스트 프로세스 전적으로 수동이라 실패할 확률이 많습니다. 자동화된 빌드 및 테스트 프로세스로 타이밍을 절약하고 결함을 줄입니다.
모든 오류가 수정되고 테스트된 후 코드가 배포됩니다. 모든 성공적인 빌드와 테스트가 끝난 후에 코드가 배포됩니다.
개발주기가 느리다 개발주기가 빠릅니다. 사용자는 새로운 기능을 더욱 쉽게 사용할 수 있습니다. 이익이 증가합니다.

지속적인 통합에 대한 실제 사례 연구

나는 여러분 모두가 오래된 Nokia 휴대폰에 대해 알고 있다고 확신합니다. Nokia는 Nightly Build라는 절차를 구현하곤 했습니다. 낮 동안 다양한 개발자가 여러 번 커밋한 후 소프트웨어가 매일 밤 구축되었습니다. 소프트웨어는 하루에 한 번만 빌드되었기 때문에 대규모 코드 기반에서 오류를 격리, 식별 및 수정하는 것은 엄청난 고통입니다.

Later, 그들은 지속적인 통합 접근 방식을 채택했습니다. 개발자가 코드를 커밋하자마자 소프트웨어가 구축되고 테스트되었습니다. 오류가 감지되면 해당 개발자는 신속하게 결함을 수정할 수 있습니다.

지속적인 통합에 대한 실제 사례 연구

Jenkins 플러그인

기본적으로, Jenkins 제한된 기능 세트가 함께 제공됩니다. 통합하려면 Jenkins Git과 같은 버전 관리 도구를 사용하여 설치하려면 Git 관련 플러그인을 설치해야 합니다. 실제로 Maven과 같은 도구와의 통합을 위해서는 Git 관련 플러그인을 설치해야 합니다. Amazon EC2를 사용하려면 해당 플러그인을 설치해야 합니다. Jenkins.

Jenkins 플러그인
플러그인 통합 Jenkins

사용의 장점 Jenkins

  • Jenkins 이곳은 매우 개방적인 커뮤니티에 의해 운영되고 있습니다. 매달 공개 회의를 열어 주민들의 의견을 수렴하여 개발 계획을 수립합니다. Jenkins 프로젝트.
  • 지금까지 약 280개의 티켓이 마감되었으며 프로젝트는 XNUMX개월마다 안정적인 릴리스를 게시합니다.
  • 기술이 발전함에 따라 함께 발전합니다. Jenkins. 지금까지 Jenkins 해당 플러그인 데이터베이스에는 약 320개의 플러그인이 등록되어 있습니다. 플러그인을 사용하면, Jenkins 더욱 강력해지고 기능이 풍부해집니다.
  • Jenkins 이 도구는 클라우드 기반 아키텍처도 지원하므로 배포할 수 있습니다. Jenkins 클라우드 기반 플랫폼에서.
  • 이유는 Jenkins 인기를 얻게 된 이유는 개발자가 개발자를 위해 만들었기 때문입니다.

사용의 단점 Jenkins

그래도 Jenkins 매우 강력한 도구이지만, 단점도 있습니다.

  • 현재 UI 트렌드에 비해 인터페이스가 구식이고 사용자 친화적이지 않습니다.
  • 그래도 Jenkins 많은 개발자들에게 사랑받지만, 유지 관리가 그렇게 쉽지는 않습니다. Jenkins 서버에서 실행되며, 활동을 모니터링하려면 서버 관리자로서의 기술이 필요합니다.
  • 많은 사람들이 실행하지 않는 이유 중 하나는 Jenkins 설치 및 구성이 어렵기 때문입니다. Jenkins.
  • 작은 설정 변경으로 인해 지속적인 통합이 정기적으로 중단됩니다. 지속적인 통합이 일시 중지되므로 개발자의 주의가 필요합니다.

맺음말

  • 지속적인 통합에서는 코드 커밋 후 소프트웨어가 즉시 구축되고 테스트됩니다.
  • Jenkins 소프트웨어 프로젝트에서 지속적 통합을 위한 일련의 작업을 조정하는 데 사용됩니다.
  • 전 Jenkins 모든 개발자들이 할당된 코딩 작업을 완료하면, 동시에 코드를 커밋하곤 했습니다. Later, 빌드가 테스트되고 배포되었습니다.
  • 후 Jenkins 개발자가 코드를 커밋하는 즉시 코드가 빌드되고 테스트됩니다. Jenkins는 하루에도 여러 번 코드를 빌드하고 테스트합니다.
  • 기본적으로, Jenkins 제한된 기능 세트가 함께 제공됩니다. 통합하려면 Jenkins Git과 같은 버전 관리 도구를 사용하여 설치하려면 Git 관련 플러그인을 설치해야 합니다. 또한 다음 사항도 확인하세요. 최고 Jenkins 대체 도구
  • 가장 큰 장점은 Jenkins 그 특징은 지역 사회가 직접 관리하며, 공개 회의를 개최하고 개발을 위해 주민들의 의견을 수렴한다는 점입니다. Jenkins 프로젝트
  • 가장 큰 사기 Jenkins 단점은 인터페이스가 구식이고 최신 UI 트렌드에 비해 사용자 친화적이지 않다는 것입니다. 보다 현대적인 사용자 경험을 제공하는 다른 옵션을 고려하고 있다면 다른 플랫폼들을 살펴보는 것이 좋습니다. 최고의 지속적 통합 도구 사용할 수 있습니다.

이 게시물을 요약하면 다음과 같습니다.