Jump to section

지속적인 서비스 제공: 개념, 방법, 장점, 구현 과정

URL 복사

지속적인 서비스 제공이란 자동화를 사용해 새로운 코드를 빠르게 릴리스하는 소프트웨어 개발 방식입니다.

지속적인 서비스 제공 프로세스를 확립하면 개발자가 변경한 애플리케이션 코드를 자동화를 통해 코드 리포지토리 또는 컨테이너 레지스트리로 내보낼 수 있습니다.

지속적인 서비스 제공은 애플리케이션 개발 단계 중 일부를 자동화하여 소프트웨어를 빈번하게 제공하는 방법인 CI/CD의 한 부분입니다. 

CI/CD에서 'CI'는 지속적인 통합(Continuous Integration)을 뜻합니다. 지속적인 통합을 이용하면 새로 변경한 애플리케이션 코드가 정기적으로 빌드 및 테스트를 거쳐 공유 리포지토리에 병합됩니다. 따라서 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌하는 문제를 이 방법으로 해결할 수 있습니다.

한편 CI/CD의 'CD'는 지속적인 배포(Continuous Deployment) 또는 지속적인 서비스 제공(Continuous Delivery)을 가리키며, 이를 통해 파이프라인 세부 단계의 자동화 방식을 설명합니다.

CI/CD FLow

지속적인 서비스 제공과 지속적인 배포는 서로 밀접하게 관련된 개념이지만, 자동화 수준을 구체적으로 나타내기 위해 서로 구분하여 사용하기도 합니다.

지속적인 서비스 제공은 대개 개발팀이 변경한 애플리케이션 코드가 버그 테스트를 거쳐 리포지토리(예: GitHub 또는 컨테이너 레지스트리)에 자동으로 업로드되는 것을 뜻하며, 운영팀은 업로드된 새 코드를 실시간 프로덕션 환경에 배포할 수 있습니다. 이는 개발팀과 비즈니스팀 간의 가시성 및 커뮤니케이션 부족 문제를 해결해 줍니다. 그러므로 지속적인 서비스 제공은 최소한의 노력으로 새로운 코드를 배포하는 것을 목표로 합니다.

반면에 지속적인 배포는 새로 개발된 소프트웨어의 릴리스 프로세스에서 추가적인 단계에 적용되는 방법입니다. 여기에는 일반적으로 개발자의 변경 사항을 리포지토리에서 프로덕션 환경으로 자동으로 릴리스하여 고객이 사용할 수 있도록 하는 과정이 포함됩니다. 따라서 운영팀의 과도한 수작업 프로세스 때문에 애플리케이션 제공 속도가 느려지는 문제를 해결할 수 있습니다. 지속적인 배포는 파이프라인의 다음 단계를 자동화함으로써 지속적인 서비스 제공의 장점을 활용합니다.

트랜스포메이션 성공을 위한 전략

3가지 고객 사례를 통해 개방형 디지털 트랜스포메이션으로 중요한 성과를 얻은 방법을 알아보세요.
 

CI/CD 파이프라인은 새 버전의 소프트웨어를 제공하기 위해 수행하는 일련의 단계입니다. CI/CD를 실행했다면 CI/CD 파이프라인이 확립된 것입니다.

CI/CD 파이프라인은 특히 통합 및 테스트 단계와 제공 및 배포 단계에 모니터링 및 자동화를 도입하여 애플리케이션 개발 워크플로우를 개선합니다. 

CI/CD 파이프라인의 각 단계를 수동으로 실행할 수도 있지만, CI/CD 파이프라인의 진가는 애플리케이션 라이프사이클을 자동화할 때 드러납니다.

DevOps란 '개발'과 '운영' 사례를 결합한 개념으로서, 신속한 고품질 서비스 제공을 통해 비즈니스 가치를 높이고 대응 능력을 개선할 목적으로 기업 문화, 자동화, 플랫폼 설계에 접근하는 방식을 말합니다.

