99클럽 코테 스터디 33일차 Version Control Jenkins
728x90
  • 배포

    • CI

      • GitHub Actions
      • Jenkins
    • CD

      • Argo CD
        • Container
        • Docker
        • k8s
      • 쿠버네티스

란?

  • 소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 툴
    • CI 툴이라고 표현함.

CI(지속적 통합)

개발자가 코드 변경사항을 공유 리포지토리에 정기적으로 병합(merge) 하는 것을 의미함. 이 과정에서 Jenkins 는 코드 변경사항을 감지하고 자동으로 빌드 및 테스트를 실행하여, 새로운 코드가 기존 코드베이스와 잘 통합되는지 확인함. 다음과 같은 이점이 있음.

  • 오류감소
    • 자동 빌드 및 테스트로 인해 코드 통합 과정에서 발생할 수 있는 오류를 초기에 발견하고 수정할 수 있음.
  • 개발 속도 향상
    • 자동화된 테스트와 빌드 프로세스는 개발자가 더 빠르게 피드백을 받고 문제를 수정할 수 있게 해줌.

CD(지속적 배포)

개발된 소프트웨어를 자동으로 테스트하고 운영 환경에 배포하는 과정을 의미함. Jenkins 를 사용하면 이 과정이 자동화되어, 소프트웨어의 새로운 버전을 빠르고 자주 배포할 수 있음. 다음과 같은 이점이 있음.

  • 배포 자동화
    • 수동 배포 과정에서 발생할 수 있는 인간의 오류를 줄이고, 배포 과정을 빠르고 일관되게 만듬.
  • 피드백 루프 강화
    • 사용자와의 빠른 피드백 루프를 통해 제품을 더 빠르게 개선하고 사용자 요구에 적응할 수 있음.

Jenkins Plugins

Jenkins 의 가장 큰 강점 중 하나는 확장성에 있음. Jenkins 는 수천 가지의 플러그인을 지원하여, 거의 모든 종류의 개발, 테스트, 배포 도구와 통합할 수 있음. 이러한 플러그인은 Jenkins 를 매우 유연하게 만들어, 거의 모든 개발 환경에 맞게 조정할 수 있음.

Credentials Plugin

  • Jenkins 는 서버이기 때문에 ssh 와 같은 key 가 필요함.
  • AWS Token, Git Access Token, Secret Key, ssh 등을 저장해주는 플러그인임.

Git Plugin

  • Jenkins 에서 git 에 대한 소스코드를 가져와서 빌드할 수 있게 도와주는 플러그인

PipeLine

  • 연속적인 작업들을 젠킨스에서 하나의 파이프라인(작업) 으로 묶어서 관리할수 있게 만드는 플러그인임.

Docker Plugin and Docker PipeLine

  • Docker Agent를 사용하고 Jenkins 에서 Docker 를 사용하기 위한 플러그인
728x90