일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 설치형 SW
- MongoServerSelectionError
- ci/cd
- 백준
- 부트캠프
- 리눅스
- comdef
- c++
- 홈 디렉토리
- 코드스테이츠
- neofetch
- 지속적 전달
- char 입력
- fastify
- docker context create
- fastify-cli
- 웹 SW
- 수직확장
- 프로세스
- DevOps
- mysql
- cli
- OpenSearch
- Java 입력
- SSAFY입학
- docker
- ECS
- zshrc error
- 출력 명령어
- dfs
Archives
- Today
- Total
다디와 괴발개발
CI/CD 파이프라인 본문
DevOps 개념을 배우다 보면, 지속적 배포, 지속적 통합, 지속적 전달이라는 개념들을 접할 수 있다.
지속적 배포를 위해 CI, CD 파이프라인이 만들어지게 되었는데 한 번 내용을 살펴보자
지속적 통합 (Continuous Integration)
code
-> build
-> test
단계를 뜻한다.
여기서 code
와 build
는 개발자의 영역이다.
- code : 개발자가 코드를 저장소에 push
- build : 코드 저장소로부터 코드를 가져와 유닛 테스트 후 빌드
- test : 코드 빌드의 결과물이 다른 컴포넌트와 잘 통합되는지 확인
지속적 통합(CI) 과정의 필요성
- 버그를 조기에 발견
- 테스트가 완료된 코드를 빠르게 전달 가능
- 지속적인 배포를 가능하도록 함
지속적 전달 (Continuous Delivery)
지속적 통합에 성공한 경우 지속적 전달로 이어진다
이 때, 지속적 통합에 반드시 성공한 경우에만 배포로 이어질 수 있다test
이후, release
-> deploy
-> operate
단계를 뜻한다.
- release : 배포 가능한 소프트웨어 패키지를 작성한다. 배포에 적합한 빌드를 선정함
- deploy : 프로비저닝을 진행한다. 서비스를 사용자에게 배포 서버를 통해 노출하는 과정
- operate : 서비스에 생길 수 있는 현황을 파악하고 문제를 감지한다
프로비저닝 : 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것을 말한다. (출처 : 위키피디아)
출시 vs 릴리즈
- 출시 : 상품이 시장에 나오거나 내보냄. 비즈니스 관점에서 용어로 사용
- 릴리즈 : 배포 가능한 소프트웨어 패키지. 애자일 소프트웨어 개발에서의 의미로 한정한다
지속적 배포 (Continuous Deployment)
지속적 배포 = 지속적 통합 + 지속적 전달 = CI/CD 파이프라인
모든 코드의 변경이 배포로 이어진다
개발부터 배포까지 모든 단계를 자동화하는 것이 지속적 배포의 핵심이다
특히, 통합, 테스트, 배포 단계에서 모니터링 및 자동화를 통해 개발 프로세스를 향상시키고 이는 CI/CD 파이프라인의 진가를 드러낸다
이러한 CI/CD 파이프라인은 DevOps 방식을 통해 더 효과적으로 소프트웨어를 제공하도록 한다.
'DevOps' 카테고리의 다른 글
분산 시스템이란 무엇인가? (0) | 2022.02.22 |
---|---|
서버와 확장 (수직 확장 vs 수평 확장) (0) | 2022.02.22 |
DevOps 데브옵스란 무엇인가? (0) | 2022.02.22 |
웹 호스팅 vs 서버 호스팅 vs 클라우드 호스팅 (0) | 2022.02.19 |
설치형 애플리케이션과 웹 애플리케이션 (SaaS) (0) | 2022.02.19 |