반응형
CI Continous Integration
: 지속적 통합 > 빌드, 테스트 자동화 > 개발에서 발생하는 불일치 최소화 > 품질 관리
CD Continuous Deployment
: 지속적 배포 > 배포 자동화
CI / CD 사용 목적
: 개발하며 git에 계속해서 commit을 날리게 된다. 이렇게 commit이 쌓이고 쌓이다보면 빌드나 테스트에서 작업의 충돌이 생길 수 있다. CI를 도입한다면 미리 commit을 날림과 함께 빌드, 테스트가 되어 나중에 빌드, 테스트하며 생길 충돌을 방지할 수 있다.
CI / CD 툴 비교 분석
1. Jenkins
- 사용방법
- Jenkins 설치
- Github Webhook 생성
- SSH 설정
- Build Script 작성
- Deploy Script 작성
- 장단점
- 장점
- 사용자가 많음
- 다양한 플러그인 제공
- 단점
- 설치형으로 AWS EC2을 사용한다면 젠킨스만을 위한 인스턴스 필요
- 플러그인이 다양한만큼 세팅이 복잡
- 젠킨스 자체 관리도 필요
2. Travis CI + AWS CodeDeploy
Travis CI User Documentation (travis-ci.com)
- 사용방법
- Github Id로 Travis CI 로그인
- Repository 상태 활성화
- 프로젝트에 .travis.yml 생성
- AWS S3에 jar파일 전달, 빌드
- 배포 위해 AWS S3에서 AWS CodeDeploy로 jar 파일 전달
- CodeDeploy 통해 EC2에 배포
- 장단점
- 장점
- Github와의 연동성, 설치 필요 없는 오픈소스 웹 서비스
- YML 통한 쉬운 설정
- 단점
- Private Repository일 경우 유료 (1달 69$)
3. AWS CodePipeline
AWS CodePipeline | 지속적 통합 및 지속적 전달 (amazon.com)
- 사용방법
- AWS CodePipeline에서 새로운 파이프라인을 생성
- 소스 코드를 가져올 소스 스테이지 추가
- 소스코드 AWS S3에 전달
- 빌드할 프로젝트를 생성 (빌드 스테이지)
- 빌드한 jar파일 S3에 저장
- 배포 어플리케이션을 생성 (배포 스테이지)
- CodeDeploy 통해 EC2에 배포
- 장단점
- 장점
- AWS 하나로 관리 가능
- 단점
- 요금 발생 (파이프라인 당 1$ + 추가 요금)
Amazon S3에 파이프라인 아티팩트를 저장하고 액세스하는 경우와 파이프라인에 연결한 기타 AWS 및 타사 서비스에서 작업을 트리거하는 경우 추가 요금이 발생할 수 있습니다.
4. Github Action
GitHub Actions Documentation - GitHub Docs
- 사용방법
- Repository의 Action에서 workflow 생성
- yml 파일에 설정
- 장단점
- 장점
- 툴 설치 없이 바로 Repository에서 관리
- 설정 쉬움
- 단점
- private repo는 요금발생
참고
CI/CD란 무엇인가 (Feat. DevOps 엔지니어) (tistory.com)
반응형
'Backend > DevOps' 카테고리의 다른 글
[Jenkins]젠킨스 + AWS ECR 파이프라인 구축(젠킨스 입문 / 설치 / 사용법) (0) | 2022.06.21 |
---|---|
[AWS]AWS 서비스 및 기본 개념 정리 (2) | 2022.06.09 |
[Error] Node.js와 Node-Sass 버전 호환 불가 에러 (npm ERR! Code 1) (0) | 2022.06.03 |
[AWS]AWS EC2 접속을 위한 pem 파일 ppk 파일로 변환 방법 (puTTygen) (0) | 2022.01.16 |
클라우드 (클라우드 기초 / 클라우드 개념 / AWS / IaaS, PaaS, SaaS) (0) | 2021.10.10 |
댓글