CI&CD

임동현·2022년 5월 7일
0

CI

CI

CI는 Continuous integration 의 약자로 지속적 통합이라는 의미이다.
애플리케이션의 새로운 코드들이 자동으로 빌드 및 테스트 되어 레포지토리에 통합되는 것을 의미한다.

CI의 포인트는

  • 개발자들은 최대한 작은 단위로 만들어서 개발해가며 빈번하게 merge 해야한다.
  • 애플리케이션들의 빌드, 테스트,병합 하는 과정을 주기적으로, 자동화시켜야 한다.

이런 포인트를 따라가려면

  • 병합시 충돌 예방
    *코드의 결함이나 문제점을 빠르게 발견할수 있다!

또 문제점을 빠르게 발견할 뿐 아니라 빠르게 해결할 수 있다.
왜? 작은 단위로 빈번하게 merge 하기에 문제 발생 범위가 작기 때문이다.(빈번하게 merge 해도 빌드, 테스트가 자동이라 간편 결과적으로 코드의 품질이 매우 올라간다.)

CD

CD 는 Continuous Delivery/Deployment 의 약자로 지속적 제공 /배포 라는 의미이다.
CI 를 통해서 빌드 ,테스트가 완료되어 배포될 준비가 끝난 애플리케이션을 개발자가 수동으로 , 혹은 자동으로 배포를 진행하는 것 .

(수동일때를 Continuous Delivery, 자동일때를 Continuous Deployment 라고 한다. 최조 단계의 자동화 여부로 나눈다고 생각하자~)

CI/CD 파이프라인

CI/CD 파이프라인은 새버전의 소프트웨어를 제공 하기 위해 수행해야 할 일련의 단계 입니다. 지속적 통합/ 지속적 배포(CI/CD) 파이프 라인은 DevOps 또는 사이트 신뢰성 엔지니어 방식으 ㄹ통해 더 효과적으로 소프트웨어를 제공하는데 초점을 맞춘 방법입니다.

CI/CD 파이프라인은 특히 통합 및 테스트 단계와 제공 및 배포 단계 에서 모니터링 및 자동화를 도입 하여 애플리케이션 개발 프로세스를 개선합니다. CI/CD 파이프 라인의 각 단계를 수동으로 실행할 수도 있지만 CI/CD 파이프라인의 진가는 자동화 할때 드러납니다.

CI/CD 파이프라인의 요소

CI/CD 파이프라인의 단계는 각기 다른 태스크 하위 집합으로 이루어 져 있으며 이를 파이프라인단계 라고 부릅니다. 일반적인 파이프라인 단계는 다음과 같습니다.

● 빌드(Build) - 애플리케이션을 컴파일 하는 단계
● 테스트(Test) - 코드를 테스트 하는 단계. 이 단계를 자동화 하여 시간과 수고를 줄일 수 있습니다.
● 릴리스(Release) - 애플리케이션을 리포지토리에 제공하는 단계
● 배포(Deploy) - 코드를 프로덕션에 배포하는 단계
● 검증 및 컴플라이언스(Validation & compliance) - 빌드 검증 단계는 해당 조직의 필요에 따라 결정합니다 . Clair 와 같은 이미지 보안 스캔 툴을 사용하여 알려진 취약점(CVE)과 비교하는 방법으로 이미지 품질을 보장할 수 있습니다.

여기에 나오지 않은 파이프라인 단계도 있습니다. 이 목록은 흔히 볼수 있는 단계의 예일 뿐입니다. 조직의 필요에 따라 고유한 파이프 라인을 구성하면 됩니다.

컨테이너와 CI/CD 파이프라인

전통적인 CI/CD 시스템은 가상머신을 사용하는 파이프 라인을 위해 설계되었지만 , 클라우드 네이티브 애플리케이션 개발은 CI/CD 파이프 라인에 유익합니다

profile
프론트엔드 공부중

0개의 댓글