DevOps와 CI/CD

b4failrise ㅣ 2021. 6. 13. 13:51

개요

DevOps, CI(Continuous Integration), CD(Continuous Delivery) 가 무엇인지 알아보고 등장배경 및 필요성을 알아본다.

👬→🙍‍DevOps의 등장

전통적인 개발 조직은 개발자와 오퍼레이터 두 부류로 나뉘어 운영되었다. 개발자는 비즈니스 요구사항에 따라 코드를 완성합니다. 빠른 시간 내에 요구사항을 충족시켜, 필요로 하는 기능을 완성시키는 데 기여합니다. 그리고 오퍼레이트는 완성된 소스코드를 빌드하고 배포합니다. 시간을 준수하여 실수 없이 코드를 배포하는데 집중하며, 업무를 자동화 하는데 기여합니다. 이렇게 애플리케이션을 실제로 서비스하는데까지 두 역할이 서로 다른 목표를 위해 업무를 수행하다보니 시간이 오래 걸리는 이슈에 부딪히게 되었습니다. 그래서 이를 통합적으로 수행하고자 하는 니즈가 DevOps 문화이고 이를 실현하는 DevOps 조직이 출현하게 되었습니다.

🏭CI/CD 의 등장

그러나 소프트웨어 개발 수명 주기는 점점 복잡해지고 업데이트와 배포가 잦아지는 환경 속에서 업무 효율을 낼 수 있는 도구를 필요로 하게 되었습니다. CI/CD는 '자동화된' 지속적인 통합과 배포를 의미합니다. CI 단계에서는 자동화된 빌드 및 테스트가 수행된 후, 개발자가 코드 변경을 레포지토리에 정기적으로 병합하는 개발을 수행합니다. CD 단계에서는 코드 변경 사항을 레포지토리에서 고객이 사용 가능한 프로덕션 환경까지 자동으로 릴리스하는 개발을 수행합니다. (이 둘은 서로 다른 역할이지만 보통 함께 구축되기 때문에 CI, CD를 묶어서 부릅니다.) 이를 통해 응용 프로그램의 빌드, 테스트 및 배포의 자동화를 통해 애플리케이션을 더 짧은 주기로 고객에게 제공하게 됩니다.

👎온프레미스 상에서의 CI/CD 구축의 어려움

한 설문조사 결과 CI/CD를 업무에 도입하고 있지 못하는 가장 큰 이유로 스킬셋의 부족함, 툴 선정의 어려움, Best Practice에 대한 지식 부족, 전통적 개발 방식에서 벗어나기 어려움 등이 뽑혔습니다. 실제로 온프레미스 상에서 CI/CD 환경을 구축하는 것은 쉽지 않습니다. 여러 가지 제품 중에 우리 회사에 가장 적합한 제품을 조사하고 검증해야 합니다. 제품을 선택한 이후에는 수많은 환경을 구축하고 연계하고 운영까지 하는데 많은 시간과 공수가 들게 됩니다.

👍클라우드 상에서의 CI/CD 효과

하지만 클라우드에서라면 앞서 한 고민을 덜어줄 수 있습니다. 직접 구축할 필요 없이 클라우드 서비스 제공자가 만든 CI/CD 도구를 쉽게 사용할 수 있습니다. 빠르고 쉽게 리소스를 생성할 수 있는 클라우드의 장점을 누릴 수 있습니다. 온프레미스 상에서 존재했던 복잡한 방화벽 설정이 없고, 보안 환경을 간편하게 설정할 수 있습니다.

'개발 관리' 카테고리의 다른 글

github로 코드리뷰 하기  (0) 2021.08.28
우리팀 Confluence 사용하는 법  (0) 2021.04.19
JIRA의 scrum보드 활용법  (0) 2021.04.15
Jira를 통해 스크럼 관리하기  (0) 2021.04.15
애자일 Scrum(스크럼) 이해하기  (0) 2021.04.15