CI&CD
지속적 통합 (Continuous Integration, CI)
CI는 코드 변경 사항이 버전 관리 시스템에 통합되고, 통합된 코드가 자동으로 빌드 및 테스트되는 프로세스입니다. Jenkins는 코드 변경을 감지하고 자동으로 CI 파이프라인을 실행하여 코드 품질을 유지하고 버그를 조기에 발견합니다.
지속적 배포 (Continuous Deployment, CD)
CD는 통합된 코드가 자동으로 운영 환경으로 배포되는 프로세스입니다. Jenkins를 사용하면 애플리케이션 배포를 자동화하고, 롤백 옵션을 제공하여 안정적인 배포를 보장할 수 있습니다.
젠킨스(Jenkins) VS 깃허브 액션즈(Github Actions)
구분 | Jenkins | Actions |
설치 유무 | 서버 설치 필요 | 별도 설치 X |
동기화 | 작업이 동기화 | 비동기화 |
호환성 | 환경의 호환성을 위해 도커 이미지에서 실행 | 모든 환경과 호환 |
자료 | 전세계 많은 사람들이 이미 사용중 자료가 많은편 | 최근 많이 사용하는 추세 자료또한 점점 늘어나는중 |
플러그인 | 여러가지 플러그인을 많이 사용가능 | 플러그인이 없음 직접 작성하는 메커니즘 |
깃허브 액션즈를 선택한 이유
1.
젠킨스를 사용시 설정하는데 많은 리소스가 발생(무수히 많은 플러그인 관리)
2.
동시 빌드 환경에서 일관성을 제공하지 않음(프로젝트 팀원들의 환경이 다다름)
3.
플러그인을 제때 업데이트 해주지 않으면 빌드가 안되는 이슈가 많이 발생
4.
무엇보다 가장 중요한 Github Actions의 설정이 매우 쉽다는점(한정된 프로젝트 기간내에 가장 중요한 점)