인생여러방 2023. 5. 20. 19:03
728x90
반응형

데브옵스.

간단히 말하면 Development + Operations 라는 의미의 합성어 이다.
개발과 운영을 합쳤다는 것. 개발하는 사람이 운영도 하고, 운영하는 사람이 개발도 하고..가 아닌,
개발 팀과 운영 팀이 활발한 커뮤니케이션을 통한 긴밀한 협력을 통해 소프트웨어 빌드, 테스트, 출시 속도를 가속화하는 개념이다.

다시 정리하면, 데브옵스 자체는 개발부서와 운영부서가 아주 밀접하게 원할한 소통을 기반으로 더 빠른 작업속도와 빠른 서비스 제공, 높은 안정성 확보(빠른 복구) 등을 위해 커뮤니케이션과 협업, 통합 및 자동화를 강조하는 소프트웨어 개발 방법론이다.

그렇다면, 운영부서와 개발부서가 서로 소통을 잘한다면 그럼 다 데브옵스인가?
그렇지는 않을 것이다. 데브옵스에서 핵심은 협업과 통합 및 자동화라고 생각한다.(이해한 바로는, 의사소통이야 언제나 하는거고)
그래서 협업 툴 혹은 통합/자동화 툴 등이 데브옵스 툴이라는 타이틀을 들고 있는 것 같다.

좀 더 설명을 하기 위해서 애자일 방법론을 언급을 해보겠다.
애자일은 기존 폭포수 방법론의 단점을 보완하고자 나온 방법으로(폭포수 단점 : 오래 걸림)

프로토 타입을 만들어서 먼저 배포하고, 고객의 피드백을 받고, 추가 개발하고 다시 피드백을 받고 이 과정을 반복하는 것이다. 

데브옵스는 이러한 애자일 방법에서 CI/CD라는 개념이 추가 되었다고 볼 수 있다. 그리고 애자일은 고객의 피드백을 받고 제품을 업데이트하는 과정을 반복함으로서, 고객과의 상호작용에 초점이 있다면, 데브옵스는 CI/CD를 통해서 개발팀(Dev)과 운영팀(Ops)와의 긴밀한 협력관계를 구축하는데 초점을 두었다고 볼 수 있다. 그리고 CI/CD/자동화를 위해서   프로세스 및 도구 간 자연스러운 파이프라인을 추구한다.

기존 애자일 방법에서는 프로토 타입을 개발팀에서 만들고, 프로토 타입을 배포하여 고객의 피드백을 운영팀이 받고, 그것을 개발팀에게 전달해주고 하는 방식으로 진행했기 때문에, 이것도 협업이긴 협업이겠지만.. 

데브옵스에서는 CI(continuous integration)와 CD(continuous delivery & continuous deployment) 중 Continuous delivery 에서 개발팀과 운영팀이 같이 관여하여 두 팀간의 커뮤니케이션 부족 문제를 해결하고 최소한의 노력으로 빠른 배포를 목표로 한다. 또한, 기존 개발 방식이 다수의 개발자가 각자 코드를 작성하고, 특정한 날에 코드를 병합하고 테스트를 진행했다면, CI를 통해 "다수의 개발자가" 특정한 날에 병합하는 것이 아닌 "지속적"으로 코드를 병합하고 테스트가 병행되 개념이다. CI를 통해 개발 속도도 빠르게 하는 것이다. 

여기서 CI와 CD들을 좀 더 살펴보면,

CI - Continuous Integration. 지속적인 통합. 다수의 개발자가 코드 변경 추가 사항을 중앙 리포지토리에 정기적으로(지속적으로) 병합하는 것을 말하며 자동화된 테스트를 통해 검증을 한다. 검증을 통해 코드 병합시 발생하는 문제를 사전에 방지할 수 있다. 

CI 설명, https://blog.oursky.com/2019/08/19/how-to-build-cicd-pipeline/

CD - Continuous Delivery. 지속적인 전달. CI를 통해 병합된 코드를 고객에게 전달하기 전에 테스트 환경 및 프로덕션 환경에 배포하여 운영에 필요한 여러 테스트를 진행하는 것이다. 이 과정을 통해 업데이트를 좀 더 철저하게 검증하고 문제를 사전에 발견 할 수 있다. 테스트가 통과되면 고객에게 배포를 한다.

CD - Continous Deployment 지속적인 배포.  Continuous Delivery랑 다른 부분은 자동으로 배포가 된다는 것이다. Conitnous Delivery는 테스트 등을 다 통과하고 나면, 개발&운영팀의 결정 후 배포가 된다면, Continuous deployment는 고객 환경에 배포가 된다.

 

AWS 홈페이지에서 가져온 CI CD 그림.

  

728x90
반응형