일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- HTTP
- HTTP메시지구조
- UX
- 혼공네트워크
- 피터모빌의벌집모형
- 네트워크
- UI
- https
- 혼공얄코
- 혼자공부하는
- 제이콥닐슨 사용성평가기준
- 혼공학습단11기
- 사이드이펙
- HTTP와HTTPS차이점
- 프로그래머스문자열출력하기
- 혼자공부하는얄팍한코딩지식
- 2024년회고
- 혼공학습단
- 혼자서공부하는얄팍한코딩지식
- column grid system
- 혼자서공부하는
- 혼자서공부하는네트워크
- user flow
- 혼공네트
- 자바스크립트문자열출력하기
- 혼자공부하는네트워크
- 혼공시리즈
- 이더넷허브
- GUI
- 한빛미디어
- Today
- Total
호기심으로 시작한 Frontend 꾸준함으로 채워나가는 Developer
[section4] CI/CD 본문
CI / CD 란?
-> 자동화를 통해서 더 효율적이고 빠르게 사용자에게 빈번이 배포할 수 있는 것
CI (Continuous Integration 지속적인 통합)
- 코드 변경사항을 주기적으로 빈번하게 머지해야 한다. -> 개발 생산성 향상
- 통합을 위한 단계 (빌드, 테스트, 머지)의 자동화
- 문제점을 빠르게 발견하여 버그 수정 용이
- 코드의 퀄리티 향상
CD (Continouous Delivery지속적인 서비스 제공 & Continuous Deployment지속적인 배포)
- 파이프라인의 추가 단계에 대한 자동화를 뜻하지만 떄로는 얼마나 많은 자동화가 이루어지고 있는지를 설명하기 위해 별도로 사용되기도 한다.
- 최근에는 클라우드 기술 발전과 맞물려 지속적 통합과 지속적 배포가 빠른 속도로 진행되면서 CI/CD를 하나로 묶어서 다루는 경우가 점차 증가
CI/CD 단계
" Code -> Build -> Test -> Relese -> Deploy "
CI 개발자를 위한 자동화 프로세스라고 볼 수 있으며, Code - Build - Test 단계에서 꾀할 수 있습니다.
- Code : 개발자가 코드를 원격 코드 저장소 (Ex. github repository)에 push하는 단계입니다.
- Build : 원격 코드 저장소로부터 코드를 가져와 유닛 테스트 후 빌드하는 단계입니다.
- Test : 코드 빌드의 결과물이 다른 컴포넌트와 잘 통합되는 지 확인하는 과정입니다.
CD 지속적인 서비스 제공(Continuous Delivery) 및 지속적인 배포(Continuous Deployment)를 의미하며
이 두 용어는 상호 교환적으로 사용된다. Release - Deploy - Operate 단계에서 꾀할 수 있습니다.
- Release : 배포 가능한 소프트웨어 패키지를 작성합니다.
- Deploy : 프로비저닝을 실행하고 서비스를 사용자에게 노출합니다. 실질적인 배포 부분입니다.
- Operate : 서비스 현황을 파악하고 생길 수 있는 문제를 감지합니다.
CI/CD 파이프라인
CI/CD 파이프라인이란?
번잡스럽고 지루한 배포 과정을 자동화시키는 방법을 구축하게 되는 것
(자동화를 꾀하는 부분은 보통 코드가 빌드되면서 최종적으로 배포가 되는 단계까지)
CI/CD 파이프라인을 구성하는 기본 단계와 수행 작업
대표적인 세 가지 단계
- Source 단계: Source 단계에서는 원격 저장소에 관리되고 있는 소스 코드에 변경 사항이 일어날 경우, 이를 감지하고 다음 단계로 전달하는 작업을 수행합니다.
- Build 단계: Build 단계에서는 Source 단계에서 전달받은 코드를 컴파일, 빌드, 테스트하여 가공합니다. 또한 Build 단계를 거쳐 생성된 결과물을 다음 단계로 전달하는 작업을 수행합니다.
- Deploy 단계: Deploy 단계에서는 Build 단계로부터 전달받은 결과물을 실제 서비스에 반영하는 작업을 수행합니다.
파이프라인의 단계는 필요에 따라 더 세분화되거나 간소화될 수 있다.
CI/CD 파이프라인 구성 요소 및 장점
- 빌드 (소프트웨어 컴파일)
- 테스트 (호환성 및 오류 검사)
- 릴리스 (버전 제어 저장소의 애플리케이션 업데이트)
- 배포 (개발에서 프로덕션 환경으로의 변환)
- 규정 준수 및 유효성 검사
다양한 CI/CD Tool
- Jenkins
- Buildkite
- GitHub Actions
- GitLab CI/CD
- Bitbucket Pipelines
- Circleci