지속적인 서비스 제공은 흔히 DevOps와 함께 적용되는 독특한 소프트웨어 개발 사례입니다. DevOps 접근 방식에서는 지속적인 서비스 제공 파이프라인을 생성하는 경우가 많습니다.

DevOps는 새로운 소프트웨어 기능, 개선 요청 또는 버그 수정 등 하나의 아이디어가 개발에서 배포에 이르는 프로세스의 속도를 높임으로써 더 빨리 프로덕션 환경에 전달되어 사용자에게 가치를 전달하도록 합니다. 

대개 표준 개발 환경에서 코딩 작업을 하는 개발자는 DevOps를 사용해 테스트 담당자 및 IT 운영팀과 긴밀하게 협력하면서 신뢰성 저하 없이 소프트웨어 빌드, 코드 커밋, 단위 테스트, 출시 과정을 가속화할 수 있습니다.

DevOps를 구현하여 얻을 수 있는 주된 성과가 바로 CI/CD 파이프라인이며, 개발팀과 운영팀은 애자일 방법론에 따라 서로 협력하면서 이를 지원하게 됩니다. 

CI/CD는 자동화를 통해 개발, 배포, 테스트 프로세스를 더 빠르게 진행합니다. 자동화는 품질 유지는 물론 수작업으로 인한 오류를 줄이는 데도 도움이 됩니다. DevSecOps 전략에 자동화를 포함시켜 보안을 지원할 수도 있습니다.

특히 통합(CI) 측면을 다루는 툴도 있고, 개발 및 배포(CD)를 관리하는 툴도 있으며, 지속적인 테스트 또는 관련 기능에 특화된 툴도 있습니다.

CI/CD와 관련해 가장 널리 알려진 오픈소스 툴은 Jenkins 자동화 서버입니다. Jenkins는 간단한 CI 서버에서 완전한 CD 허브에 이르는 모든 것을 처리할 수 있게 설계되었습니다.

지속적인 서비스 제공 재단(Continuous Delivery Foundation)의 Tekton 역시 널리 사용되는 또 하나의 오픈소스 프로젝트입니다. Tekton을 이용하면 쿠버네티스 개념에 따라 제공 파이프라인을 선언적으로 기술하고, 컨테이너에서 온디맨드 방식으로 이 파이프라인을 실행할 수 있습니다.

Tekton은 Red Hat® OpenShift®를 위한 CI/CD 솔루션인 OpenShift Pipelines의 기반입니다.

추가 자료

문서

DevSecOps란?

DevOps의 민첩성과 대응 능력을 최대한 활용하려면 IT 보안 팀이 애플리케이션의 전체 라이프사이클에서 주요 역할을 해야 합니다.

문서

CI/CD(지속적 통합/지속적 제공): 개념, 방법, 장점, 구현 과정

CI/CD는 애플리케이션의 통합 및 테스트 단계에서부터 제공 및 배포에 이르는 애플리케이션의 라이프사이클 전체에 걸쳐 지속적인 자동화와 지속적인 모니터링을 제공합니다.

문서

DevOps 엔지니어는 어떤 사람일까요?

DevOps 엔지니어는 조직 내 협업, 혁신, 문화적인 변화를 지원하는 기술 및 전문성을 두루 갖추고 있습니다.  

DevOps에 대한 자세한 내용

제품

다양한 시각으로 고객의 상황을 파악하고 이를 바탕으로 고객의 과제를 분석하여 종합적이고 비용 효율적인 솔루션을 통해 문제를 해결하도록 돕는 전략적인 조언자입니다.

리소스

팟캐스트

Command Line Heroes 시즌 1, 에피소드 4:

"DevOps: Tear down that wall"

백서

Red Hat Ansible Automation Platform으로 CI/CD 파이프라인 간소화

오퍼레이터

Red Hat® OpenShift® GitOps를 사용하여 인프라와애플리케이션 구성 관리