
상명대학교 / 서광규 교수
3. 클라우드 네이티브 애플리케이션을 위한 PaaS의 기능적 요구 사항
3-1. 클라우드 네이티브 애플리케이션 배포를 위한 PaaS 요구 사항
(애플리케이션 실행 환경)
PaaS CSP가 CSC에 애플리케이션 실행 환경을 제공하는 것이 필요하다.
※ 참고 : 애플리케이션 실행 환경에는 물리적 및 가상화된 리소스(베어메탈, 가상 머신 및 컨테이너), 운영 체제, 런타임, 미들웨어, 애플리케이션 종속 소프트웨어 등이 포함된다.
(애플리케이션 템플릿)
PaaS CSP는 배포용 클라우드 네이티브 애플리케이션을 설명하기 위해 CSC용 애플리케이션 템플릿을 제공하는 것이 좋다.
※ 참고 : 애플리케이션 템플릿은 마이크로서비스 아키텍처, 클라우드 네이티브 애플리케이션 이미지, 필수 리소스, 구성 등을 설명하는 표준 형식의 파일이다.
※ 참고 : 애플리케이션 템플릿은 애플리케이션 배포에 사용된다.
(애플리케이션 이미지 저장소)
이미지 저장소 PaaS CSP는 CSC에 의한 클라우드 네이티브 애플리케이션의 이미지 업로드, 저장, 업데이트, 삭제를 지원하기 위해 클라우드 애플리케이션 이미지 저장소를 제공하는 것이 좋다.
(애플리케이션 템플릿 저장소)
PaaS CSP는 CSC에 의한 애플리케이션 템플릿 업로드, 저장, 업데이트, 삭제를 지원하기 위해 애플리케이션 템플릿 저장소를 제공하는 것이 좋다.
(애플리케이션 템플릿 변환)
PaaS CSP에서는 최소한 리소스 및 애플리케이션에 대한 리소스 요구 사항 및 구성으로 변환되는 애플리케이션 템플릿에 대한 변환을 제공하는 것이 좋다.
3-2. 클라우드 네이티브 애플리케이션 기능 지원을 위한 PaaS 요구 사항
(마이크로서비스 레지스트리)
PaaS CSP는 클라우드 네이티브 애플리케이션에 대한 마이크로서비스 관리를 지원하기 위해 CSC에 마이크로서비스 레지스트리를 제공하는 것이 좋다.
※ 참고 : 마이크로서비스 레지스트리는 마이크로서비스 이름과 실시간 IP 주소의 맵을 유지 관리하는 기능 모듈로, 이를 통해 마이크로서비스는 마이크로서비스 이름만 사용하여 서로 액세스할 수 있다. 마이크로서비스를 레지스트리에 등록함으로써 CSC와 CSC의 애플리케이션은 레지스트리에서 등록된 마이크로서비스를 검색한다.
(로드 밸런싱 프록시)
PaaS CSP는 마이크로 서비스 기반 클라우드 네이티브 애플리케이션의 통합 액세스 포인트를 노출하고 액세스 트래픽을 마이크로 서비스에 분산시키기 위해 CSC에 로드 밸런싱 프록시를 제공하는 것이 좋다.
※ 참고 : 로드 밸런싱 프록시는 트래픽의 로드 밸런싱을 지원하기 위해 클라우드 네이티브 애플리케이션의 진입점을 게시하는 엔티티이다.
(로드 밸런싱 프록시 구성)
PaaS CSP는 로드 밸런싱 프록시의 로드 밸런싱 규칙 구성을 CSC에 제공하는 것이 좋다.
※ 참고 : 로드 밸런싱 구성의 예는 트래픽 분산 정책이다.
(트래픽 컨트롤러)
클라우드 네이티브 애플리케이션의 마이크로서비스 간 트래픽을 제어하기 위해 PaaS CSP가 CSC에 트래픽 컨트롤러를 제공하는 것이 좋다.
※ 참고 : 트래픽 컨트롤러는 프록시, 로드 밸런서, 서비스 메시 등에 의해 제공된다. 그리고 속도 제한, 회로 차단 및 시간 초과를 포함한 트래픽 관리 규칙을 지원하려면 트래픽 컨트롤러가 권장된다.
※ 참고 : 마이크로서비스 간의 상호작용을 관리하려면 트래픽 컨트롤러가 마이크로서비스의 연결을 모니터링해야 한다.
(트래픽 제어 구성)
PaaS CSP는 트래픽 컨트롤러에 대한 구성을 CSC에 제공하는 것이 좋다.
※ 참고 : 트래픽 컨트롤러의 구성 특징에는 속도 제한, 회로 차단 전 최대 요청 수, 요청 대기 시간 길이 등이 포함된다.
(애플리케이션 데이터 스토리지)
PaaS CSP는 클라우드 네이티브 애플리케이션에 대한 데이터 스토리지를 CSC에 제공하는 것이 좋다.
※ 참고 : 데이터 저장의 예로는 계층형 데이터베이스, 관계형 데이터베이스, 비관계형 데이터베이스가 있다.
(애플리케이션 모니터링)
PaaS CSP는 클라우드 네이티브 애플리케이션에 대한 모니터링을 CSC에 제공하는 것이 좋다.
※ 참고 : 클라우드 네이티브 애플리케이션의 모니터링 결과는 측정항목이다.
※ 참고 : 지표는 시스템의 실행 상태와 품질을 나타내는 성능 데이터 그룹이다. 예를 들어, 웹 애플리케이션의 경우 모니터링되는 지표는 처리된 웹사이트 트래픽 양, 방문자 수 등이다. 클라우드 네이티브 애플리케이션을 모니터링하기 위한 지표는 애플리케이션 개발자가 정의하고 실행 상태의 애플리케이션에 의해 생성된다.
(애플리케이션 상태 알림)
PaaS CSP는 클라우드 네이티브 애플리케이션 모니터링을 기반으로 CSC에 애플리케이션 상태 알림을 제공하는 것이 좋다.
참고 10 - 경보를 생성하려면 CSC에 의한 애플리케이션 모니터링 메트릭의 임계값을 설정해야 한다.
(애플리케이션 추적)
PaaS CSP에서는 클라우드 네이티브 애플리케이션 내에서 발생하는 트래픽 흐름에 대한 추적을 CSC에 제공하는 것이 좋다.
※ 참고 : 클라우드 네이티브 애플리케이션이 제대로 작동하지 않을 때 오류 지점을 감지하기 위해 클라우드 네이티브 애플리케이션의 개발자와 운영자가 추적을 사용한다. 추적에는 대상 트래픽 흐름의 전체 경로 추적, 흐름 송신자, 흐름 수신자, 흐름을 처리하는 마이크로서비스의 시간 소비 등을 포함한 중요한 정보 수집이 포함된다.
(Tracing 기능 구성)
PaaS CSP에서는 CSC에 Trace 기능 구성을 제공하는 것이 좋다.
※ 참고 : 추적 기능에는 대상 추적 IP 주소, 대상 추적 프로토콜, 추적 시간 기간, 대상 마이크로서비스 등이 포함된다.
(애플리케이션 로깅)
PaaS CSP는 클라우드 네이티브 애플리케이션에 대한 로그 관리를 CSC에 제공하는 것이 좋다.
※ 참고 : 로그는 클라우드 네이티브 애플리케이션에 의해 생성된다. 로그 관리에는 로그 수집, 저장, 삭제, 로그 내보내기가 포함된다. 로그의 예로는 클라우드 네이티브 애플리케이션에서 수행한 활동을 기록하는 애플리케이션 시스템 로그 및 작업 로그가 있다.
3-3. 클라우드 네이티브 애플리케이션 개발을 위한 PaaS 요구 사항
(애플리케이션 신뢰성 테스트)
PaaS CSP는 잠재적이지만 셀 수 없는 오류를 감지하기 위해 CSC에 클라우드 네이티브 애플리케이션의 신뢰성 테스트를 제공하는 것이 좋다.
※ 참고 : 응용 프로그램 신뢰성 테스트의 예는 응용 시스템에 불안정한 기능을 수동으로 생성하여 응용 시스템의 반응을 확인하여 응용 시스템의 견고성과 신뢰성을 확인하는 것이다. 불안정한 기능은 애플리케이션마다 다르지만, 예로는 액세스 제한, 강제 장애 조치, 시스템 시계 동기화 해제, 애플리케이션 작업 부하 대폭 증가 등이 포함될 수 있다.
(통합 개발 환경)
PaaS CSP는 PaaS에서 CSC 개발 클라우드 애플리케이션을 지원하기 위해 다국어 통합 개발 환경을 제공하는 것이 좋다.
※ 참고 : 다중 언어 통합 개발 환경은 다양한 코딩 언어에 대한 개발 환경이다.
※ 참고 : 통합 개발 환경에는 일반적으로 코드 편집기, 코드 컴파일러, 디버거 및 그래픽 사용자 인터페이스가 포함된다.
(소프트웨어 개발 키트)
클라우드 네이티브 애플리케이션 코딩을 지원하기 위해 PaaS CSP가 CSC에 소프트웨어 개발 키트를 제공하는 것이 좋다.
※ 참고 : 소프트웨어 개발 키트에는 소프트웨어 프레임워크, 라이브러리, 기능 및 도구가 포함되어 있다.
(테스트 도구)
PaaS CSP는 클라우드 네이티브 애플리케이션의 테스트 도구를 CSC에 제공하는 것이 좋다.
※ 참고 : 공통 테스트 도구는 단위 테스트, 인터페이스 테스트, 기능 테스트, 성능 테스트 등을 변환한다.
(지속적 배포 및 테스트)
빠른 클라우드 네이티브 애플리케이션 제공을 달성하려면 PaaS CSP가 CSC에 지속적인 배포 및 테스트 파이프라인을 제공하는 것이 좋다.
※ 참고 : 지속적인 배포 및 테스트 파이프라인은 CSC가 애플리케이션 코드를 업데이트할 때마다 자동으로 애플리케이션을 배포하고 테스트하는 시스템이다.
(개발 진행 관리)
PaaS CSP에서는 클라우드 네이티브 애플리케이션의 개발 진행 관리를 CSC에 제공하는 것이 좋다.
※ 참고 : 개발 진행 관리는 애플리케이션 이름, 개발 단계 및 개발 작업을 담당하는 팀의 정보를 추적한다.
※ 참고 : 개발 단계에는 클라우드 네이티브 애플리케이션의 요구사항 분석, 계획, 설계, 개발, 테스트 및 출시가 포함된다.
(버그 추적)
PaaS CSP는 클라우드 네이티브 애플리케이션의 소프트웨어 버그 및 소프트웨어 버그 해결 상태를 추적하기 위해 CSC에 버그 추적을 제공하는 것이 좋다.
※ 참고 : 소프트웨어 버그는 소프트웨어 생성 시 발생하는 오류, 결함 또는 결점이다. 소프트웨어 버그로 인해 컴퓨터 소프트웨어가 예상치 못한 결과를 생성하거나 의도하지 않은 방식으로 작동한다.
(코드 관리)
PaaS CSP는 코드 저장, 코드 버전 관리, 코드 개발자 정보 관리, 코드 업데이트 기록 관리 등을 위해 CSC에 코드 관리 기능을 제공하는 것이 좋다.
3-4. PaaS의 관리 요구 사항
(서비스 카탈로그)
PaaS CSP는 CSC 구독을 위한 PaaS 목록을 전달하기 위해 서비스 카탈로그를 제공해야 한다.
※ 참고 : 서비스 카탈로그에는 서비스 이름, 서비스 설명, 서비스 이미지 위치, 서비스 사용자 매뉴얼 등과 같은 세부 서비스 정보가 포함된다.
(통합 서비스 출시 절차)
PaaS CSP는 새로 개발된 PaaS 서비스를 퍼블리싱하기 위해 서비스 출시 절차를 제공해야 한다.
※ 참고 : PaaS의 서비스 릴리스 절차는 CSP에서 개발한 소프트웨어를 게시하는 일련의 프로세스이다. 서비스 출시 절차가 끝나면 이 새로운 PaaS 서비스를 서비스 카탈로그에서 사용할 수 있으며 CSC를 통해 구독할 수도 있다.
※ 참고 : 서비스 릴리스 절차에는 일반적으로 서비스 이미지 및 서비스 배포 파일 업로드 및 저장, 서비스 보안 확인, 서비스 가용성 확인, 서비스 소개 정보 작성 및 서비스 간 카탈로그 추가가 포함된다.
(서비스 가입 목록)
PaaS CSP는 가입 정보를 제공해야 하며, 여기에는 최소한 CSC 정보, CSC가 가입한 PaaS 정보, 가입 시간이 포함된다.
(서비스 인스턴스화)
PaaS CSP는 CSC에 가입한 후 PaaS의 서비스 인스턴스화를 제공해야 한다.
※ 참고 : PaaS의 서비스 인스턴스화에는 대상 서비스의 해당 이미지 및 배포 파일 선택, 대상 유형 및 리소스 수 선택, 서비스 배포 및 서비스 구성이 포함된다.
(서비스 접근 제어)
PaaS CSP는 PaaS에 대한 CSC 접근 제어를 제공해야 한다.
(서비스 업그레이드 관리)
PaaS CSP는 PaaS에 대한 서비스 업그레이드 관리를 제공해야 한다.
※ 참고 : PaaS의 서비스 업그레이드 관리에는 PaaS 서비스 버전 제어, PaaS 서비스 업그레이드 진행 추적, 업그레이드 실패 시 롤백 제어, 이전 버전 PaaS 서비스와 새 버전 PaaS 서비스 간의 트래픽에 대한 로드 밸런싱 제어, PaaS 서비스에 대한 CSC 알림이 포함된다.
(서비스 인스턴스 삭제)
PaaS CSP에서는 PaaS 서비스 인스턴스 삭제 기능을 제공해야 한다.
※ 참고 : PaaS 서비스 인스턴스를 삭제함으로써 CSP는 PaaS 서비스에 대한 CSC의 액세스를 중지하고 데이터베이스에서 서비스 인스턴스 및 관련 데이터를 삭제하고 서비스 인스턴스에서 사용하는 물리적 및 가상 리소스를 해제한다.
(다양한 리소스 유형을 갖춘 서비스)
PaaS CSP는 다양한 리소스 유형에 따라 PaaS 서비스 선택을 제공하는 것이 좋다.
※ 참고 : 여러 리소스 유형에는 컨테이너, 가상 머신 및 베어메탈이 포함된다. PaaS 서비스는 모든 리소스 유형으로 인스턴스화된다.
(서비스 메트릭 모니터링)
PaaS CSP는 서비스 상태 및 성능을 반영하기 위해 PaaS 서비스 인스턴스의 메트릭에 대한 모니터링을 제공해야 한다.
※ 참고 : PaaS 서비스 인스턴스의 메트릭은 CSP와 CSC 모두에서 PaaS 서비스가 제대로 작동하는지 확인하는 데 사용된다. 일반적으로 서비스 수준 지표와 리소스 수준 지표가 포함된다.
※ 참고 : 리소스 수준 메트릭은 PaaS 서비스 인스턴스에서 사용하는 물리적 및 가상 리소스의 메트릭이다. 일반적인 리소스 수준 지표에는 CPU 속도, 메모리 속도, 디스크 속도, 네트워크 처리량, CPU당 스레드 등이 포함된다.
※ 참고 : 서비스 수준 메트릭은 일반적으로 PaaS 서비스 개발자가 정의하며 서비스마다 다르다. 데이터베이스의 경우 메트릭에는 데이터베이스 처리량, 데이터베이스 응답 시간, 쿼리 오류 수 등이 포함된다.
(서비스 메트릭 관리)
PaaS CSP는 CSC가 구독하는 PaaS 서비스 인스턴스의 메트릭에 대한 관리를 제공해야 한다.
※ 참고 : PaaS 서비스 인스턴스의 메트릭에 대한 관리에는 PaaS 서비스 인스턴스의 메트릭에 대한 저장, 삭제, 검색 및 내보내기가 포함된다.
4. 보안 고려사항
PaaS를 포함한 클라우드 컴퓨팅 환경 내에서 고려해야 할 보안 측면은 CSP에 대한 보안 문제로 해결된다.
특히 [ITU-T X.1601] 표준화 문서는 보안 위협과 과제를 분석하고 이러한 위협을 완화하고 보안 과제를 해결할 수 있는 보안 기능을 설명한다.
5. 클라우드 네이티브 PaaS 유즈 케이스(Use case of cloud native PaaS)
5-1. 클라우드 네이티브 애플리케이션 배포 지원
<유즈 케이스: 클라우드 네이티브 애플리케이션 배포 지원>


