KR102471532B1 - 버전 관리 시스템을 적용한 클라우드 오케스트레이션 템플릿 관리 방법 및 장치 - Google Patents

버전 관리 시스템을 적용한 클라우드 오케스트레이션 템플릿 관리 방법 및 장치 Download PDF

Info

Publication number
KR102471532B1
KR102471532B1 KR1020200143533A KR20200143533A KR102471532B1 KR 102471532 B1 KR102471532 B1 KR 102471532B1 KR 1020200143533 A KR1020200143533 A KR 1020200143533A KR 20200143533 A KR20200143533 A KR 20200143533A KR 102471532 B1 KR102471532 B1 KR 102471532B1
Authority
KR
South Korea
Prior art keywords
template
resource information
version
cloud orchestration
object storage
Prior art date
Application number
KR1020200143533A
Other languages
English (en)
Other versions
KR20220058132A (ko
Inventor
염근혁
박준석
송현아
정수민
고상원
전민규
엄정빈
박도준
Original Assignee
부산대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 부산대학교 산학협력단 filed Critical 부산대학교 산학협력단
Priority to KR1020200143533A priority Critical patent/KR102471532B1/ko
Publication of KR20220058132A publication Critical patent/KR20220058132A/ko
Application granted granted Critical
Publication of KR102471532B1 publication Critical patent/KR102471532B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/72Code refactoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

클라우드 오케스트레이션 템플릿 관리 방법 및 장치가 개시된다. 본 발명의 일실시예에 따른, 클라우드 오케스트레이션 템플릿 관리 방법은, 가상머신(VM, Virtual Machine)의 구동 요청에 연동하여, 상기 구동 요청에 포함되는 사용자 요구사항을 식별하는 단계; 상기 사용자 요구사항에 의해 정해지는 버전의 템플릿을, 오브젝트 스토리지(Object Storage)에서 검색하는 단계; 및 상기 오브젝트 스토리지로부터 검색된 제1 템플릿을 오케스트레이터(Orchestrator)로 전달 함으로써, 상기 오케스트레이터에서 상기 사용자 요구사항을 구현하는 가상머신을 구동하도록 하는 단계를 포함하여 구성한다.

Description

버전 관리 시스템을 적용한 클라우드 오케스트레이션 템플릿 관리 방법 및 장치{METHOD AND DEVICE TO MANAGE CLOUD ORCHESTRATION TEMPLATE WITH VERSION MANAGEMENT SYSTEM}
본 발명은, 클라우드 오케스트레이션 템플릿을 관리하는 시스템 및 프로세스를 제안 함으로써, 사용자 요구사항 맞춤형 클라우드 환경을 구축하기 위한, 버전 관리 시스템을 적용한 클라우드 오케스트레이션 템플릿 관리 방법 및 장치를 제공한다.
특히, 본 발명에서는, 사용자의 요구사항에 따른 버전의 가상머신을 생성 및 관리할 수 있는 템플릿을 사용함으로써, 탄력적인 클라우드 환경을 구축하는 기반 구조로 활용할 수 있게 하는, 클라우드 오케스트레이션 템플릿 관리 방법 및 장치를 제안한다.
종래에는, 오픈스택 기반의 클라우드 오케스트레이션 방법 및 장치, 클라우드 컴퓨팅 환경에서 다목적 가상머신 배치 방법 및 장치 만을 한정하여 기술하고 있다.
예컨대, 한국 등록번호 제2106223호(2020.04.23)에서는, 템플릿 스크립트의 생성 요청에 연동하여, 상기 생성 요청에 포함되는 사용자 요구사항을 분류하는 단계, 상기 사용자 요구사항을 기능적 요구사항으로 분류하는 경우, 상기 기능적 요구사항에 속한 선택 요구사항(Option PR)에 의해 결정된 선택 항목에 대해 쉘 스크립트를 작성하는 단계, 및 상기 쉘 스크립트를 실행하는 템플릿 스크립트를 생성 함으로써, 상기 템플릿 스크립트를 전달 받은 히트 오케스트레이터(Heat Orchestrator)에서 상기 기능적 요구사항을 구현하는 VM(Virtual Machine)이 구동하도록 하는 단계를 포함하는, 오픈스택 기반의 클라우드 오케스트레이션 방법을 개시하고 있다.
한국 등록번호 제2106223호는, 오픈소스 클라우드 플랫폼인 오픈스택에서 사용자 요구사항을 기능적, 비기능적 요구사항으로 분류하여 템플릿 스크립트를 생성하는 데에 구성을 한정하고 있다. 이 때, 템플릿 스크립트는 클라우드 오케스트레이션을 위해 매핑 테이블에 기반하여 생성되어 사용된다.
또한, 한국 등록번호 제2129389호는, 가상머신 배치장치에 의해 수행되고, 가상머신(VM)을 배치하기 위한 서비스 요청에 따라 리스트를 생성하는 리스트 생성 과정; 상기 생성된 리스트와 연관된 상기 서비스 요청의 목적에 대해 가중치(weight)를 계산하는 가중치 계산 과정; 상기 가중치에 따라 다목적 함수와 연관된 상기 서비스 요청의 목적에 대한 평가를 수행하는 목적 함수 평가 과정; 및 해당 가상머신(VM)의 평가 점수가 초기 선정된 VM의 평가 점수보다 높으면 상기 해당 가상머신을 타겟 머신으로 선정하는 타겟 머신 선정 과정을 포함하여, 클라우드 환경을 통해 데이터 센터 자원을 가상머신 배치 방식을 통해 언제 어디서나 관리할 수 있게 하는, 클라우드 컴퓨팅 환경에서의 다목적 가상머신 배치 방법을 개시하고 있다.
한국 등록번호 제2129389호는, 서비스 요청에 따라 생성할 수 있는 가상머신의 리스트를 나타내고 목적 함수 평가 과정을 거친 뒤 타겟 머신을 선정하여 배치하는 데에 한정되어 있다. 한국 등록번호 제2129389호에서는 각각의 가상머신이 초기 선정된 가상머신과 평가 점수를 통해서 비교되며, 리소스 낭비와 전력 소비에 관한 제한조건을 만족시키는 것을 특징으로 하는 배치 방법을 개시하고 있다.
따라서, 종래 개시되어 있는 발명들과 차별되도록, 사용자 맞춤형 클라우드 환경을 구축하기 위해, 기본 템플릿을 관리 및 제공하여 가상머신의 변경이 필요할 시 활용하며, 이 후 가상머신의 자원이 변경되는 부분을 정확하게 식별하는 기술이 필수적으로 요구되고 있다.
본 발명의 실시예는, 사용자 맞춤형 클라우드 환경을 구축하기 위해, 기본 템플릿을 관리 및 제공하여 가상머신의 변경이 필요할 시 활용하며, 이 후 가상머신의 자원이 변경되는 부분을 정확하게 식별하는, 버전 관리 시스템을 적용한 클라우드 오케스트레이션 템플릿 관리 방법 및 장치를 제공하는 것을 해결과제로 한다.
또한, 본 발명의 실시예는, 식별된 자원의 변경사항을 바탕으로 갱신된 버전을 가지는 새로운 템플릿을 생성하거나, 또는 기존의 템플릿을 재사용하는 방법을 활용하여 가상머신을 자동으로 배치 및 효율적으로 관리하는 것을 목적으로 한다.
본 발명의 일실시예에 따른, 버전 관리 시스템을 적용한 클라우드 오케스트레이션 템플릿 관리 방법은, 가상머신(VM, Virtual Machine)의 구동 요청에 연동하여, 상기 구동 요청에 포함되는 사용자 요구사항을 식별하는 단계; 상기 사용자 요구사항에 의해 정해지는 버전의 템플릿을, 오브젝트 스토리지(Object Storage)에서 검색하는 단계; 및 상기 오브젝트 스토리지로부터 검색된 제1 템플릿을 오케스트레이터(Orchestrator)로 전달 함으로써, 상기 오케스트레이터에서 상기 사용자 요구사항을 구현하는 가상머신을 구동하도록 하는 단계를 포함할 수 있다.
또한, 본 발명의 실시예에 따른, 버전 관리 시스템을 적용한 클라우드 오케스트레이션 템플릿 관리 장치는, 가상머신(VM, Virtual Machine)의 구동 요청에 연동하여, 상기 구동 요청에 포함되는 사용자 요구사항을 식별하는 식별부; 상기 사용자 요구사항에 의해 정해지는 버전의 템플릿을, 오브젝트 스토리지(Object Storage)에서 검색하는 검색부; 및 상기 오브젝트 스토리지로부터 검색된 제1 템플릿을 오케스트레이터(Orchestrator)로 전달 함으로써, 상기 오케스트레이터에서 상기 사용자 요구사항을 구현하는 가상머신을 구동하도록 하는 처리부를 포함하여 구성할 수 있다.
본 발명의 일실시예에 따르면, 사용자 맞춤형 클라우드 환경을 구축하기 위해, 기본 템플릿을 관리 및 제공하여 가상머신의 변경이 필요할 시 활용하며, 이 후 가상머신의 자원이 변경되는 부분을 정확하게 식별하는, 클라우드 오케스트레이션 템플릿 관리 방법 및 장치를 제공 할 수 있다.
또한, 본 발명의 일실시예에 따르면, 식별된 자원의 변경사항을 바탕으로 갱신된 버전을 가지는 새로운 템플릿을 생성하거나, 또는 기존의 템플릿을 재사용하는 방법을 활용하여 가상머신을 자동으로 배치 및 효율적으로 관리 할 수 있다.
도 1은 본 발명의 버전 관리 시스템을 적용한 클라우드 오케스트레이션 템플릿 관리 장치의 구성을 도시한 블록도이다.
도 2는 본 발명에서 제시하는 클라우드 오케스트레이션 템플릿 관리 장치의 동작을 나타내는 구조도이다.
도 3은 본 발명에 따른, 버전 관리 시스템의 프로세스에 대한 흐름도이다.
도 4는 본 발명의 일실시예에 따른, 사용자의 요구상항에 따라, Ubuntu Linux 64-bit를 선택한 경우를 보여주는 도면이다.
도 5는 도 4와 관련하여, HOT 템플릿을 통해 VM을 생성하는 일례를 보여주는 도면이다.
도 6은 본 발명의 다른 실시예에 따른, 사용자의 요구상항에 따라, CentOS 7 x86-64를 선택한 경우를 보여주는 도면이다.
도 7은 도 6와 관련하여, HOT 템플릿을 통해 VM을 생성하는 일례를 보여주는 도면이다.
도 8은 Major 버전이 갱신된 index파일의 일례를 설명하기 위한 도면이다.
도 9는 본 발명의 다른 실시예에 따른, 사용자에 따른, 사용자의 요구상항에 따라, C언어를 선택한 경우를 보여주는 도면이다.
도 10은 도 9와 관련하여, HOT 템플릿을 통해 VM을 생성하는 일례를 보여주는 도면이다.
도 11은 본 발명의 다른 실시예에 따른, 사용자의 요구상항에 따라, C++언어를 선택한 경우를 보여주는 도면이다.
도 12는 도 11과 관련하여, HOT 템플릿을 통해 VM을 생성하는 일례를 보여주는 도면이다.
도 13은 Major 버전이 갱신된 index파일의 일례를 설명하기 위한 도면이다.
도 14는 사용자의 요구상항에 따라, 학생 10명을 선택한 경우를 보여주는 도면이다.
도 15는 사용자의 요구상항에 따라, 학생 100명을 선택한 경우를 보여주는 도면이다.
도 16은 도 14와 도 15와 관련하여, Minor 버전이 갱신된 index파일의 일례를 보여주는 도면이다.
도 17은 각 버전의 리소스 정보를 포함하고 있는 인덱스 파일의 일례를 보여주는 도면이다.
도 18은 템플릿 파일과 인덱스 파일이 저장된 오브젝트 스토리지의 일례를 보여주는 도면이다.
도 19는 본 발명의 일실시예에 따른, 클라우드 오케스트레이션 템플릿 관리 방법을 도시한 흐름도이다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 본 발명의 버전 관리 시스템을 적용한 클라우드 오케스트레이션 템플릿 관리 장치의 구성을 도시한 블록도이다.
도 1을 참조하면, 본 발명의 일실시예에 따른, 버전 관리 시스템을 적용한 클라우드 오케스트레이션 템플릿 관리 장치(이하, '클라우드 오케스트레이션 템플릿 관리 장치'라 약칭함, 100)는, 식별부(110), 검색부(120), 및 처리부(130)를 포함하여 구성할 수 있다. 또한, 클라우드 오케스트레이션 템플릿 관리 장치(100)는, 실시예에 따라, 리소스 관리부(140)를 추가적으로 포함할 수 있다.
식별부(110)는 가상머신(VM, Virtual Machine)의 구동 요청에 연동하여, 상기 구동 요청에 포함되는 사용자 요구사항을 식별한다. 즉, 식별부(110)는 사용자가 원하는 사양(specifications)으로 구동되는 가상머신의 활성화를 위해, 상기 사용자로부터 입력된 구동 요청에서, 사용자 요구사항을 추출하는 역할을 할 수 있다.
상기 사용자 요구사항은, 구동될 가상머신이 보유하고 있어야 하는 기능별 요구(기능적 요구사항)와, 상기 가상머신으로의 접속에 관한 외적 요구(비기능 요구사항)를 포함하는 개념일 수 있다.
검색부(120)는 상기 사용자 요구사항에 의해 정해지는 버전의 템플릿을, 오브젝트 스토리지(Object Storage)에서 검색한다. 즉, 검색부(120)는 사용자 요구사항을 모두 만족하는 기작성된 템플릿이, 오브젝트 스토리지에 저장되어 있는 경우, 해당 버전의 템플릿을 오브젝트 스토리지로부터 검색하는 역할을 할 수 있다.
예컨대, 사용자 요구사항으로서, [사용자수 '15', Disk '40GB', image 'windows 8.1', RAM '4096MB']이 식별되는 경우, 검색부(120)는, 해당 사용자 요구사항을 모두 가지고 있는, 버전 V1.1의 템플릿을 오브젝트 스토리지로부터 검색할 수 있다.
처리부(130)는 상기 오브젝트 스토리지로부터 검색된 제1 템플릿을 오케스트레이터(Orchestrator)로 전달 함으로써, 상기 오케스트레이터에서 상기 사용자 요구사항을 구현하는 가상머신을 구동하도록 한다. 즉, 처리부(130)는 사용자 요구사항을 모두 만족하여 오브젝트 스토리지로부터 검색된 템플릿(제1 템플릿)을 이용하여 템플릿 스크립트를 생성한 후 오케스트레이터에 전달 함으로써, 상기 템플릿 스크립트를 전달 받은 오케스트레이터에서 상기 사용자 요구사항을 구현하는 가상머신(VM)을 구동하도록 하는 역할을 할 수 있다. 여기서 템플릿 스크립트는, 오케스트레이터를 통해 사용자 요구사항을 가상환경 하에서 실현하도록 하는 명령어, 명령구문 등 일 수 있다.
만약, 상기 버전의 템플릿이, 상기 오브젝트 스토리지에 저장되지 않으면, 처리부(130)는, 기본 템플릿(Base Template)을 이용하여, 상기 버전에 해당하는 제1 템플릿을 작성한다. 즉, 처리부(130)는 사용자 요구사항을 모두 만족하는 기작성된 템플릿이, 오브젝트 스토리지에 저장되어 있지 않는 경우, 규정의 기본 템플릿을 원형으로 하여, 해당 버전의 템플릿을 직접 작성하는 역할을 할 수 있다.
상술의 예시에서, 기본 템플릿이 [사용자수 '1', Disk '20GB', image 'windows 8.1', RAM '20458MB']로 규정되는 경우, 처리부(130)는 이러한 기본 템플릿에서, 사용자수/ Disk/RAM을 변경하여, 상기 사용자 요구사항 [사용자수 '15', Disk '40GB', image 'windows 8.1', RAM '4096MB']을 모두 가지는, 버전 V1.1의 템플릿을 직접 작성할 수 있다.
이후, 처리부(130)는 상기 작성된 제1 템플릿을 상기 오케스트레이터로 전달할 수 있다. 즉, 처리부(130)는 직접 작성한 제1 템플릿을 이용하여 생성되는 템플릿 스크립트를 오케스트레이터에 전달 함으로써, 상기 오케스트레이터에서, 상기 템플릿 스크립트에 의거하여, 상기 사용자 요구사항을 구현하는 가상머신(VM)을 구동하도록 할 수 있다.
사용자가 요구하는 버전의 템플릿이, 오브젝트 스토리지에 저장되는지를 확인하기 위해, 클라우드 오케스트레이션 템플릿 관리 장치(100)는 리소스 관리부(140)를 추가적으로 포함할 수 있다.
리소스 관리부(140)는 인덱스 파일(Index File)을 통해, 상기 오브젝트 스토리지에 저장되는 모든 템플릿에 대한 리소스 정보를 확인한다. 즉, 리소스 관리부(140)는 오브젝트 스토리지와 연동되어 템플릿의 리소스 정보를 기록하는 인덱스 파일로부터, 오브젝트 스토리지에 저장되어 있는 템플릿 각각에 대한 리소스 정보를 제공받아 확인하는 역할을 할 수 있다.
또한, 리소스 관리부(140)는, 상기 리소스 정보에서, 상기 사용자 요구사항에 상응하는 리소스 정보를 찾지 못하면, 상기 버전의 템플릿이, 상기 오브젝트 스토리지에 저장되지 않는 것으로 확인할 수 있다. 즉, 리소스 관리부(140)는 리소스 정보를 분석하여, 사용자 요구사항에 해당되는 리소스 정보가 없다고 판별 함으로써, 요구되는 버전의 템플릿이, 오브젝트 스토리지에 실제 저장되지 않음을 확인할 수 있다.
상기 버전의 템플릿이, 상기 오브젝트 스토리지에 저장되지 않음에 따라, 처리부(130)는, 상기 기본 템플릿의 리소스 정보를, 상기 사용자 요구사항에 상응하도록 수정할 수 있다. 즉, 처리부(130)는 규정의 기본 템플릿이 갖는 리소스 정보를, 사용자 요구사항에 맞춰 조정할 수 있다.
이후, 처리부(130)는, 상기 기본 템플릿에 상기 수정된 리소스 정보를 대응시켜, 상기 제1 템플릿으로 작성할 수 있다. 즉, 처리부(130)는 조정된 리소스 정보가 대응되는 기본 템플릿을, 제1 템플릿으로서 새로 작성할 수 있다.
또한, 처리부(130)는, 상기 수정에 따른, 상기 기본 템플릿의 리소스 정보로부터의 변경되는 정도를, 'Major' 또는 'Minor'로 구분하여, 상기 제1 템플릿의 리소스 정보에 기재한다. 즉, 처리부(130)는 작성된 제1 템플릿이, 기본 템플릿과 어느 정도로 차이가 나는지를, 'Major' 또는 'Minor'로 태깅하여 구분할 수 있다.
기본 템플릿에서, 하드웨어 리소스인 '사용자수/Disk/RAM'이 변경되는 버전 V1.1의 템플릿을 작성하는 상술의 예시에 대해, 처리부(130)는 버전 V1.1의 템플릿에 'Minor'로 태깅하여 구분할 수 있다.
만약, 기본 템플릿에서, 하드웨어 리소스, 뿐만 아니라 운영체계인 image까지 변경되는 버전2.0 [사용자수 '60', Disk '80GB', image 'Ubuntu 18.04', RAM '8192MB']에 대해, 처리부(130)는 버전 V2.0의 템플릿에 'Major'로 태깅하여 구분할 수 있다.
또한, 리소스 관리부(140)는, 상기 제1 템플릿의 리소스 정보를 상기 인덱스 파일에 기록하는 동시에, 상기 오브젝트 스토리에 상기 제1 템플릿을 저장할 수 있다. 즉, 리소스 관리부(140)는, 직접 작성한 템플릿에 대해, 리소스 정보를 인덱스 파일에 기록하여, 인덱스 파일에서 리소스 정보가 체계적으로 관리되게 하고, 또한 작성한 템플릿을 오브젝트 스토리에 보관되게 하여, 추후 템플릿에 대한 검색에 대응되게 할 수 있다.
상기 사용자 요구사항에 대한 변화가 발생하면, 처리부(130)는, 상기 제1 템플릿과 연관되어, 상기 가상머신이 구동 중인지를 판단하고, 상기 판단 결과, 구동 중이면, 상기 제1 템플릿의 리소스 정보를, 인덱스 파일에서 추출하며, 상기 추출된 제1 템플릿의 리소스 정보를, 상기 변화된 사용자 요구사항에 상응하도록 수정하고, 상기 제1 템플릿에 상기 수정된 리소스 정보를 대응시켜, 제2 템플릿으로 갱신할 수 있다.
즉, 처리부(130)는 기존 사용자 요구사항에 따른 제1 템플릿이 가상머신으로 구현되는 도중에, 사용자 요구사항에 변화가 발생하면, 제1 템플릿의 리소스 정보를 조정하여, 변화된 사용자 요구사항에 맞는 템플릿을 작성한 후, 제2 템플릿으로 갱신함으로써, 변화된 사용자 요구사항에 따른 제2 템플릿이 가상머신으로 구현되도록 할 수 있다.
반면, 상기 판단 결과, 구동 중이 아니면, 처리부(130)는, 기본 템플릿의 리소스 정보를, 상기 변화된 사용자 요구사항에 상응하도록 수정하고, 상기 기본 템플릿에 상기 수정된 리소스 정보가 대응시켜, 상기 제2 템플릿으로 작성할 수 있다.
즉, 처리부(130)는 제1 템플릿이 가상머신으로 현재 구현되지 않고, 단지 오브젝트 스토리지에 유지되고 있다면, 변화된 사용자 요구사항에 따른 템플릿을, 기본 템플릿의 리소스 정보에 대한 조정을 통해 작성한 후, 이를 제2 템플릿으로서 오케스트레이터로 전달 함으로써, 오케스트레이터에서 변화된 사용자 요구사항을 구현하는 가상머신을 구동하도록 할 수 있다.
본 발명의 일실시예에 따르면, 사용자 맞춤형 클라우드 환경을 구축하기 위해, 기본 템플릿을 관리 및 제공하여 가상머신의 변경이 필요할 시 활용하며, 이 후 가상머신의 자원이 변경되는 부분을 정확하게 식별하는, 클라우드 오케스트레이션 템플릿 관리 방법 및 장치를 제공 할 수 있다.
또한, 본 발명의 일실시예에 따르면, 식별된 자원의 변경사항을 바탕으로 갱신된 버전을 가지는 새로운 템플릿을 생성하거나, 또는 기존의 템플릿을 재사용하는 방법을 활용하여 가상머신을 자동으로 배치 및 효율적으로 관리 할 수 있다.
도 2는 본 발명에서 제시하는 클라우드 오케스트레이션 템플릿 관리 장치의 동작을 나타내는 구조도이다.
도 2에 포함되는 주요 수단(컴포넌트)의 역할 및 동작은 아래와 같다.
Version Management System(210)은 오케스트레이션 템플릿의 버전을 관리하는 역할을 할 수 있다. Version Management System(210)은 사용자의 요구사항을 바탕으로 Object Storage(220)에서 템플릿의 버전 탐색을 수행하고, 기존에 저장된 템플릿을 재사용하거나, 새로운 버전의 템플릿을 생성함으로써 클라우드 환경을 구축하기 위한 요소들을 관리하는 역할을 할 수 있다.
Object Storage(220)는 객체를 저장하는 저장소일 수 있다. Object Storage(220)는 버전 정보를 가진 오케스트레이션 템플릿과, 각각의 템플릿 파일에 대한 연결 정보를 가지고 있는 Index File(240)을 저장할 수 있다.
Orchestrator(230)는 클라우드 자원을, 오케스트레이션 템플릿을 기반으로 통합하는 일련의 작업을 수행하는 장치로서, 오케스트레이션 템플릿을 해석하여 가상머신을 생성시키는 엔진일 수 있다.
Index File(240)은 Object Storage(220)에 저장된 모든 버전들의 리소스 정보를 가지고 있는 파일일 수 있다. Version Management System(210)은 Index File(240)을 통해, 템플릿 버전 탐색을 수행하고, 새로운 템플릿 버전을 만들어 내는 등의 작업을 할 수 있다. 즉, Index File(240)은 각각의 버전에 해당하는 템플릿 파일과 버전 관리 시스템을 연결해주는 역할을 할 수 있다.
기본 템플릿(Base Template)은 V1.0에 해당하는 초기 버전으로, 오케스트레이션 템플릿이 가져야 할 리소스 정보 및 버전 정보를 포함할 수 있다. 각 버전의 오케스트레이션 템플릿은, 기본 템플릿에서 나타내는 형태로 구성되며, 변경된 리소스 정보의 수정 수준에 따라 Major와 Minor로 구분되어 갱신될 수 있다.
Version Management System(210)은 아래의 프로세스로 동작한다.
(1)Version Management System(210)은, 사용자가 요청한 요구사항을 수신한다. Version Management System(210)은, 사용자로부터 사용자 자신이 필요로 하는 가상머신의 환경에 대한 요구사항(CPU, Memory, Disk 사용량, 이미지 등)을 요청 받을 수 있다.
(2)Version Management System(210)은, 요청된 요구사항에 기반한 템플릿 버전을 탐색할 수 있다. Version Management System(210)은, 사용자의 요구사항에 상응하는 정보를 기반으로, 해당 가상머신을 생성하기 위한 템플릿에 대한 버전 탐색을 수행할 수 있다. 만약 요구사항에 맞는 템플릿이 존재하는 경우, Version Management System(210)은, 탐색된 버전의 템플릿을 반환한다. 만약, 요구사항에 맞는 템플릿이 존재하지 않는 경우, Version Management System(210)은, 템플릿 버전 관리 규칙에 기반하여, 기본 템플릿을 활용하여 새로운 템플릿을 생성한다.
(3)Version Management System(210)은, 가상머신(VM)을 생성할 수 있게 한다. Version Management System(210)은, 탐색된 템플릿 또는 생성된 템플릿을 Orchestrator(230)에 전달하여, Orchestrator(230)에서 템플릿 파일에 적합한 자원들이 할당된 가상머신을 생성할 수 있게 한다.
(4)Version Management System(210)은, 사용자가 요구사항을 변경하면 이를 수신한다. 변경된 요구사항의 수신에 따라, 앞서 생성되어 운영 중인 가상머신에 대해, 하드웨어나 운영체제 등의 변경이 발생하면, Version Management System(210)은, 규정된 템플릿 버전 관리 규칙에 따라 템플릿과 버전 정보를 갱신한다.
또한, Version Management System(210)은, 기본 템플릿이 저장된 Object Storage(220)에 새로 생성된 템플릿을 저장한다. 또한, Version Management System(210)은, 템플릿 파일의 저장과 동시에 Index File(240)의 갱신을 통해, 템플릿 간의 버전 추적 관계를 형성할 수 있다.
[표 1]은 템플릿 간의 버전 추적 관계를 저장하는 버전 관리 테이블의 일례이다.
Figure 112020116028846-pat00001
[표 1]은 템플릿 버전 관리 규칙에 따라, 저장된 템플릿과 버전 정보가 관리되는 일례를 보여준다.
[표 1]에서, 버전 V1.0에서 V1.1로 업데이트되는 경우에는, 여러 개의 항목이 변경되었지만 모두 하드웨어 리소스 (Disk, RAM, 사용자 수) 만이 추가되거나 개선된 것임을 알 수 있다.
Version Management System(210)은, 하드웨어 리소스 만이 변경되는, 버전 V1.0에서 V1.1로의 업데이트시에, 변경되는 항목의 개수와 관계없이 <Minor Version>을 적용할 수 있다.
반면, 버전 V1.0에서, V2.0 또는 V3.0으로 업데이트되는 경우는, image(운영체제)가 바뀌는 케이스이고 이는 대규모 변경이 될 수 있다. 이에 따라, Version Management System(210)은, 하드웨어 리소스의 변경 여부와는 관계없이, 버전 V1.0에서, V2.0 또는 V3.0으로 업데이트시에 <Major Version>을 적용할 수 있다.
Version Management System(210)은, 클라우드 환경에서 탄력적인 운영이 가능하게 하도록 템플릿 파일에 대해 버전 관리를 적용하고 있다.
처음 생성되는 템플릿 파일은, 기본 템플릿으로 정의하고, 표 1에서와 같이 V1.0의 버전명으로 기재한다.
또한, 변경된 리소스 정보의 수정 수준에 따라, Version Management System(210)은, <Major Version>, <Minor Version> 개념을 정의한다.
<Major Version>은 대규모 변경이 발생했을 때, 버전 번호를 갱신하는 것을 의미한다. 예를 들어, 기본 템플릿에서 운영체제를 변경하는 경우에는, <Major Version>의 유형으로 구분할 수 있다.
<Minor Version>은 기존 버전에 없던 기능이 추가되거나 개선되었을 때, 버전 번호를 갱신하는 것을 의미한다. 예를 들어, 기본 템플릿에서 하드웨어 리소스를 변경하는 경우에는, <Minor Version>의 유형으로 구분할 수 있다.
도 3은 본 발명에 따른, 버전 관리 시스템의 프로세스에 대한 흐름도이다.
단계 310에서, 버전 관리 시스템은, 서비스 UI를 통하여 가상 머신의 환경에 대한 요구사항을 요청할 수 있다.
단계 320에서, 버전 관리 시스템은, 토큰(Token)을 자동 발급할 수 있다.
단계 330에서, 버전 관리 시스템은, 해당 요구사항에 상응하는 템플릿(Template) 파일 버전을 검색할 수 있다.
단계 340에서, 버전 관리 시스템은, 해당 요구사항에 상응하는 템플릿(Template) 파일 버전이 있는지를 판단한다.
파일 버전이 없을 경우(단계 340의 No 방향), 단계 350에서, 버전 관리 시스템은, 제안된 요구사항에 따라 템플릿(Template) 파일 저장 및 버전을 갱신한다.
파일 버전이 있는 경우(단계 310의 Yes 방향), 단계 360에서, 버전 관리 시스템은, 해당 버전의 템플릿(Template) 파일을 기반으로 가상머신을 생성한다.
단계 370에서, 버전 관리 시스템은, 생성된 가상머신에서 리소스를 변경할 것인지를 판단한다.
리소스 변경이 있는 경우(단계 370의 Yes 방향), 버전 관리 시스템은, 단계 310으로 리턴한다.
리소스 변경이 없는 경우(단계 370의 No 방향), 버전 관리 시스템은 종료한다.
이하에서는, 본 발명의 클라우드 오케스트레이션 템플릿 관리 장치를, 코딩 교육 시스템에 적용한 사례를 예시하여 설명한다.
클라우드 오케스트레이션 템플릿 관리 장치(100)는, 강의 개설을 위한 강사의 가상머신을 생성할 수 있다.
클라우드 오케스트레이션 템플릿 관리 장치(100)는, 강사의 요구사항에 따라, 학생을 가르치기 위해 강의실 역할을 하는 가상머신을 생성할 수 있다. 클라우드 오케스트레이션 템플릿 관리 장치(100)는, 생성한 가상머신을 통해 교육 영상 혹은 프로그램 코드와 같은 파일을 제공할 수 있고, 해당 가상머신에 접속한 학생들에게 제공받은 자료로 교육 서비스를 제공 할 수 있다.
클라우드 오케스트레이션 템플릿 관리 장치(100)는, 가상머신 리소스 조정에 의한 버전을 갱신할 수 있다.
클라우드 오케스트레이션 템플릿 관리 장치(100)는, 사용하고 있는 가상머신의 리소스가 현재 환경에서 적합하지 않을 시, 버전 갱신을 수행할 수 있다. 클라우드 오케스트레이션 템플릿 관리 장치(100)는, 운영체제나 새로운 교육 언어와 같은 대규모 변경을 Major로 정할 수 있다. 또는, 클라우드 오케스트레이션 템플릿 관리 장치(100)는, 가상머신의 오버로드를 줄이기 위한 컴퓨트 환경(시스템 리소스)의 변화에 대해, Minor로 정한 후 해당하는 기준에 따라 가장 적합한 환경의 템플릿을 사용할 수 있다.
클라우드 오케스트레이션 템플릿 관리 장치(100)는, 시나리오별 요구사항에 따른 리소스를 조정할 수 있다.
클라우드 오케스트레이션 템플릿 관리 장치(100)는, 최초 생성한 가상머신에서 여러 상황에 따라 리소스 조정을 필요로 할 수 있다.
[표 2]는 클라우드 기반의 코딩 교육 시스템에서 템플릿 버전 관리를 위한 매핑 테이블이다.
Figure 112020116028846-pat00002
[표 2]는 교육 환경을 구축하기 위한 조건과 변수를 나타낸 것으로, 각 변수에 따라 조정되는 리소스를 각각 다르게 설정하고 있음을 알 수 있다.
Major 버전을 갱신하는 조건 중 하나는 이미지(운영체제)이다.
도 4는 본 발명의 일실시예에 따른, 사용자의 요구상항에 따라, Ubuntu Linux 64-bit를 선택한 경우를 보여주는 도면이다.
도 5는 도 4와 관련하여, HOT 템플릿을 통해 VM을 생성하는 일례를 보여주는 도면이다.
강사가 도 4에서와 같이, 웹 인터페이스를 통해 Ubuntu Linux 64-bit의 운영체제를 선택하면, 클라우드 오케스트레이션 템플릿 관리 장치(100)는, 이를 바탕으로 도 5와 같은, HOT 템플릿을 통해 VM을 생성할 수 있다.
도 6은 본 발명의 다른 실시예에 따른, 사용자의 요구상항에 따라, CentOS 7 x86-64를 선택한 경우를 보여주는 도면이다.
도 7은 도 6와 관련하여, HOT 템플릿을 통해 VM을 생성하는 일례를 보여주는 도면이다.
강사가 도 6에서와 같이, 웹 인터페이스를 통해 CentOS 7 x86-64의 운영체제를 선택하면, 클라우드 오케스트레이션 템플릿 관리 장치(100)는, 이를 바탕으로 도 7과 같은, HOT 템플릿을 통해 VM을 생성할 수 있다.
도 8은 Major 버전이 갱신된 index파일의 일례를 설명하기 위한 도면이다.
클라우드 오케스트레이션 템플릿 관리 장치(100)는, 도 8과 같이, 기존에 없는 이미지(운영체제)의 코딩 환경을 생성 함으로써, 갱신된 Major 버전을 index 파일에 저장할 수 있다.
클라우드 오케스트레이션 템플릿 관리 장치(100)는, 어떤 ‘코딩 언어(Language)’를 가르칠 것인가에 따라 실행하기 위해 필요한 소프트웨어를 자동으로 설치할 수 있다. 해당 조건은 Software Configuration을 통해 구현되며 복수 선택이 가능한 항목으로, 클라우드 오케스트레이션 템플릿 관리 장치(100)는, 선택한 언어 중 하나라도 다른 경우 Major 버전으로 구분할 수 있다.
도 9는 본 발명의 다른 실시예에 따른, 사용자에 따른, 사용자의 요구상항에 따라, C언어를 선택한 경우를 보여주는 도면이다.
도 10은 도 9와 관련하여, HOT 템플릿을 통해 VM을 생성하는 일례를 보여주는 도면이다.
도 9와 도 10에서, 클라우드 오케스트레이션 템플릿 관리 장치(100)는, C언어를 선택할 시 생성되는 템플릿을 통해, C언어를 컴파일 할 수 있는 gcc 컴파일러가 설치된 VM을 생성할 수 있다.
도 11은 본 발명의 다른 실시예에 따른, 사용자의 요구상항에 따라, C++언어를 선택한 경우를 보여주는 도면이다.
도 12는 도 11과 관련하여, HOT 템플릿을 통해 VM을 생성하는 일례를 보여주는 도면이다.
도 11과 도 12에서, 클라우드 오케스트레이션 템플릿 관리 장치(100)는, C++ 언어를 선택할 시 생성되는 템플릿을 통해, C++언어를 컴파일 할 수 있는 g++ 컴파일러가 설치된 VM을 생성할 수 있다.
클라우드 오케스트레이션 템플릿 관리 장치(100)는, 기존에 없는 언어의 코딩 환경을 생성하여, Major 버전을 갱신할 수 있다.
도 13은 Major 버전이 갱신된 index파일의 일례를 설명하기 위한 도면이다.
가상머신의 탄력적인 운영을 위하여 교육이 끝난 가상머신은, 자동으로 종료할 수 있도록 한다. 이 때, 클라우드 오케스트레이션 템플릿 관리 장치(100)는, 교육 데이터를 유지할 수 있는 기간을 지정하여 교육이 끝난 이후에도 지정한 기간동안 가상머신이 유지되게 함으로써 교육에 사용된 자료들을 이용할 수 있도록 한다.
Minor 버전 갱신의 첫 번째 조건은, 사용자 수이다. 가상머신에 접속하는 사용자가 많을수록 증가하는 오버헤드를 처리하기 위해서는, CPU의 개수를 늘이거나 RAM의 크기를 키워야 한다. 반대로 접속하는 사람에 비해 리소스가 많이 주어져 있다면, 자원의 낭비를 피하기 위해서는, 리소스 할당을 줄여주어야 한다.
예컨대, 클라우드 오케스트레이션 템플릿 관리 장치(100)는, 사용자 20명을 기준으로 하나의 CPU를 제공한다.
도 14는 사용자의 요구상항에 따라, 학생 10명을 선택한 경우를 보여주는 도면이다.
도 15는 사용자의 요구상항에 따라, 학생 100명을 선택한 경우를 보여주는 도면이다.
도 16은 도 14와 도 15와 관련하여, Minor 버전이 갱신된 index파일의 일례를 보여주는 도면이다.
도 14의 10명의 학생의 경우, 도 15의 100명의 학생의 경우에 대해, 클라우드 오케스트레이션 템플릿 관리 장치(100)는, 도 16에서와 같이, 학생수에 따라 flavor를 각각 “m1.small”, “m1.xlarge”로 할당 할 수 있다.
또한 도 16에서와 같이, 클라우드 오케스트레이션 템플릿 관리 장치(100)는, flavor가 변경될 경우 minor버전을 갱신할 수 있다.
그리고 교육 기간에 따라서 가상머신이 저장해야 할 파일의 양이 많아질 것이므로, 클라우드 오케스트레이션 템플릿 관리 장치(100)는, 교육을 오래 할수록 큰 용량의 Storage를 배치해준다.
또한, 시험과 같은 특수한 경우, 가상머신의 사용자 수가 급격히 증가할 수 있으므로, 클라우드 오케스트레이션 템플릿 관리 장치(100)는, 해당 이벤트 기간의 오버헤드를 처리할 수 있도록 flavor를 교체해준다.
도 17은 각 버전의 리소스 정보를 포함하고 있는 인덱스 파일의 일례를 보여주는 도면이다.
클라우드 오케스트레이션 템플릿 관리 장치(100)는, 도 17에서와 같이, Major와 Minor로 정한 기준에 따라 버전을 구분하고 버전에 따른 리소스 정보를 인덱스 파일에 저장할 수 있다.
도 18은 템플릿 파일과 인덱스 파일이 저장된 오브젝트 스토리지의 일례를 보여주는 도면이다.
클라우드 오케스트레이션 템플릿 관리 장치(100)는, 도 18과 같이, 생성된 모든 템플릿 파일을, 오브젝트 스토리지에 저장할 수 있다. 또한, 클라우드 오케스트레이션 템플릿 관리 장치(100)는, 사용자 요구사항의 변경 또는 클라우드 운영 환경의 변화에 따라, 저장된 템플릿을 재사용하여 사용자 맞춤형 클라우드 환경을 구축할 수 있다.
이하, 도 19에서는 본 발명의 실시예들에 따른 클라우드 오케스트레이션 템플릿 관리 장치(100)의 작업 흐름을 상세히 설명한다.
본 실시예에 따른 클라우드 오케스트레이션 템플릿 관리 방법은 클라우드 오케스트레이션 템플릿 관리 장치(100)에 의해 수행될 수 있다.
도 19는 본 발명의 일실시예에 따른, 클라우드 오케스트레이션 템플릿 관리 방법을 도시한 흐름도이다.
우선, 클라우드 오케스트레이션 템플릿 관리 장치(100)는, 가상머신의 구동 요청에 연동하여, 상기 구동 요청에 포함되는 사용자 요구사항을 식별한다(1910). 단계(1910)는 사용자가 원하는 사양으로 구동되는 가상머신의 활성화를 위해, 상기 사용자로부터 입력된 구동 요청에서, 사용자 요구사항을 추출하는 과정일 수 있다.
상기 사용자 요구사항은, 구동될 가상머신이 보유하고 있어야 하는 기능별 요구(기능적 요구사항)와, 상기 가상머신으로의 접속에 관한 외적 요구(비기능 요구사항)를 포함하는 개념일 수 있다.
또한, 클라우드 오케스트레이션 템플릿 관리 장치(100)는, 상기 사용자 요구사항에 의해 정해지는 버전의 템플릿을, 오브젝트 스토리지에서 검색한다(1920). 단계(1920)는 사용자 요구사항을 모두 만족하는 기작성된 템플릿이, 오브젝트 스토리지에 저장되어 있는 경우, 해당 버전의 템플릿을 오브젝트 스토리지로부터 검색하는 과정일 수 있다.
예컨대, 사용자 요구사항으로서, [사용자수 '15', Disk '40GB', image 'windows 8.1', RAM '4096MB']이 식별되는 경우, 클라우드 오케스트레이션 템플릿 관리 장치(100)는, 해당 사용자 요구사항을 모두 가지고 있는, 버전 V1.1의 템플릿을 오브젝트 스토리지로부터 검색할 수 있다.
계속해서, 클라우드 오케스트레이션 템플릿 관리 장치(100)는, 상기 오브젝트 스토리지로부터 검색된 제1 템플릿을 오케스트레이터로 전달 함으로써, 상기 오케스트레이터에서 상기 사용자 요구사항을 구현하는 가상머신을 구동하도록 한다(1930). 단계(1930)는 사용자 요구사항을 모두 만족하여 오브젝트 스토리지로부터 검색된 템플릿(제1 템플릿)을 이용하여 템플릿 스크립트를 생성한 후 오케스트레이터에 전달 함으로써, 상기 템플릿 스크립트를 전달 받은 오케스트레이터에서 상기 사용자 요구사항을 구현하는 가상머신(VM)을 구동하도록 하는 과정일 수 있다. 여기서 템플릿 스크립트는, 오케스트레이터를 통해 사용자 요구사항을 가상환경 하에서 실현하도록 하는 명령어, 명령구문 등 일 수 있다.
만약, 상기 버전의 템플릿이, 상기 오브젝트 스토리지에 저장되지 않으면, 클라우드 오케스트레이션 템플릿 관리 장치(100)는, 기본 템플릿을 이용하여, 상기 버전에 해당하는 제1 템플릿을 작성한다. 즉, 클라우드 오케스트레이션 템플릿 관리 장치(100)는 사용자 요구사항을 모두 만족하는 기작성된 템플릿이, 오브젝트 스토리지에 저장되어 있지 않는 경우, 규정의 기본 템플릿을 원형으로 하여, 해당 버전의 템플릿을 직접 작성할 수 있다.
상술의 예시에서, 기본 템플릿이 [사용자수 '1', Disk '20GB', image 'windows 8.1', RAM '20458MB']로 규정되는 경우, 클라우드 오케스트레이션 템플릿 관리 장치(100)는 이러한 기본 템플릿에서, 사용자수/ Disk/RAM을 변경하여, 상기 사용자 요구사항 [사용자수 '15', Disk '40GB', image 'windows 8.1', RAM '4096MB']을 모두 가지는, 버전 V1.1의 템플릿을 직접 작성할 수 있다.
이후, 클라우드 오케스트레이션 템플릿 관리 장치(100)는 상기 작성된 제1 템플릿을 상기 오케스트레이터로 전달할 수 있다. 즉, 클라우드 오케스트레이션 템플릿 관리 장치(100)는 직접 작성한 제1 템플릿을 이용하여 생성되는 템플릿 스크립트를 오케스트레이터에 전달 함으로써, 상기 오케스트레이터에서, 상기 템플릿 스크립트에 의거하여, 상기 사용자 요구사항을 구현하는 가상머신(VM)을 구동하도록 할 수 있다.
사용자가 요구하는 버전의 템플릿이, 오브젝트 스토리지에 저장되는지를 확인하기 위해, 클라우드 오케스트레이션 템플릿 관리 장치(100)는 인덱스 파일(Index File)을 통해, 상기 오브젝트 스토리지에 저장되는 모든 템플릿에 대한 리소스 정보를 확인한다. 즉, 클라우드 오케스트레이션 템플릿 관리 장치(100)는 오브젝트 스토리지와 연동되어 템플릿의 리소스 정보를 기록하는 인덱스 파일로부터, 오브젝트 스토리지에 저장되어 있는 템플릿 각각에 대한 리소스 정보를 제공받아 확인 할 수 있다.
또한, 클라우드 오케스트레이션 템플릿 관리 장치(100)는, 상기 리소스 정보에서, 상기 사용자 요구사항에 상응하는 리소스 정보를 찾지 못하면, 상기 버전의 템플릿이, 상기 오브젝트 스토리지에 저장되지 않는 것으로 확인할 수 있다. 즉, 클라우드 오케스트레이션 템플릿 관리 장치(100)는 리소스 정보를 분석하여, 사용자 요구사항에 해당되는 리소스 정보가 없다고 판별 함으로써, 요구되는 버전의 템플릿이, 오브젝트 스토리지에 실제 저장되지 않음을 확인할 수 있다.
상기 버전의 템플릿이, 상기 오브젝트 스토리지에 저장되지 않음에 따라, 클라우드 오케스트레이션 템플릿 관리 장치(100)는, 상기 기본 템플릿의 리소스 정보를, 상기 사용자 요구사항에 상응하도록 수정할 수 있다. 즉, 클라우드 오케스트레이션 템플릿 관리 장치(100)는 규정의 기본 템플릿이 갖는 리소스 정보를, 사용자 요구사항에 맞춰 조정할 수 있다.
이후, 클라우드 오케스트레이션 템플릿 관리 장치(100)는, 상기 기본 템플릿에 상기 수정된 리소스 정보를 대응시켜, 상기 제1 템플릿으로 작성할 수 있다. 즉, 클라우드 오케스트레이션 템플릿 관리 장치(100)는 조정된 리소스 정보가 대응되는 기본 템플릿을, 제1 템플릿으로서 새로 작성할 수 있다.
또한, 클라우드 오케스트레이션 템플릿 관리 장치(100)는, 상기 수정에 따른, 상기 기본 템플릿의 리소스 정보로부터의 변경되는 정도를, 'Major' 또는 'Minor'로 구분하여, 상기 제1 템플릿의 리소스 정보에 기재한다. 즉, 클라우드 오케스트레이션 템플릿 관리 장치(100)는 작성된 제1 템플릿이, 기본 템플릿과 어느 정도로 차이가 나는지를, 'Major' 또는 'Minor'로 태깅하여 구분할 수 있다.
기본 템플릿에서, 하드웨어 리소스인 '사용자수/Disk/RAM'이 변경되는 버전 V1.1의 템플릿을 작성하는 상술의 예시에 대해, 클라우드 오케스트레이션 템플릿 관리 장치(100)는 버전 V1.1의 템플릿에 'Minor'로 태깅하여 구분할 수 있다.
만약, 기본 템플릿에서, 하드웨어 리소스, 뿐만 아니라 운영체계인 image까지 변경되는 버전2.0 [사용자수 '60', Disk '80GB', image 'Ubuntu 18.04', RAM '8192MB']에 대해, 클라우드 오케스트레이션 템플릿 관리 장치(100)는 버전 V2.0의 템플릿에 'Major'로 태깅하여 구분할 수 있다.
또한, 클라우드 오케스트레이션 템플릿 관리 장치(100)는, 상기 제1 템플릿의 리소스 정보를 상기 인덱스 파일에 기록하는 동시에, 상기 오브젝트 스토리에 상기 제1 템플릿을 저장할 수 있다. 즉, 클라우드 오케스트레이션 템플릿 관리 장치(100)는, 직접 작성한 템플릿에 대해, 리소스 정보를 인덱스 파일에 기록하여, 인덱스 파일에서 리소스 정보가 체계적으로 관리되게 하고, 또한 작성한 템플릿을 오브젝트 스토리에 보관되게 하여, 추후 템플릿에 대한 검색에 대응되게 할 수 있다.
상기 사용자 요구사항에 대한 변화가 발생하면, 클라우드 오케스트레이션 템플릿 관리 장치(100)는, 상기 제1 템플릿과 연관되어, 상기 가상머신이 구동 중인지를 판단하고, 상기 판단 결과, 구동 중이면, 상기 제1 템플릿의 리소스 정보를, 인덱스 파일에서 추출하며, 상기 추출된 제1 템플릿의 리소스 정보를, 상기 변화된 사용자 요구사항에 상응하도록 수정하고, 상기 제1 템플릿에 상기 수정된 리소스 정보를 대응시켜, 제2 템플릿으로 갱신할 수 있다.
즉, 클라우드 오케스트레이션 템플릿 관리 장치(100)는 기존 사용자 요구사항에 따른 제1 템플릿이 가상머신으로 구현되는 도중에, 사용자 요구사항에 변화가 발생하면, 제1 템플릿의 리소스 정보를 조정하여, 변화된 사용자 요구사항에 맞는 템플릿을 작성한 후, 제2 템플릿으로 갱신함으로써, 변화된 사용자 요구사항에 따른 제2 템플릿이 가상머신으로 구현되도록 할 수 있다.
반면, 상기 판단 결과, 구동 중이 아니면, 클라우드 오케스트레이션 템플릿 관리 장치(100)는, 기본 템플릿의 리소스 정보를, 상기 변화된 사용자 요구사항에 상응하도록 수정하고, 상기 기본 템플릿에 상기 수정된 리소스 정보가 대응시켜, 상기 제2 템플릿으로 작성할 수 있다.
즉, 클라우드 오케스트레이션 템플릿 관리 장치(100)는 제1 템플릿이 가상머신으로 현재 구현되지 않고, 단지 오브젝트 스토리지에 유지되고 있다면, 변화된 사용자 요구사항에 따른 템플릿을, 기본 템플릿의 리소스 정보에 대한 조정을 통해 작성한 후, 이를 제2 템플릿으로서 오케스트레이터로 전달 함으로써, 오케스트레이터에서 변화된 사용자 요구사항을 구현하는 가상머신을 구동하도록 할 수 있다.
본 발명의 일실시예에 따르면, 사용자 맞춤형 클라우드 환경을 구축하기 위해, 기본 템플릿을 관리 및 제공하여 가상머신의 변경이 필요할 시 활용하며, 이 후 가상머신의 자원이 변경되는 부분을 정확하게 식별하는, 클라우드 오케스트레이션 템플릿 관리 방법 및 장치를 제공 할 수 있다.
또한, 본 발명의 일실시예에 따르면, 식별된 자원의 변경사항을 바탕으로 갱신된 버전을 가지는 새로운 템플릿을 생성하거나, 또는 기존의 템플릿을 재사용하는 방법을 활용하여 가상머신을 자동으로 배치 및 효율적으로 관리 할 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.
100 : 클라우드 오케스트레이션 템플릿 관리 장치
110 : 식별부 120 : 검색부
130 : 처리부 140 : 리소스 관리부

Claims (17)

  1. 가상머신(VM, Virtual Machine)의 구동 요청에 연동하여,
    상기 구동 요청에 포함되는 사용자 요구사항을 식별하는 단계;
    상기 사용자 요구사항에 의해 정해지는 버전의 템플릿을, 오브젝트 스토리지(Object Storage)에서 검색하는 단계;
    상기 오브젝트 스토리지로부터 검색된 제1 템플릿을 오케스트레이터(Orchestrator)로 전달 함으로써, 상기 오케스트레이터에서 상기 사용자 요구사항을 구현하는 가상머신을 구동하도록 하는 단계;
    상기 사용자 요구사항에 대한 변화가 발생하면,
    상기 제1 템플릿과 연관되어, 상기 가상머신이 구동 중인지를 판단하는 단계;
    상기 판단 결과, 구동 중이면,
    상기 제1 템플릿의 리소스 정보를, 인덱스 파일에서 추출하는 단계;
    상기 추출된 제1 템플릿의 리소스 정보를, 상기 변화된 사용자 요구사항에 상응하도록 수정하는 단계; 및
    상기 제1 템플릿에 상기 수정된 리소스 정보를 대응시켜, 제2 템플릿으로 갱신하는 단계
    를 포함하는 버전 관리 시스템을 적용한 클라우드 오케스트레이션 템플릿 관리 방법.
  2. 제1항에 있어서,
    상기 버전의 템플릿이, 상기 오브젝트 스토리지에 저장되어 있지 않아, 상기 오브젝트 스토리지로부터 검색되지 않는 경우,
    기본 템플릿(Base Template)을 이용하여, 상기 버전에 해당하는 제1 템플릿을 작성하는 단계; 및
    상기 작성된 제1 템플릿을 상기 오케스트레이터로 전달하는 단계
    를 더 포함하는 버전 관리 시스템을 적용한 클라우드 오케스트레이션 템플릿 관리 방법.
  3. 제2항에 있어서,
    인덱스 파일(Index File)을 통해, 상기 오브젝트 스토리지에 저장되는 모든 템플릿에 대한 리소스 정보를 확인하는 단계; 및
    상기 리소스 정보에서, 상기 사용자 요구사항에 상응하는 리소스 정보를 찾지 못하면,
    상기 버전의 템플릿이, 상기 오브젝트 스토리지에 저장되지 않는 것으로 확인하는 단계
    를 더 포함하는 버전 관리 시스템을 적용한 클라우드 오케스트레이션 템플릿 관리 방법.
  4. 제3항에 있어서,
    상기 제1 템플릿을 작성하는 단계는,
    상기 기본 템플릿의 리소스 정보를, 상기 사용자 요구사항에 상응하도록 수정하는 단계; 및
    상기 기본 템플릿에 상기 수정된 리소스 정보를 대응시켜, 상기 제1 템플릿으로 작성하는 단계
    를 포함하는 버전 관리 시스템을 적용한 클라우드 오케스트레이션 템플릿 관리 방법.
  5. 제4항에 있어서,
    상기 제1 템플릿을 작성하는 단계는,
    상기 수정에 따른, 상기 기본 템플릿의 리소스 정보로부터의 변경되는 정도를, 'Major' 또는 'Minor'로 구분하여, 상기 제1 템플릿의 리소스 정보에 기재하는 단계
    를 더 포함하는 버전 관리 시스템을 적용한 클라우드 오케스트레이션 템플릿 관리 방법.
  6. 제4항에 있어서,
    상기 클라우드 오케스트레이션 템플릿 관리 방법은,
    상기 제1 템플릿의 리소스 정보를 상기 인덱스 파일에 기록하는 동시에, 상기 오브젝트 스토리에 상기 제1 템플릿을 저장하는 단계
    를 더 포함하는 버전 관리 시스템을 적용한 클라우드 오케스트레이션 템플릿 관리 방법.
  7. 삭제
  8. 제1항에 있어서,
    상기 판단 결과, 구동 중이 아니면,
    기본 템플릿의 리소스 정보를, 상기 변화된 사용자 요구사항에 상응하도록 수정하는 단계; 및
    상기 기본 템플릿에 상기 수정된 리소스 정보가 대응시켜, 상기 제2 템플릿으로 작성하는 단계
    를 더 포함하는 버전 관리 시스템을 적용한 클라우드 오케스트레이션 템플릿 관리 방법.
  9. 가상머신(VM, Virtual Machine)의 구동 요청에 연동하여,
    상기 구동 요청에 포함되는 사용자 요구사항을 식별하는 식별부;
    상기 사용자 요구사항에 의해 정해지는 버전의 템플릿을, 오브젝트 스토리지(Object Storage)에서 검색하는 검색부; 및
    상기 오브젝트 스토리지로부터 검색된 제1 템플릿을 오케스트레이터(Orchestrator)로 전달 함으로써, 상기 오케스트레이터에서 상기 사용자 요구사항을 구현하는 가상머신을 구동하도록 하는 처리부
    를 포함하고, 상기 사용자 요구사항에 대한 변화가 발생하면,
    상기 처리부는,
    상기 제1 템플릿과 연관되어, 상기 가상머신이 구동 중인지를 판단하고,
    상기 판단 결과, 구동 중이면,
    상기 제1 템플릿의 리소스 정보를, 인덱스 파일에서 추출하며, 상기 추출된 제1 템플릿의 리소스 정보를, 상기 변화된 사용자 요구사항에 상응하도록 수정하고, 상기 제1 템플릿에 상기 수정된 리소스 정보를 대응시켜, 제2 템플릿으로 갱신하는
    버전 관리 시스템을 적용한 클라우드 오케스트레이션 템플릿 관리 장치.
  10. 제9항에 있어서,
    상기 버전의 템플릿이, 상기 오브젝트 스토리지에 저장되어 있지 않아, 상기 오브젝트 스토리지로부터 검색되지 않는 경우,
    상기 처리부는,
    기본 템플릿(Base Template)을 이용하여, 상기 버전에 해당하는 제1 템플릿을 작성하고,
    상기 작성된 제1 템플릿을 상기 오케스트레이터로 전달하는
    버전 관리 시스템을 적용한 클라우드 오케스트레이션 템플릿 관리 장치.
  11. 제10항에 있어서,
    인덱스 파일(Index File)을 통해, 상기 오브젝트 스토리지에 저장되는 모든 템플릿에 대한 리소스 정보를 확인하고, 상기 리소스 정보에서, 상기 사용자 요구사항에 상응하는 리소스 정보를 찾지 못하면, 상기 버전의 템플릿이, 상기 오브젝트 스토리지에 저장되지 않는 것으로 확인하는 리소스 관리부
    를 더 포함하는 버전 관리 시스템을 적용한 클라우드 오케스트레이션 템플릿 관리 장치.
  12. 제11항에 있어서,
    상기 처리부는,
    상기 기본 템플릿의 리소스 정보를, 상기 사용자 요구사항에 상응하도록 수정하고,
    상기 기본 템플릿에 상기 수정된 리소스 정보를 대응시켜, 상기 제1 템플릿으로 작성하는
    버전 관리 시스템을 적용한 클라우드 오케스트레이션 템플릿 관리 장치.
  13. 제12항에 있어서,
    상기 처리부는,
    상기 수정에 따른, 상기 기본 템플릿의 리소스 정보로부터의 변경되는 정도를, 'Major' 또는 'Minor'로 구분하여, 상기 제1 템플릿의 리소스 정보에 기재하는
    버전 관리 시스템을 적용한 클라우드 오케스트레이션 템플릿 관리 장치.
  14. 제12항에 있어서,
    상기 리소스 관리부는,
    상기 제1 템플릿의 리소스 정보를 상기 인덱스 파일에 기록하는 동시에, 상기 오브젝트 스토리에 상기 제1 템플릿을 저장하는
    버전 관리 시스템을 적용한 클라우드 오케스트레이션 템플릿 관리 장치.
  15. 삭제
  16. 제9항에 있어서,
    상기 판단 결과, 구동 중이 아니면,
    상기 처리부는,
    기본 템플릿의 리소스 정보를, 상기 변화된 사용자 요구사항에 상응하도록 수정하고,
    상기 기본 템플릿에 상기 수정된 리소스 정보가 대응시켜, 상기 제2 템플릿으로 작성하는
    버전 관리 시스템을 적용한 클라우드 오케스트레이션 템플릿 관리 장치.
  17. 제1항 내지 제6항, 제8항 중 어느 한 항의 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록매체.
KR1020200143533A 2020-10-30 2020-10-30 버전 관리 시스템을 적용한 클라우드 오케스트레이션 템플릿 관리 방법 및 장치 KR102471532B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200143533A KR102471532B1 (ko) 2020-10-30 2020-10-30 버전 관리 시스템을 적용한 클라우드 오케스트레이션 템플릿 관리 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200143533A KR102471532B1 (ko) 2020-10-30 2020-10-30 버전 관리 시스템을 적용한 클라우드 오케스트레이션 템플릿 관리 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20220058132A KR20220058132A (ko) 2022-05-09
KR102471532B1 true KR102471532B1 (ko) 2022-11-28

Family

ID=81582356

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200143533A KR102471532B1 (ko) 2020-10-30 2020-10-30 버전 관리 시스템을 적용한 클라우드 오케스트레이션 템플릿 관리 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102471532B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011117958A1 (ja) * 2010-03-20 2011-09-29 株式会社Pfu 仮想マシン管理装置、仮想マシン管理方法、及びプログラム
US20160014042A1 (en) 2010-10-05 2016-01-14 Accenture Global Services Limited System and method for cloud enterprise services
US20160366233A1 (en) 2015-06-10 2016-12-15 Platform9, Inc. Private Cloud as a service
US20190340037A1 (en) 2012-06-29 2019-11-07 Emc Corporation Blueprint-driven environment template creation in a virtual infrastructure

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102106223B1 (ko) * 2018-10-16 2020-05-28 부산대학교 산학협력단 오픈스택 기반의 클라우드 오케스트레이션 방법 및 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011117958A1 (ja) * 2010-03-20 2011-09-29 株式会社Pfu 仮想マシン管理装置、仮想マシン管理方法、及びプログラム
US20160014042A1 (en) 2010-10-05 2016-01-14 Accenture Global Services Limited System and method for cloud enterprise services
US20190340037A1 (en) 2012-06-29 2019-11-07 Emc Corporation Blueprint-driven environment template creation in a virtual infrastructure
US20160366233A1 (en) 2015-06-10 2016-12-15 Platform9, Inc. Private Cloud as a service

Also Published As

Publication number Publication date
KR20220058132A (ko) 2022-05-09

Similar Documents

Publication Publication Date Title
US10635409B2 (en) System and method for improving software code quality using artificial intelligence techniques
CN110168495B (zh) 经训练的人工智能对象的可搜索数据库
US20180307945A1 (en) Installation and operation of different processes of an an engine adapted to different configurations of hardware located on-premises and in hybrid environments
US11189269B2 (en) Adversarial training data augmentation for generating related responses
US10901804B2 (en) Apparatus and method to select services for executing a user program based on a code pattern included therein
US11055090B2 (en) Component management platform
US8498887B2 (en) Estimating project size
JP2017062767A5 (ko)
BR102019003207A2 (pt) uso de modelo de aprendizagem de máquinas e processamento de linguagem natural para gerenciar e atribuir tarefas
US11256484B2 (en) Utilizing natural language understanding and machine learning to generate an application
CN106796508A (zh) 在云平台上的快速部署
CN106528201B (zh) 游戏中加载动画的方法和装置
US11551437B2 (en) Collaborative information extraction
CN109542410A (zh) 规则引擎系统、方法、设备及存储介质
US11061739B2 (en) Dynamic infrastructure management and processing
US11741371B2 (en) Automatically generating diverse text
US20230063131A1 (en) Dynamic goal-oriented dialogue with virtual agents
US11183076B2 (en) Cognitive content mapping and collating
CN114519098A (zh) 基于交互期间的用户行为的自学习人工智能语音响应
US11182416B2 (en) Augmentation of a text representation model
KR102471532B1 (ko) 버전 관리 시스템을 적용한 클라우드 오케스트레이션 템플릿 관리 방법 및 장치
Pizka et al. A brief top-down and bottom-up philosophy on software evolution
US11461715B2 (en) Cognitive analysis to generate and evaluate implementation plans
US11822896B2 (en) Contextual diagram-text alignment through machine learning
US11340895B2 (en) Automatic generation of logically consistent application code change groups

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant