DevOps에서 자주 나오는 용어다. 학교에서 소프트웨어공학 수업 중 Agile 방법론에서도 언급되었던 용어다.
- CI(Continuous Integration)
개발자를 위한 자동화 프로세스. 여러 개발자가 작성/수정한 소스를 지속적으로 통합하고 테스트하는 것을 의미한다. App에 대한 코드 변경 사항이 정기적으로 빌드/테스트되어 통합되므로 여러 개발자가 동시에 작업을 할 경우 충돌할 수 있는 문제를 해결할 수 있다.
장점으로는 개발의 편의성 증가/변경된 코드에 대한 빠른 피드백, 테스트 가능/소스의 통합, 검증에 들어가는 시간 단축이 있다.
- CD(Continuous Delivery/Deployment)
개발, 통합, 배포, 릴리즈, 테스트를 자동화하여 지속적으로 배포하는 것. 검증된 소스를 지속적으로 배포해야 하기에, CI가 선행되어야 한다. (CI로 검증 -> 검증된 소스를 실제 환경으로 배포)의 과정을 거친다.
장점으로는 변경~배포까지의 작업을 자동화/개발자가 개발에만 집중 가능 등이 있다. 또한 배포할 서버가 많을 경우 발생할 수 있는 실수나 번거로움을 줄일 수 있다.
CI는 개발, CD는 운영/사업 계열이라고 생각하면 편할 것 같다.
개발팀은 개발과 검증에 집중하고, 운영팀은 배포와 운영에 집중할 수 있다.
또한 CI와 CD는 개발팀과 운영/사업팀 간의 소통 문제를 크게 개선하는 효과가 있다. 즉각적으로, 지속적으로 결과물이 반영되니 가시성이 이전과 달라지기 때문이다.
Delivery와 Deployment의 의미 차이가 있긴 한 것 같다. 일단 대충 비슷하다고 묶어놓았다.
더 알아봐야 할 것 같다.
'IT 지식' 카테고리의 다른 글
VPC, Gateway, Subnet (0) | 2021.07.14 |
---|---|
RAM, ROM (0) | 2021.07.14 |
Runtime, Process (0) | 2021.07.14 |
OS, Kernel, Shell (0) | 2021.07.14 |
프로비저닝(Provisioning) (0) | 2021.07.12 |
댓글