Dreaming Deve1oper

[DevOps] CI/CD 본문

DevOps

[DevOps] CI/CD

주현테크 2023. 3. 28. 18:25

개발자가 개발, 빌드, 테스트까지 진행하게 된다면 매우 비효율적일 것이며 프로젝트의 완성도도 떨어질 것이다.

회사마다 DevOps, 빌드엔지니어 등 각자 정의하는 바가 매우 포괄적이나, 큰 틀로 보면 빌드 및 배포에 관여하여 유관부서와 협업해 프로젝트의 완성도를 올리는데 기여하는 직군이 DevOps인 것으로 이해하였다.

 

QA 직군으로 근무하면서, 리소스가 많이 소모되는 경우 (소위 말하는 노가다성 영역) 자동화 스크립트를 작성하여 해결하였다. 빌드/배포 또한 마찬가지로 빌드를 자동화 시켜줌으로써 사람이 만들어낼 수 있는 실수도 줄이는 것은 물론 보다 효율적인 업무 환경을 만들어 나갈 수 있는 것으로 보인다.


CI/CD Tool

CI / CD란?

- 서비스의 개발 to 배포까지 모든 과정을 자동화하여 보다 효율적으로 배포하기 위한 개발 프로세스의 일종.

 


CI flow

CI (Continous Integration)

- 배포 이전 단계를 거쳐 코드를 통합하는 과정을 의미.

- 프로젝트에 변경점이 있을 경우 자동 빌드하여 공유 레파지토리에 통합시키는 것.

- 주기적으로 빌드를 진행하여 변경 이후에도 성공적으로 빌드되는지 확인되어야 함. (기존 시스템 이상 유/무도 테스트)

- 여러명의 개발자가 동시에 개발을 진행하다가 코드를 통합할 때 충돌을 방지할 수 있음.

 

 

 

CD flow

CD (Continuous Delivery / Deployment)

- 결과물을 빌드해 서비스를 배포하는 과정을 의미.

- 변경된 내용이 파이프 라인의 이전 단계를 모두 통과하면, 자동으로 배포 시킴.

- 간단한 변경된 내용이 정기적으로 커밋되고 자동화된 빌드, 테스트를 거쳐 문제가 발견되지 않을 경우 최종 배포 시킴.

 

Delivery

- 배포 준비 단계 to 최종 배포 단계의 중간에서 QA 팀 검증 이후에 최종 빌드를 수동으로 빌드를 진행하는 것.

 

Deployment

- Delivery와 반대로 최종 배포 단계 과정을 수동이 아닌 자동화로 구현하여 빌드하는 것.

 

'DevOps' 카테고리의 다른 글

[DevOps] 2  (0) 2023.03.30
Comments