일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Network
- JavaScript
- CSV
- Vision
- kubectl
- tcp
- kubernetes
- OS
- Spring
- helm
- CVAT
- ip
- aws s3
- Trino
- EC2
- Packet
- grafana
- java
- docker
- PostgreSQL
- Python
- kubeadm
- MAC address
- jvm
- log
- airflow
- zookeeper
- Operating System
- Kafka
- AWS
- Today
- Total
JUST WRITE
What is CI/CD? 본문
What is CI/CD?
CI/CD는 Application 개발부터 배포까지 모든 단계를 자동화해서 빠르게 사용자에게 배포하는 것을 말한다.
CI는 Continuous Integration 지속적인 통합이고,
CD는 Continuous Delibery 지속적인 제공, Continuous Deployment 지속적인 배포를 의미한다.
CI
Continuous Integreation
CI는 주기적으로 개발 Code가 Repository에 반영 -> Build -> Test -> Merge까지 되는 것을 말한다.
CI가 효과적으로 진행되려면 2가지 사항이 중요하다.
빈번하고 작은 단위 Code 반영
코드 변경사항을 반영하는 것이 주기적으로 빈번하게 이루어져야 한다.
변경 사항이 작은 단위로 반영되어야 한다.
변경 사항이 가끔 큰 단위로 반영하게 된다면 Merge 할 때 어려울 것이다.
Build, Code Test의 자동화
Merge가 되면 Build하는 데 문제가 없는지, Code Test가 자동으로 진행되어야 한다
Code를 반영하기 전에 Code Review를 통해서 체크 후 Repository에 반영되어야 한다.
Merge 후에는 Build Tool, Script를 통해 Build를 진행한다.
Build 후에는 Unit Test, Integration Test 등의 Test를 진행한다.
Build, Test에 문제가 있을 시 관련 개발자들에게 알림을 줘야 한다.
CI 장점
- 주기적인 Merge를 통해 Merge 충돌 가능성이 줄어듬.
- Code 결합, 문제점을 신속하게 발견 -> 빠르게 수정도 가능
- Code 퀄리티 향상 -> Test Code 활용
CD
Continuous Delivery, Continuous Deployment
CD는 CI까지 진행한 Code를 Package해서 출시 직전까지의 Test를 진행한다.
사용자에게 출시하기 직전까지의 과정을 Continous Delivery이다.
Production 환경으로 배포까지 자동화하는 것을 Continuous Deployment라 한다.
개발, Build, Test, Package, Deploy까지 과정을 SDLC(Software Deployment LifeCycle)라고 한다.
SDLC를 반복하게 되는 데, 이 주기를 짧게 가지는 것이 중요하다.
새 기능 반영, 에러 수정과 같은 Code 변경 사항을 사용자에게 빠르게 반영하게 위해서 필요하다.
올바른 CI/CD 수립을 통해 SDLC를 짧게 가질 수 있다.
'MLOps' 카테고리의 다른 글
AWS EC2에서 GPU를 사용하려면?! (2) | 2023.04.24 |
---|