본문 바로가기
IT

배포 용이성(Deployability) 아키텍처 전술, 시나리오, 전술 목록

by 파이프라인만들기 2023. 1. 31.

배포 용이성은 소프트웨어 아키텍처에 있어서 중요한 품질 속성 중에 하나입니다. 배포 및 배포 용이성의 정의와 아키텍처 전술 개념에 대해서 알아보겠습니다. 그리고 배포 용이성 아키텍처 전술 시나리오 구성요소와 예시를 통해 자세하게 살펴보겠습니다.

 

마지막으로 배포 용이성 전술 목록에는 어떤 것들이 있는지 정리해 보고, 상세 내용을 알아보겠습니다.

 

글의 순서는 아래와 같습니다.

  • Deploy, Deployment, 배포 용이성(Deployability) 정의와 배포 용의성 아키텍처 전술 개념
  • 배포 용이성 아키텍처 전술의 품질 속성 시나리오 구성요소와 예시
  • 배포 용이성 아키텍처 전술 목록과 상세 내용

 

Deploy, Deployment, 배포 용이성 정의와 아키텍처 전술 개념

Deploy는 프로그램, 시스템, 소프트웨어 등을 서버, 워크스테이션, 디바이스 등의 기기에 설치해서 작동가능하도록 하는 것입니다.

 

Deployment는 개발한 프로그램이 실제 사용자가 운영 환경에서 정상적으로 사용 가능한 상태까지의 모든 단계와 절차입니다.

CI/CD와 배포
CI/CD와 배포

 

배포 용이성(Deployability)은 프로그램, 소프트웨어, 시스템이 운영 환경에서 예측 가능하고 정상 사용 가능하게 배포될 수 있는 정도입니다. 즉, 정상적인 배포가 수월하게 되는 정도라고 할 수 있습니다.

배포 용이성 그래프
배포 용이성 그래프

 

배포 용이성 아키텍처 전술은 새로운 프로그램, 소프트웨어, 시스템이 성공적으로 배포될 수 있도록 하는 기법입니다. 여기서 성공적인 배포는 배포에 소요되는 시간과 비용, 배포된 시스템의 품질이 기준을 모두 충족하는 것입니다.

배포 용이성 아키텍처 전술
배포 용이성 아키텍처 전술

 

배포 용이성 아키텍처 전술의 품질 속성 시나리오 구성요소와 예시

배포 용이성 아키텍처 전술 시나리오의 구성요소는 아래와 같습니다.

시나리오 구성요소 설명
자극의 근원(Source) 최종 사용자, 개발자, 시스템 관리자, 시스템 담당자
자극(Stimulus) 프로그램/소프트웨어/시스템 배포
환경(Environment) 서버, 플랫폼, 컨테이너, VM 등의 실행 환경
대상(Artifact) 소프트웨어 요소, 전체 시스템
응답(Response) 배포 후 정상 작동 및 가동, 기존 버전으로의 롤백
응답 측정(Response Measure) 시간, 결함, 영향을 받은 요소 등

 

 

시나리오 예시를 들어보면 다음과 같습니다.

 

Example

당사 제품에서 사용하는 인증/권한 부여 서비스의 새로운 버전이 사용 가능하다. 제품 소유자는 이 버전을 배포해서 통합하기로 결정했다. 새로운 서비스는 테스트를 거쳐 40시간 이내에 운영 환경에 배포되어야 한다. 또 배포에 결함이 없고, SLA를 위반하면 안 된다.

※ SLA : Service Level Agreement는 서비스 수준 계약으로 사전에 합의된 서비스 수준을 제공하기로 협약을 맺은 것

 

자극의 근원은 제품 소유자이며, 자극은 새 버전의 배포입니다. 환경은 기존 서비스의 운영 환경이고, 대상은 서비스 전체입니다. 40시간 이내에 운영환경에서 정상 배포되고, 결함 없이 SLA를 만족해야 합니다.

 

배포 용이성 아키텍처 전술 목록과 상세 내용

배포 용이성의 아키텍처 전술 목록에는 Manage Deployment Pipeline과 Manage Deployment System이 있습니다. 각각에 대해서 상세 내용을 살펴보겠습니다.

