로그인 / 등록 Account

DevOps

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

Jump to section

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

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

지속적인 서비스 제공은 CI/CD와 어떤 관계가 있을까요?

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

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

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

지속적인 서비스 제공과 지속적인 배포의 차이점은 무엇일까요?

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

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

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

CI/CD 파이프라인: 개념, 방법, 장점, 구현 과정

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

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

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

지속적인 서비스 제공은 DevOps와 어떤 관계가 있을까요?

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의 기반입니다.

CI/CD 파이프라인 구성 요소

Red Hat Openshift

클라우드 네이티브 애플리케이션을 더 빠르게 배포할 수 있도록 지원하는 컨테이너와 쿠버네티스 플랫폼.

Red Hat Ansible Automation

CI/CD에는 커스텀 코딩이 필요하며, 다양한 소프트웨어 패키지를 사용해야 합니다. Red Hat Ansible Automation Platform은 이러한 모든 기능을 하나로 구성해 제공하는 오픈소스 자동화 언어입니다.

애플리케이션을 배포하고, 다중 클러스터를 관리하고, 스케일에 따라 다중 클러스터에 정책을 실행하여 Red Hat Openshift의 가치를 더욱 폭넓게 활용하세요.

CI/CD의 더 큰 가능성을 살펴보세요