Backend/DevOps

[DevOps] CI / CD 파이프라인 (CI/CD 입문 / CI/CD툴 비교분석)

비전공자 기록광 2022. 5. 27. 19:35
반응형

 

CI Continous Integration

: 지속적 통합 > 빌드, 테스트 자동화 > 개발에서 발생하는 불일치 최소화 > 품질 관리

 

CD Continuous Deployment

: 지속적 배포 > 배포 자동화

 

 

CI / CD 사용 목적

: 개발하며 git에 계속해서 commit을 날리게 된다. 이렇게 commit이 쌓이고 쌓이다보면 빌드나 테스트에서 작업의 충돌이 생길 수 있다. CI를 도입한다면 미리 commit을 날림과 함께 빌드, 테스트가 되어 나중에 빌드, 테스트하며 생길 충돌을 방지할 수 있다. 

 

 

CI / CD 툴 비교 분석

1. Jenkins

Jenkins User Documentation

 

Jenkins User Documentation

Jenkins is a self-contained, open source automation server which can be used to automate all sorts of tasks related to building, testing, and delivering or deploying software. Jenkins can be installed through native system packages, Docker, or even run sta

www.jenkins.io

- 사용방법

  • Jenkins 설치
  • Github Webhook  생성
  • SSH 설정
  • Build Script 작성
  • Deploy Script 작성

 

- 장단점

    • 장점
      • 사용자가 많음
      • 다양한 플러그인 제공
    • 단점
      • 설치형으로 AWS EC2을 사용한다면 젠킨스만을 위한 인스턴스 필요
      • 플러그인이 다양한만큼 세팅이 복잡
      • 젠킨스 자체 관리도 필요

 

2. Travis CI + AWS CodeDeploy

Travis CI User Documentation (travis-ci.com)

 

Travis CI Documentation

Travis CI User Documentation

docs.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 CodePipeline은 특정한 요구에 맞게 손쉽게 확장할 수 있습니다. 사전 구축된 플러그인 또는 자체 사용자 지정 플러그인을 릴리스 프로세스 중 원하는 단계에 사용할 수 있습니다. 예를 들면 GitHu

aws.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)

 

CI/CD란 무엇인가 (Feat. DevOps 엔지니어)

안녕하세요. 개발자의 용어를 쉽고 명확하게 설명해드리는 개발자 김모씨입니다. CI/CD ?! 개발자로 밥먹고 사시는 분들이시라면, 혹은 IT서비스 업계에 종사하시는 분들이라면, 한 번 쯤은 들어

artist-developer.tistory.com

 

반응형