배포 용이성 아키텍처 전술 목록
배포 용이성 아키텍처 전술 목록

 

Manage Deployment

Manage Deploynemt Pipeline는 배포 파이프라인을 관리하는 기법으로 Scale Rollouts, Script Deployment Commands, Rollback 등이 있습니다.

 

Scale Rollouts은 새로운 버전의 서비스를 점진적으로 배포하는 것입니다. 점진적 배포를 하게 되면, 결함 있는 서비스 배포의 영향을 최소화할 수 있습니다.

Scale Rollouts
Scale Rollouts

 

Script Deployoment Commands는 스크립트 엔진을 이용해서 배포하는 것입니다. 스크립트 엔진은 배포 스크립트를 자동으로 실행시켜서 배포를 진행합니다.

Script Deployment Commands
Script Deployment Commands

 

Rollback은 이전 버전의 서비스로 되돌리는 것입니다. 최신 배포 버전에 문제가 있을 경우 빠르게 복구를 할 수 있습니다.

 

Manage Deployed System

Manage Deployed System은 배포된 시스템을 관리하는 기법으로 Manage Service Interactions, Package Dependencise, Toggle Features 등이 있습니다.

 

Manage Service Interactions는 시스템 서비스의 여러 버전을 동시에 배포 및 실행하는 것을 수용하는 것입니다. 서비스의 새로운 버전과 기존 버전을 별도로 배포하기 위해서 리소스를 완전히 복제할 수 있습니다.

Manage Service Interactions
Manage Service Interactions

 

Package Dependencies는 의존성이 있는 요소들을 함께 패키지로 만드는 것입니다. 그렇게 되면 같이 배포할 수 있고, 배포부터 운영환경까지 의존성도 일관되게 유지됩니다.

Package Dependencies
Package Dependencies

 

Toggle Features는 새로운 기능에 대한 kill switch를 도입하는 것입니다. kill switch는 자동으로 서비스를 재배포하는데 감수해야 할 비용과 위험 없이 새로 배포된 기능을 활성화/비활성화 통제할 수 있습니다.

Toggle Features
Toggle Features


※ 함께 보면 좋은 글

 

1. 소프트웨어 아키텍처의 품질 속성 특징과 문제점, 그리고 품질 속성 시나리오

 

소프트웨어 아키텍처의 품질 속성 특징과 문제점, 시나리오(with 예시)

소프트웨어 아키텍처에서 품질 속성(Quality attribute)은 가장 중요한 요소입니다. 이번 글에서는 소프트웨어 아키텍처의 품질 속성 특징과 문제점, 그리고 문제점을 극복하기 위한 품질 속성 시나

mmp2022.tistory.com

3. 아키텍처 전술 : 변경 용이성(Modifiability) 아키텍처 전술, 시나리오, 전술 목록  

 

아키텍처 전술 : 변경 용이성(Modifiability) 정의, 개념, 시나리오, 전술 목록

이번 글에서는 아키텍처 전술 중 하나인 변경 용이성 전술에 대해서 정리했습니다. 변경 용이성은 소프트웨어 아키텍처 주요 품질 속성 중 하나입니다. 변경 용이성의 정의와 기본 개념부터 품

mmp2022.tistory.com

 

4. 가용성(Availability) 아키텍처 전술, 시나리오, 전술 목록  

 

가용성(Availability) 아키텍처 전술 정의, 개념, 시나리오, 전술 목록

이번 글은 가용성 아키텍처 전술에 대한 내용입니다. 가용성과 가용성 아키텍처 전술 정의 및 개념을 알아보고, 가용성 품질 속성 시나리오를 간략하게 세워보겠습니다. 마지막으로 가용성 아

mmp2022.tistory.com

 

5. 상호 운용성(Interpoerability) 아키텍처 전술, 시나리오, 전술 목록

 

 

상호 운용성(Interoperability) 아키텍처 전술, 시나리오, 전술 목록

상호 운용성은 중요한 아키텍처 품질 속성 중에 하나입니다. 상호 운용성 아키텍처 전술 개념에 대해서 알아보고, 시나리오와 구성요소를 알아보겠습니다. 그리고 상호 운용성 아키텍처 전술

mmp2022.tistory.com

 

댓글