6. 결언
클라우드 네이티브는 클라우드 컴퓨팅 제공 모델의 이점을 활용하는 애플리케이션 구축 및 실행 접근 방법이다. 클라우드 네이티브의 핵심은 애플리케이션을 어떻게 만들고 배포하는지에 있고 애플리케이션이 퍼블릭 클라우드에 위치하는 것이 일반적이다.
CNCF(Cloud Native Computing Foundation)가 정의하는 클라우드 네이티브의 의미는 조금 더 좁아서, 컨테이너화되는 오픈소스 소프트웨어 스택을 사용하는 것을 의미한다.
여기서 애플리케이션의 각 부분은 자체 컨테이너에 패키징되고 동적 오케스트레이션을 통해 각 부분이 적극적으로 스케줄링 및 관리되어 리소스 사용률을 최적화하며, 마이크로서비스 지향성을 통해 애플리케이션의 전체적인 민첩성과 유지 관리 편의성을 높인다.
클라우드 네이티브 애플리케이션의 현대의 클라우드 컴퓨팅 플랫폼에 필요한 탄력적이고 분산된 방식으로 실행되도록 설계되는데, 이러한 앱은 느슨하게 결합된다.
즉, 코드가 인프라 구성 요소에 고정되지 않으므로 수요에 따라 앱을 확장, 축소할 수 있고 불변적 인프라 개념을 포용할 수 있다. 일반적으로 이러한 아키텍처는 마이크로서비스를 사용해서 구축되지만 반드시 그런 것만은 아니다.
기존 방식 대비 클라우드 네이티브 애플리케이션의 가장 큰 차이점은 애플리케이션을 구축, 제공, 운영하는 방식에 있는데, 클라우드 서비스를 활용한다는 것은 컨테이너와 같이 민첩하고 확장 가능한 구성 요소를 사용해서 재사용 가능한 개별적인 기능을 제공하는 것을 의미한다.
이러한 기능은 멀티 클라우드와 같은 여러 기술 경계 간에 매끄럽게 통합되므로 제공 팀이 반복 가능한 자동화와 오케스트레이션을 사용해서 빠르게 작업 과정을 반복할 수 있다.
클라우드 네이티브 앱 개발에는 일반적으로 데브옵스, 애자일 방법론, 마이크로서비스, 클라우드 플랫폼, 쿠버네티스 및 도커와 같은 컨테이너, 그리고 CI/CD 제공이 포함된다.
즉, 새롭고 현대적인 모든 애플리케이션 개발 및 배포 방법이 사용된다.
따라서 플랫폼 서비스(PaaS) 모델을 사용하는 것이 클라우드 네이티브 애플리케이션을 개발하는 일반적인 방법이다. 물론 필수는 아니지만 PaaS를 사용하면 여러 가지가 훨씬 더 편해진다.
클라우드 고객의 대다수는 기반 하드웨어에서 애플리케이션을 추상화하는 데 도움이 되는 인프라 서비스(IaaS)로 시작한다.
그러나 PaaS는 부가적인 계층을 추가해서 기반 OS를 추상화하므로 기업은 OS 호출에 대해 신경 쓸 필요 없이 애플리케이션의 비즈니스 논리에 온전히 집중할 수 있다.
본 고에서는 국제 표준화 문서인 ITU-T Y.3532: Cloud computing - Functional requirements of Platform as a Service for cloud native applications에서 제시하고 있는 클라우드 네이티브 애플리케이션을 위한 PaaS(Platform as a Service)의 개요 및 기능적 요구 사항에 대하여 기술하였는데 국제 표준화 문서 최초로 PaaS의 기능적 요구사항이 정의되고 유즈 케이스를 통해 구체적으로 어떻게 사용되는지를 보여주었다는 것에서 큰 의미를 갖는다.
참 고 문 헌
- ITU-T Y.3532 (2023) Cloud computing - Functional requirements of Platform as a Service for cloud native applications
- ITU-T Y.3501 (2016) Cloud computing - Framework and high-level requirements
- ISO/IEC TS 23267 (2020) Information technology ? Cloud computing ? Common technologies and techniques
- ITU-T X.1601 (2015) Security framework for cloud computing
저작권 정책
K-ICT 클라우드혁신센터의 저작물인 『국제표준문서에서 클라우드 네이티브 애플리케이션을 위한 PaaS(Platform as a Service)의 기능적 요구 사항』은 K-ICT 클라우드혁신센터에서 상명대학교 서광규 교수에게 집필 자문을 받아 발행한 전문정보 브리프로, K-ICT 클라우드혁신센터의 저작권정책에 따라 이용할 수 있습니다.
다만 사진, 이미지, 인용자료 등 제3자에게 저작권이 있는 경우 원저작권자가 정한 바에 따릅니다.