지속적 통합

cch_chan·2022년 3월 24일
0

DevOps

목록 보기
3/19

CI/CD란?

  • 애플리케이션 개발 단계를 자동화하여 애플리케이션을 보다 짧은 주기로 고객에게 제공하는 방법
  • 코드통합, 테스트, 릴리즈, 배포(Deployment)의 애플리케이션 라이프사이클 전체 과정을 자동화하고 모니터링 가능하도록 하는 것, 이러한 연속된 과정을 "CI/CD 파이프라인"이라고 부른다.

지속적 통합의 장점

  • 버그를 일찍 발견할 수 있다.
  • 빌드 및 테스트와 같이 사람이 해야 할 일들을 자동화할 수 있다.
  • 테스트가 완료된 코드에 대해 빠른 전달이 가능하다.
  • 지속적인 배포가 가능해진다.
  • 개발자의 생산성을 향상시킬 수 있다.

빌드/테스트의 개념
빌드란 프로그램의 소스 코드를 독립적인 아티팩트(artifact)로 변환하는 과정.
소스 코드에서 실행 가능한 프로그램 또는 라이브러리

테스트는 소프트웨어의 동작을 확인하고 검증하는 활동을 말합니다. 테스트의 목적은 소프트웨어가 사용자의 요구 사항을 충족시키며 예상대로 동작하는지 확인하는 것

CI/CD 지속적통합을 위한 대표적인 툴

Jenkins
Jenkins는 오픈소스 자동화 서버입니다. 빌드, 테스트, 배포와 같은 소프트웨어 개발의 일부분을 자동화하는 데 도움을 주며, 지속적 통합과 지속적 배포를 돕습니다.

특징
설치형 별도의 서버가 필요
다양한 플러그인을 활용 가능
쿠버네티스, Docker 등과 호환가능
다양한 운영체제에서 사용이 가능

Travis CI
Travis CI는 호스트형(hosted) 배포 자동화 서비스로, GitHub 및 Bitbucket 등에서 호스팅되는 소프트웨어 프로젝트를 빌드하고 테스트하는 데 사용됩니다.

특징
클라우드 서비스(SasS) 형태로 사용가능
Travis 자체에서 호스팅을 해주기 때문에 관리적인 측면에서 편리함
Clojure, Erlang, Groovy Haskell, Java, JavaScirpt, Node.js, Ruby 등의 다양한 언어를 지원 함

Github Action
Github Action는 GitHub 저장소를 기반으로 소프트웨어 개발 Workflow를 자동화 할 수 있는 툴

특징
GitHub 마켓 플레이스를 통해 다른사람이 공유한 workflow를 찾거나 직접 만든것을 공유 가능
공개 저장소를 무료로 사용할 수 있으며, 비공개 저장소 같은 경우 무료 사용량 이후에 요금이 부과

profile
꾸준히 새로운 기술을 배워나가는중입니다.

0개의 댓글