카테고리 없음

CI/CD (젠킨스)

꽃달린감나무 2023. 11. 13. 09:41
728x90

이번 인턴으로 맡게 된 프로젝트의 CI/CD 서버를 구축하고, 팀원들에게 구축에 대한 환경을 공유하기로 하여, 그 전에 블로그를 통해 개념을 정리하고자 합니다.🥹

 

CI/CD

  • 애플리케이션 개발 단계를 자동화하여 애플리케이션을 더욱 짧은 주기로 고객에게 제공하는 방법
  • 기본 개념은 지속적인 통합, 지속적인 서비스 제공, 지속적인 배포
  • 애플리케이션의 통합 및 테스트 단계에서부터 제공 및 배포에 이르는 애플리케이션의 라이프 사이클 전체에 걸쳐 지속적인 자동화와 모니터링을 제공

CI(Continuous Integration)

  • 개발자를 위한 자동화 프로세스인 지속적인 통합을 의미
  • 애플리케이션 코드의 새로운 변경 사항이 정기적으로 빌드 및 테스트를 거쳐 '공유'(develop branch) 레포지토리에 병합
  • 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌하는 문제를 해결할 수 있음

 

CD(Continouous Delivery)

  • 지속적인 제공을 의미
  • 개발자들이 애플리케이션에 적용한 변경 사항이 테스트를 거쳐 '공유' 레포지토리에 자동으로 업로드 됨
  • 운영팀은 '공유' 레포지토리에서 애플리케이션을 실시간 프로덕션 환경으로 배포 가능
  • 개발팀과 운영팀 간의 의사소통에 대한 문제를 해결해줌
  • 최소한의 노력으로 새로운 코드를 배포하는 것을 목표로 함

 

CD(Continouous Deployment)

  • 지속적인 배포를 의미
  • 개발자의 변경 사항을 레포지토리에서 고객이 사용 가능한 프로덕션 환경까지 자동으로 릴리스하는 것을 의미
  • 기존의 수동 프로세스로 배포했던 방식에대한 애플리케이션의 제공 속도를 높여줄 수 있음

 

Jenkins - (CI / CD Tool)

  • 모든 언어에 대해 지원
  • Java Run time을 기반으로 동작
  • 빌드, 테스트, 배포 프로세스를 자동화 시켜주는 도구

이점

  • 편리한 설정 : 웹 기반의 콘솔로 사용자가 다루기 편하며, 수많은 플러그인을 사용하여 자동화 할 수 있어 반복되는 작업을 줄 일수 있다.
  • 안정적인 빌드/ 배포환경 : 소스 버전 관리 툴과 연동하여 코드 변경을 감지 이를 자동화 테스트를 포함한 빌드를 수행, 자동화 테스트에는 코드 표준 준수 여부 체크, 유닛 테스트, 통합 테스트 등을 설정할 수 있고, 테스트 결과에 대한 피드백을 받아 잠재적인 오류를 사전에 예방 가능
  • 러닝커브 난이도 : 많이 사용 되고 있는 오픈소스 소프트웨어로 문서화가 잘 되어 있으며, 이에 관한 개발 글들이 많아 참고할 수 있는 문서가 많음

 

참조한 글 

1. https://www.redhat.com/ko/topics/devops/what-is-ci-c

 

CI/CD(CI CD, 지속적 통합/지속적 배포): 개념, 툴, 구축, 차이

CI/CD는 애플리케이션의 통합 및 테스트 단계부터 제공 및 배포까지 애플리케이션 라이프사이클 전체에서 지속적인 자동화와 지속적인 모니터링을 제공하는 것을 뜻합니다.

www.redhat.com

2. https://narup.tistory.com/179

 

[Jenkins] 젠킨스란?

1. 젠킨스(Jenkins)란? 모든 언어의 조합과 소스 코드 레포지토리에 대한 지속적인 통합(Continuous integration, CI)과 지속적 배포(continuous delivery, CD) 환경을 구축하기 위한 도구다. 빌드, 테스트, 배포 프

narup.tistory.com

 

728x90