KR102277715B1 - 가상 머신들을 관리하는 장치 및 방법 - Google Patents

가상 머신들을 관리하는 장치 및 방법 Download PDF

Info

Publication number
KR102277715B1
KR102277715B1 KR1020167012293A KR20167012293A KR102277715B1 KR 102277715 B1 KR102277715 B1 KR 102277715B1 KR 1020167012293 A KR1020167012293 A KR 1020167012293A KR 20167012293 A KR20167012293 A KR 20167012293A KR 102277715 B1 KR102277715 B1 KR 102277715B1
Authority
KR
South Korea
Prior art keywords
virtual machine
deployment
request
deployed
machine
Prior art date
Application number
KR1020167012293A
Other languages
English (en)
Other versions
KR20160067180A (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 브이엠웨어, 인코포레이티드
Publication of KR20160067180A publication Critical patent/KR20160067180A/ko
Application granted granted Critical
Publication of KR102277715B1 publication Critical patent/KR102277715B1/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
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/45595Network integration; Enabling network access in virtual machine instances
    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

가상 머신들을 관리하는 장치 및 방법이 개시된다. 일 예시 방법은 제1 가상 머신이 제2 가상 머신의 파라미터에 의존함에 따라 상기 제1 가상 머신의 배치가 중단되었음을 결정하는 단계, 상기 제2 가상 머신이 배치되었고 저장소에 설정 정보가 저장되도록 하였음을 검출하는 단계, 프로세서를 통해, 상기 저장소로부터 상기 파라미터를 포함하는 상기 설정 정보를 검색하는 단계, 및 상기 프로세서를 통해, 상기 제1 가상 머신이 배치를 재개하도록 하는 상기 파라미터를 상기 제1 가상 머신에 전송하는 단계를 포함한다.

Description

가상 머신들을 관리하는 장치 및 방법{METHODS AND APPARATUS TO MANAGE VIRTUAL MACHINES}
본 발명은 일반적으로 가상 컴퓨팅에 관한 것이고, 보다 구체적으로, 가상 머신들을 관리하는(manage) 장치 및 방법에 관한 것이다.
본 발명은, "가상 클라우드 환경을 관리하는 장치 및 방법(METHODS AND APPARATUS TO MANAGE A VIRTUAL CLOUD ENVIRONMENT)"제목의, 2013년 10월 11에 출원된, 미국 특허 가출원 번호 61/889,971의 이점을 청구하는 두 특허(both of which claim the benefit of), "가상 머신들을 관리하는 장치 및 방법(METHODS AND APPARATUS TO MANAGE VIRTUAL MACHINES)" 제목의, 2014년 6월 25일에 출원된, 미국 특허 출원 번호 14/315,296의 연장(continuation)이고, "가상 머신들을 관리하는 장치 및 방법(METHODS AND APPARATUS TO MANAGE VIRTUAL MACHINES)" 제목의, 2014년 6월 25일에 출원된, 미국 특허 출원 번호 14/315,297의 연장이다. 미국 특허 출원 번호 14/315,296, 미국 특허 출원 번호 14/315,297, 및 미국 특허 가출원 번호 61/889,971은 본 명세서에 그 전체가 참고로 인용된다(are hereby incorporated herein by reference in their entirety).
가상화 컴퓨터 시스템들(Virtualizing computer systems)은 다중 하드웨어 컴퓨터들 간에 컴퓨터 시스템들을 이동하는 것(moving computer systems among multiple hardware computers), 확장성(scalability), 컴퓨터 시스템들을 복사하는 것(replicating), 단일 하드웨어 컴퓨터(single hardware computer)에 다중 컴퓨터 시스템들을 실행하는(execute) 기능(ability) 등과 같은 이점들을 제공한다. 가상화된 컴퓨터 시스템들을 관리하고/또는 컴퓨터 시스템을 가상화시키기 위한 예시 시스템들은 2007년 9월 21일에 출원된, "가상 및 현실 머신들을 관리하는 시스템 및 방법(METHOD AND SYSTEM FOR MANAGING VIRTUAL AND REAL MACHINES)"제목의, 미국 특허 출원 번호 11/903,374과, 미국 특허 번호 8,171,485로 부여된, 2007년 3월 26일에 출원된, "가상 및 현실 머신들을 관리하는 시스템 및 방법(METHOD AND SYSTEM FOR MANAGING VIRTUAL AND REAL MACHINES)" 제목의, 미국 특허 가출원 번호 60/919,965과, 2012년 12월 12일에 출원된, "가상화된 컴퓨팅을 위한 장치 및 방법(METHODS AND APPARATUS FOR VIRTUALIZED COMPUTING)" 제목의, 미국 특허 출원 번호들 14/105,066, 14/105,069, 및 14/105,072에 설명되고, 이 모두는 본 명세서에 그 전체가 참고로 인용된다.
"인프라스트럭처로서의 서비스(Infrastructure-as-a-Service)"(또한 보통 "IaaS"로 언급됨)는 가상화되고, 네트워크되고, 및 풀되는 컴퓨팅 플랫폼(virtualized, networked, and pooled computing platform)(간혹 "클라우드 컴퓨팅 플랫폼(cloud computing platform)"으로 언급됨)의 엘라스틱 신설(elastic creation)을 허용하기 위해 통합된 솔루션으로서 서비스 제공자에 의해 제공된 기술 모음(a suite of technologies)을 일반적으로 설명한다. 기업들은 가상화 서버들, 저장(storage), 및 네트워킹 리소스들(networking resources)과 같은, 인프라스트럭처 리소스들(infrastructure resources)에 어플리케이션 개발자 액세스(application developer access)를 부여하는(gives) 비즈니스-내부 조직 클라우드 컴퓨팅 플랫폼(business-internal organizational cloud computing platform)(간혹 "프라이빗 클라우드(private cloud)"로 언급됨)으로서 IaaS를 사용할 수 있다. 어플리케이션을 실행하기 위해 요구되는 하드웨어 리소스들에 빠른 액세스(ready access)를 제공함으로써, 클라우드 컴퓨팅 플랫폼은 이전 보다 더 빠른 속도(faster pace)와 더 큰 규모(greater scale)에서 개발자들이 웹 어플리케이션의 라이프사이클(lifecycle)(또는 네트워크된 어플리케이션의 임의의 다른 유형)을 관리(manage), 배치(deploy) 및 빌드(build)하는 것을 가능하게 한다(enables).
도 1은 클라우드 컴퓨팅 플랫폼을 관리하기 위한 본 명세서의 사상들(teachings)에 따라 구성된 일 예시 시스템(example system)의 도면이다.
도 2는 도 1의 의존성 제어기(dependency controller)의 일 예시 구현의 블록 다이어그램(block diagram)이다.
도 3은 도 1의 설정 제어기(configuration controller)의 일 예시 구현의 블록 다이어그램이다.
도 4-5는 도1 및/또는 2의 의존성 제어기 구현에 실행될 수 있는 예시 머신 판독가능한 명령어들(example machine readable instructions)을 나타내는 플로우차트들(flowcharts)이다.
도 6 및 9는 도 1 및/또는 3의 설정 제어기 구현에 실행될 수 있는 예시 머신 판독가능한 명령어들을 나타내는 플로우차트들이다.
도 7-8은 본 명세서에서 개시된 장치 및 방법들에 따라 가상 머신 블루프린트의 프로비저닝 동안 실행될 수 있는 예시 머신 판독가능한 명령어들을 나타내는 플로우차트들이다.
도 10은 도 1의 서비스 매니저(service manager)의 예시 구현의 블록 다이어그램이다.
도 11-12는 도1 및/또는 10의 서비스 매니저 구현에 실행될 수 있는 예시 머신 판독가능한 명령어들을 나타내는 플로우차트들이다.
도 13-16은 프로필 태스크들을 관리하고 실행하기 위한 그래픽 사용자 인터페이스들을 도시한다.
도 17은 도 1, 2, 3, 및/또는 10의 예시 클라우드 매니저 실행을 위해 도 4-9 및/또는 11-12의 예시 머신 판독가능한 명령어들을 실행 가능한 예시 프로세싱 플랫폼(example processing platform)의 블록 다이어그램이다.
클라우드 컴퓨팅 플랫폼들(Cloud computing platforms)은 컴퓨팅 연산들(operations)을 수행하는 많은 강력한 처리 능력들(capabilities)을 제공한다. 그러나, 이러한 컴퓨팅 처리 능력들의 장점을 수동으로 활용하기는 복잡하고/또는 상당한 훈련 및/또는 전문 지식을 요구할 수 있다. 여기에 개시된 방법들 및 장치는 예컨대 클라우드 컴퓨팅 플랫폼들에서 가상 머신 리소스들의 관리를 가능하게 한다(facilitate). 예를 들면, 본 명세서의 상세에서 개시된 바와 같이, 본 명세서에 개시된 방법들 및 장치는 다중-머신 컴퓨팅 시스템(예컨대, 상호 운용 서버 그룹(a group of servers that inter-operate))과 병렬적으로(in parallel) 다중 가상 머신들(multiple virtual machines)을 프로비저닝하는 것(provisioning), 가상 머신들이 프로비전됨에(provisioned) 따라 그들 사이에서 설정 정보(configuration information)를 공유하는 것, 가상 머신들의 지정된 작업부하(workload)와 함께 그들을 연결하는 설정 정보를 저장하는 것, 및 선택된 프로필 또는 서비스 레벨에 근거하여 가상 머신들에 서비스들을 역학적으로(dynamically) 첨부하는 것(attaching)과 같은 관리 태스크들(tasks)의 자동화(automation)를 제공한다. 여기 개시된 클라우드 관리 시스템들(예컨대, 브이엠웨어®(VMware®)로부터의 브이클라우드 자동화 센터(vCAC: vCloud Automation Center)), 인터페이스들, 포털들, 등을 위한 개선점들(improvements)은 개별적으로 및/또는 임의의 조합으로 이용될(utilized) 수 있다. 예를 들면, 설명된 개선점들의 일부 또는 모두가 이용될 수 있다.
도 1은 클라우드 컴퓨팅 플랫폼을 관리하기 위한 본 명세서의 사상들에 따라 구성된 일 예시 시스템(100)을 도시한다(depicts). 도 1의 예시 시스템(100)은 어플리케이션 디렉터(application director)(106) 및 하기 더 상세하게 설명되는 바와 같은 클라우드 컴퓨팅 플랫폼 제공자(cloud computing platform provider)(110)를 관리하는 클라우드 매니저(cloud manager)(138)를 포함한다. 여기 설명된 바와 같이, 예시 시스템(100)은 클라우드 제공자(cloud provider)(110)의 관리를 가능하게 하고 클라우드 제공자(110)를 포함하지 않는다. 대안적으로, 시스템(100)은 클라우드 제공자(110)에서 포함될 수 있다.
클라우드 컴퓨팅 플랫폼 제공자(110)는 클라우드 컴퓨팅 플랫폼(110)의 사용자들(예컨대, 관리자(administrator)(116) 및/또는 개발자(developer)(118)와 관련된 사용자들), 및/또는 다른 프로그램들, 소프트웨어, 장치 등에 에 의해 액세스될 수 있는 가상 컴퓨팅 리소스들(virtual computing resources)(예컨대, 가상 머신들(virtual machines), 또는 "VM들(VMs)", 제1 가상 머신(114A), 제2 가상 머신(114B), 제3 가상 머신(114C))을 프로비전한다.
도 1의 예시 어플리케이션(application)(102)은 다중 VM들(multiple VMs)(114)를 포함한다. 도 1의 예시 VM들(114)는 어플리케이션(102) (예컨대, 서비스들(services), 어플리케이션(102)의 일부, 등) 안에서 다른 기능들을 제공한다. 도시된 예시의 하나 이상의 VM들(114)는 어플리케이션 요소들(application components) 및/또는 서비스들의 재고품(stock) 또는 독창적(out-of-the-box)(예컨대, 흔히 이용가능한 구매본) 버전에 관련된 어플리케이션(102)의 관리자(116) 및/또는 개발자(118)에 의해 맞춤화될(customized) 수 있다. 추가적으로, 예시 VM들(114) 상에 실행 가능한 서비스들은 VM들(114)의 다른 부분(other ones)에 의존성들을 가질 수 있다.
도 1에 도시된 바와 같이, 예시 클라우드 컴퓨팅 플랫폼 제공자(110)는 다중 배치 환경들(multiple deployment environments)(110), 예컨대, 개발(development), 테스팅(testing), 스테이징(staging) 및/또는 제작 어플리케이션들(production applications)을 제공할 수 있다. 관리자(116), 개발자(118), 다른 프로그램들, 및/또는 다른 장치들은 클라우드 컴퓨팅 플랫폼 제공자(110)(예컨대, REST(Representational State Transfer) APIs (Application Programming Interface)를 통해 및/또는 임의의 다른 클라이언트-서버 통신 프로토콜을 통해)로부터 서비스들에 액세스할 수 있다. 클라우드 컴퓨팅 서비스들을 위한 REST API의 예시 구현들(implementations)은 브이엠웨어사(VMware, Inc.)로부터 이용가능한 브이클라우드 디렉터 API(vCloud Director API) 및 브이클라우드 관리자 센터(vCAC: vCloud Administrator Center) API를 포함한다. 도 1의 예시 클라우드 컴퓨팅 플랫폼 제공자(110)는 관리자(116) 및/또는 개발자(118)가 배치할(deploy) 수 있는 멀티-티어 어플리케이션(들)(multi-tier application(s))에 배치 환경들(deployment environments)(112)을 제공하기 위하여 가상 컴퓨팅 리소스들(예컨대, VM들(114))을 프로비전한다. 도 1의 배치 환경(112)을 구현하는데 사용될 수 있는 배치 환경의 일 예시 구현은 브이엠웨어사로부터 이용가능한 브이클라우드 데이터센터(vCloud Datacenter) 클라우드 컴퓨팅 서비스들이다.
하나 이상의 VM들에서 실행될(running) 수 있는, 도 1의 예시 어플리케이션 디렉터(application director)(106)는 예시 배치 환경들(112)의 하나에(onto) 멀티-티어 어플리케이션들의 배치(deployment)를 편성한다(orchestrate). 도 1에 도시된 바와 같이, 예시 어플리케이션 디렉터(106)는 토폴로지 생성기(topology generator)(120), 배치 계획 생성기(deployment plan generator)(122) 및 배치 디렉터(deployment director)(124)를 포함한다.
예시 토폴로지 생성기(120)는 배치될 어플리케이션의 로지컬 토폴로지(logical topology)를 명시하는(specifies) 베이직 블루프린트(basic blueprint)(126)를 생성한다. 도 1의 예시 베이직 블루프린트(126)는 가상 컴퓨팅 리소스들을 실시하는(또는 실시될) 어플리케이션 요소들의 수집(collection)으로서 어플리케이션의 구조를 일반적으로 캡쳐한다. 예를 들어, 온라인 스토어 어플리케이션을 위해 예시 토폴로지 생성기(120)에 의해 생성된 베이직 블루프린트(126)는 데이터 스토어로서 데이터베이스(예컨대, 몽고DB(MongoDB))를 사용하는 어플리케이션 서버(application server)(예컨대, 아파치 톰캣 어플리케이션 서버(Apache Tomcat application server))를 실행하는 웹 어플리케이션(web application)(예컨대, 동적 웹 페이지들(dynamic web pages), 정적 웹 페이지들(static web pages), 자바 서블렛들(Java servlets), 자바 클래스들(Java classes), 및/또는 자바 웹 어플리케이션을 구성하는 다른 속성(property), 설정 및/또는 리소스들을 포함하는 "WAR" 파일 또는 자바 웹 어플리케이션 아카이브(Java web application archive)의 형식의(in the form))을 명시할 수 있다. 여기 사용된 바와 같이, 용어 "어플리케이션"은 하나 이상의 어플리케이션 패키지들 및 그들의 의존하는 미들웨어(middleware) 및/또는 운용 시스템들(operating systems)로 구성된 로지컬 배치 유닛(logical deployment unit)을 일반적으로 나타낸다. 어플리케이션들은 다중 VM들에 걸쳐(across) 분포될(distributed) 수 있다. 따라서, 상술한 예시에서, 용어 "어플리케이션"은 그저 특정 웹 어플리케이션(예컨대, 데이터베이스 어플리케이션) 보다는 어플리케이션 서버 및 데이터베이스 요소들을 포함하는 전체 온라인 스토어 어플리케이션을 나타낸다. 일부의 경우들에서, 어플리케이션은 요소들을 구현하는데 이용되는 근본적인 하드웨어(underlying hardware)를 포함할 수 있다.
도 1의 예시 베이직 블루프린트(126)는 카탈로그(catalog)(130)로부터의 아이템들(items)(예컨대, 템플릿들(templates))로부터 어셈블리될(assembled) 수 있다. 도 1의 예시 카탈로그(130)는 클라우드 컴퓨팅 플랫폼 제공자(110)로부터 프로비전될 수 있는 이용가능한 가상 컴퓨팅 리소스들(예컨대, VM들, 네트워킹(networking), 저장(storage)) 및 프로비전된 가상 컴퓨팅 소스들에 설치될 수 있는 이용가능한 어플리케이션 요소들(예컨대, 소프트웨어 서비스들(software services), 스크립트들(scripts), 코드 요소들(code components), 어플리케이션-상세 패키지들(application-specific packages))의 목록이다. 예시 카탈로그(130)는 사전 덧붙임(pre-populated)되고/또는 사양들(specifications), 설정들, 속성들, 및/또는 카탈로그(130)에서의 아이템들에 관한 다른 세부사항들(details)을 입력하는 관리자(116)(예컨대, IT 또는 시스템 관리자)에 의해 맞춤화될 수 있다. 어플리케이션에 근거하여, 예시 블루프린트들(126)은 배치 동안 어플리케이션 요소들의 설치 순서(installation order)를 나타내는(indicate) 어플리케이션 요소들 간의 하나 이상의 의존성들을 정의할 수 있다. 예를 들어, 로드 밸런서(load balancer)는 웹 어플리케이션이 올라오고(up) 실행될 때까지 보통 설정될 수 없기 때문에, 개발자(118)는 어플리케이션 코드 패키지에 아파치 서비스(Apache service)로부터 로드 밸런서를 실행하기 위해 의존성을 명시할 수 있다.
도 1의 예시 어플리케이션 디렉터(106)의 예시 배치 계획 생성기(122)는 베이직 블루프린트(126)(예컨대, 가상 컴퓨팅 리소스들의 클러스터 사이즈(cluster size), CPU, 메모리, 네트웍스)를 위한 배치 세팅들(deployment settings)을 포함하는 베이직 블루프린트(126)에 근거한 배치 계획(128)과 가상 컴퓨팅 리소스들이 프로비전되고 어플리케이션 요소들이 설치되고, 설정되고, 또는 시작된 곳에서 지정된 순서(specified order)를 가지는 태스크들의 실행 계획을 생성한다. 배치 계획(128)은 "글로벌 배치 계획"으로 불려질 수 있다. 도 1의 예시 배치 계획(128)은 어플리케이션을 배치하기 위해 수행될 별개의 지침들(discrete actions)을 나타내는 베이직 블루프린트(126)의 과정 지향 뷰(process-oriented view)와 함께 IT 관리자(IT administrator)를 제공한다. 다중 다른 배치 계획들(128)은 규모를 증가시키고/또는 감소시키는 배치들을 위해, 및/또는 다른 배치 환경(1120)(예컨대, 테스팅, 스테이징(staging), 생성(production))에 어플리케이션을 배치하기 위해, 단일 베이직 블루프린트(126)로부터 테스트 프로토타입들(test prototypes)(예컨대, 새로운 어플리케이션 버전들)까지 생성될 수 있다. VM들(114)이 신설될(created) 때, 배치 계획(128)의 일부들은 분리되고 다수의 로컬 배치 계획들로서(as a plurality of local deployment plans) VM들(114)에 분배된다. 각각의 로컬 배치 계획들은 배치 환경(1120)으로부터 프로비전된 하나 이상의 VM들(114)에 의해 실행될 하나 이상의 태스크들을 포함한다. 각 VM(114)은 어플리케이션 블루프린트(126)에 명시된 의존성들로 컴파일하는(complies) 순서로 테스트들이 실행되는 것을 보장하기 위해 중앙 집중된 배치 모듈(centralized deployment module)(예컨대, 배치 디렉터(124))과 이들 각각의 태스크(들)의 실행을 조정한다(coordinates).
도 1의 예시 배치 디렉터(124)는 배치 환경(112)에서 VM들(114)을 설정하고 프로비전 하기 위해 클라우드 인터페이스(cloud interface)(132)를 통해 클라우드 컴퓨팅 플랫폼 제공자(110)와 통신함으로써 배치 계획(128)을 실행한다. 도 1의 예시 클라우드 인터페이스(132)는 도시된 예시의 어플리케이션 디렉터(106)가 배치 환경들(112) 및 클라우드 제공자(110)의 이종 혼합물(heterogeneous mixture)과 통신하는 것에 의해 통신 추상화 계층(communication abstraction layer)을 제공한다. 도시된 예시의 배치 디렉터(124)는 수신하는 VM(114)에 특정하는 태스크들의 시리즈들 특정하는 각각의 로컬 배치 계획을(with a respective local deployment plan specifying series of tasks specific to the receiving VM 114) 각 VM(114)에 제공한다. 태스크들은 하나 이상의 어플리케이션을 설치, 설정, 및/또는 시작하도록 VM들(114)에 의해 실행된다. 예를 들면, 태스크는, VM(1140)에 의해 실행될 때, VM(114)이 중앙 패키지 저장소(central package repository)(134)로부터 특정 소프트웨어 패키지들을 설치 및 검색하도록 하는(causes) 스크립트일 수 있다. 도 1의 예시 배치 디렉터(124)는 글로벌 배치 계획(128)에 따라 VM들(114) 간의 설치 의존성들(만일 임의의(if any))을 관찰하는 순서로 태스크들을 실행하도록 VM들(114)과 조정한다. 어플리케이션이 배치된 후, 도시된 예시의 어플리케이션 디렉터(106)는 모니터 및/또는 배치를 수정(예컨대, 규모)할 수 있다.
도 1의 예시 클라우드 매니저(138)는 클라우드 제공자(110)의 리소스들의 관리를 가능하게 하는(facilitate) 사용자의 환경(예컨대, 클라우드 제공자(110)) 및/또는 시스템(100)의 요소(예컨대, 어플리케이션 디렉터(106))와 상호작용한다(interacts). 도 1의 예시에서, 클라우드 매니저(138)는 의존성 제어기(dependency controller)(140), 의존성 데이터베이스(dependency database)(142), 설정 제어기(configuration controller)(144), 설정 저장소(configuration repository)(146), 및 서비스 매니저(service manager)(148)를 포함한다. 일부 예시들에서, 클라우드 매니저(cloud manager)(138)는 클라우드 환경을 관리하기 위한 다른 요소들을 추가적으로 포함한다. 일부 예시들에서, 클라우드 매니저(138)의 요소들 및, 더 일반적으로, 클라우드 매니저(138)는 클라우드와 관련되지 않은 가상 머신 시스템들을 관리하기 위하여 이용된다.
가상 머신들이 그룹의 일부로서 배치될 때(예컨대, 데이터베이스 가상 머신, 재정(financial) 가상 머신, 및 웹 서버 가상 머신을 포함하는 e-커머스 어플리케이션(e-commerce application), 제1 가상 머신의 배치는 제2 가상 머신의 배치에 의존할 수 있다. 예를 들면, 만일 제1 가상 머신(114A)이 웹 서버 가상 머신이고 제2 가상 머신(114B)이 데이터베이스 가상 머신이면, 제1 가상 머신(114A)은 프로비저닝이 완료될 수 있기 전에(before provisioning can be completed) 제2 가상 머신(114B)에 대한 정보(예컨대, 네트워크 로케이션(network location), 인증 파라미터들(authentication parameters), 등)를 기다릴(await) 필요가 있다. 따라서, 제1 가상 머신(114A)의 프로비저닝은 제2 가상 머신이 프로비전될 때까지 지연될 수 있다. 도시된 예시의 예시 의존성 제어기(140)는 의존성 데이터베이스(142)에 가상 머신 리소스들의 의존성에 관한 정보를 저장하고, 의존하는 가상 머신들의 병렬적(parallel) 배치를 가능하게 하기 위해 저장된 의존성 정보에 기반하여 리소스들의 프로비저닝을 조정한다. 다시 말해, 이 예시에 따라서, 제1 가상 머신의 배치 및 제2 가상 머신의 배치는 병렬적으로(in parallel) 수행될 수 있고(제1 및 제2 가상 머신들의 배치는 실질적으로(substantially) 동시에 개시될(initiated) 수 있다) 배치들은 제1 가상 머신이 제2 가상 머신에게 존재하고, 접근가능하고, 정보를 제공하는 것 등(예컨대, 제1 가상 머신이 제2 가상 머신에 의존하기 때문에)을 요구할 때까지 제2 가상 머신이 충분히 배치되어 있는지를 보장하기 위해 필요에 따라 중단될 수 있다.
상술한 예시에 따라서, 제1 가상 머신(114A)은 의존성 제어기(140)에 대기 요청을 전송함으로써 배치된 데이터베이스(예컨대, 확인된 예시에서 제2 가상 머신(114B))의 유효성(availability)을 기다리도록 하는 명령어(instruction)로 설치된다(instrumented). 도시된 예시의 의존성 제어기(140)는 예시 의존성 데이터베이스(142)에 대기 요청에 관한 정보를 저장한다. 명령어는 제1 가상 머신(114A)의 배치가, 데이터베이스 정보가 요구되는(또는 요구될(about to be needed)) 배치 포인트(예컨대, 직전에(just prior to))에서 자동으로 보류되게 한다. 따라서, 제1 가상 머신(114A)의 배치는 제2 가상 머신(114B)의 배치의 상태(status)에 관계없이 시작될 수 있다. 예를 들면, 제1 가상 머신(114A)의 배치는 제2 가상 머신(114B)의 배치로서 동시에 시작될 수 있고, 제2 가상 머신(114B), 등의 배치 전에 시작될 수 있다. 따라서, 제1 가상 머신(114A)의 배치 및 제2 가상 머신(114B)의 배치가 다른 사람들에 의해 처리될(handled) 때, 이 사람들은 배치의 시작을 조정할 필요가 없다. 추가적으로, 얼마나 많은 사람들이 글로벌 배치 계획 하에서 가상 머신들의 배치에 연관되어 있는지에 관계없이(regardless of how many persons are involved), 제2 가상 머신(114B)의 배치의 완료(completion) 전에 제1 가상 머신(114A)의 배치를 시작함으로써, 제2 가상 머신(114B)에 관한 정보의 필요 없이 완료될 수 있는 임의의 배치 태스크들은 시작될 수 있어 많은 배치 태스크들은 제2 가상 머신(114B)의 배치의 완료 전에 완료될 수 있다. 이 방식에서의 병렬적 배치는 시간 및 비용을 절약할 수 있다.
상술한 예시에 따라서, 제2 가상 머신(114B)의 배치가 완료될 때(또는 제1 가상 머신(114A)의 배치가 지속되는 것을 배치 제어기(140)가 허락할 수 있는 포인트에 도달), 제2 가상 머신(114B)는 도 1의 예시 의존성 제어기(140)에 알림 요청(notify request)을 전송하기 위한 명령어로 설치된다. 예시 의존성 제어기(140)가 알림 요청을 수신할 때, 의존성 제어기(140)는 일치하는 대기 요청을 도시된 예시의 의존성 데이터베이스(142)에 두고(locates) 제1 가상 머신(114A)에 알림(notification)을 전송하여, 배치를 지속할 수 있다(예컨대, 배치 계획(예컨대, 로컬 배치 계획)을 실행하는 것을 지속할 수 있다).
도시된 예시의 의존성 데이터베이스(142)는 가상 머신들의 배치를 위한 알림 요청들 및 대기 요청들에 관한 정보를 저장한다. 예시 의존성 데이터베이스(142)는대기 요청들을 대응하는 알림 요청들에 연결하는(link) 마스터 키들의 테이블(table of master keys), 알림 요청들의 테이블, 및대기 요청들의 테이블을 포함하는 데이터베이스다. 대안적으로, 의존성 데이터베이스(142)는 데이터 저장소의 임의의 다른 유형에 의해 구현될 수 있다. 예를 들면, 의존성 데이터베이스(142)는 데이터 저장소의 임의의 조합, 하나 이상의 파일들, 및/또는 다중 데이터베이스들에 의해 구현될 수 있다.
도시된 예시의 설정 제어기(144)는 설정 저장소(146)에 가상 머신들에 관한 설정 정보를 수집하고 저장한다. 가상 머신들이 배치될 때, 가상 머신들은 애셋 트래킹 요청(asset tracking request)을 설정 제어기(144)에 전송한다. 애셋 트래킹 요청들에 응답하여, 예시 설정 제어기(144)는 요청하는 가상 머신으로부터 애셋 정보를 캡쳐하고 설정 저장소(146)에 정보를 저장한다. 도시된 예시에서, 설정 제어기(144)는 가상 머신 이름(virtual machine name), 네트워크 주소(network address), 가상 머신 롤(role for the virtual machine), 가상 머신 고유 식별자(unique identifier), 가상 머신 배치 번호(deployment number), 및 가상 머신을 위한 작업부하의 식별(identification of a workload)을 검색한다. 본 명세서에서 사용된 것처럼, 작업부하는 어플리케이션 사례(application instance) 또는 어플리케이션들 사례들의 세트가 수행하는 것(to perform)인 일(work)의 개념(abstraction)이다. 예를 들면, 작업부하는 웹 서버가 구현되는 것, 웹 서버 팜(web server farm)이 구현되는 것, 다층 어플리케이션(multilayer application)이 구현되는 것 등일 수 있다.
도시된 예시의 설정 제어기(144)는 설정 저장소(146)로부터 검색된 설정 정보를 요청한 가상 머신들에 제공한다. 예를 들면, 만일 제1 가상 머신(114A)이 제2 가상 머신(114B)의 배치에 의존하는 경우, 제1 가상 머신(114A)가 의존성 제어기(140)에 의해 제2 가상 머신의 요청자(claimant)가 완료되는 알림될(notified) 때, 제1 가상 머신(114A)는 제2 가상 머신(114B)의 설정 정보를 위한 요청을 설정 제어기(144)에 전송한다. 응답하여, 설정 제어기(144)는 설정 저장소(146)으로부터 제2 가상 머신(114B)를 위한 설정 정보를 검색하고 제1 가상 머신(114A)에 검색된 설정 정보를 전송한다.
도시된 예시의 예시 설정 제어기(144)는 설정 정보가 설정 저장소(146)에 포함되는지를 위한 애셋들을 식별하는 사용자 인터페이스(예컨대, 그래픽 사용자 인터페이스(graphical user interface))를 추가적으로 제공한다. 도시된 예시에 따라서, 설정 제어기(144)는 애셋들의 각각의 작업부하에 기반하여 설정 저장소(146)에 애셋들을 목록화한 그래픽 사용자 인터페이스를 생성한다(예컨대, 나무 구조로(in a tree structure)). 도 1의설정 제어기(144)에 의해 생성된 예시 그래픽 사용자 인터페이스는 작업부하와 관련된 애셋들의 접이식 목록(collapsible list) 다음에(followed by) 작업부하를 디스플레이한다. 예를 들면, 만일 제1 가상 머신(114A) 및 제3 가상 머신(144C)이 웹 서버와 관련되고, 제2 가상 머신(114B)이 데이터베이스와 관련된 경우, 설정 제어기(144)는 제1 가상 머신(114A) 및 제3 가상 머신(114C)을 포함하는 접이식 목록 다음에 웹 서버를 위한 제1 노드와 제3 가상 머신(114B)을 포함하는 접이식 목록 다음에 데이터베이스 서버를 위한 제2 노드를 디스플레이할 수 있다.
도시된 예시의 설정 저장소(146)는 설정 제어기(144)에 의해 수십된 가상 머신들을 위한 설정 정보를 저장한다. 예시 설정 저장소(146)는 경량 디렉터리 액세스 프로토콜(LDAP: lightweight directory access protocol) 데이터베이스에 의해 구현된다. 대안적으로, 설정 저장소(146)는 데이터 저장소의 임의의 다른 유형(들)에 의해 구현될 수 있다. 예를 들면, 설정 저장소(146)는 데이터베이스의 임의의 다른 유형(들)에 의해, 다중 데이터베이스들에 의해, 하나 이상의 파일들에 의해, 및/또는 데이터 저장소의 임의의 조합에 의해 구현될 수 있다.
도시된 예시의 서비스 매니저(148)는 프로필에 식별된 할당된 서비스 레벨들(assigned service levels)에 따라 가상 머신들(예컨대, 가상 머신 블루프린트들)의 배치를 관리한다. 예시 프로필들은 배치된 가상 머신들에 의해 이용될 다양한 서비스들을 식별하고 이들 서비스들의 레벨들을 프로필들에 연관짓는다(associate). 서비스는 임의의 태스크, 리소스, 또는 가상 머신에 의해 이용될 플러그인(plugin)(예컨대, 네트워크 서비스들(network services), 플러그인들, 및/또는 리소스들; 저장 서비스들(storage services), 데이터베이스 서비스들, 플러그인들, 및/또는 리소스들; 도메인 이름 서비스들, 플러그들, 및/또는 리소스들; 데이터베이스 서비스들, 플러그인들, 및/또는 리소스들; 모니터링 서비스들(monitoring services), 플러그인들, 및/또는 리소스들; 로드 밸런싱 서비스들(load balancing services), 플러그인들, 및/또는 리소스들; 보안 서비스들(security services), 플러그인들, 및/또는 리소스들; 등)일 수 있다. 서비스들의 레벨들은 다양한 비용(costs) 및/또는 리소스 이용 레벨들(resource utilization levels)과 관련될 수 있다. 예를 들면, 세 개의 프로필들은 이용될 수 있다: 골드, 실버 및 브론즈. 각각의 프로필들을 위해, 다른 레벨들의 서비스들(예컨대, 다른 비용들)은 할당될 수 있다. 예를 들면, 골드 프로필은 10기가비트 네트워크 서비스들(예컨대, 가장 비싼 서비스들)에 연결될 수 있고, 실버 프로필은 1기가비트(gigabit) 네트워크 서비스들(예컨대, 중간 가격의(mid-priced) 서비스들)에 연결될 수 있고, 및 브론즈 프로필은 100메가비트(megabit) 네트워크 서비스들(예컨대, 가장 저렴한 서비스들)에 연결될 수 있다. 도 1의 예시 서비스 매니저(148)는 프로필들의 신설(creation)을 위한 사용자 인터페이스를 제공한다; 프로필들에 플러그인들, 리소스들 및/또는 서비스들을 추가하는 것; 및 프로필들에 관한 정보를 디스플레이하는 것(예컨대, 비용, 이용 정보, 등). 서비스 매니저(148)의 프로필 설정에 대한 액세스는 인증 레벨들에 의해 제한될(limited) 수 있다. 예를 들면, 액세스의 가장 높은 레벨(highest level)은 프로필(들)의 설정 및 디자인을 허용할 수 있고, 중간 레벨 액세스(mid-level access)는 가상 머신들의 할당을 허용할 수 있고(예컨대, 프로필들과 블루프린트들을 연결함으로써), 및 가장 낮은 레벨 액세스(lowest level access)는 프로필에 연결된 블루프린트들의 배치를 허용할 수 있다. 따라서, 액세스의 가장 낮은 레벨에서, 블루프린트를 위한 프로필은 변경될 수 없고, 따라서, 배치는 블루프린트에 할당된 플러그인들, 리소스들, 및/또는 서비스들에 제한될 수 있다. 따라서, 서비스 매니저(148)는 클라우드 환경 또는 가상 머신들의 다른 배포된 배치에서 비용 및 리소스들 제어를 가능하게 할 수 있다.
도 2는 도 1의 의존성 제어기(140)의 일 예시 구현의 블록 다이어그램이다. 도 2의 예시 의존성 제어기(140)는 대기 요청 매니저(wait request manager)(202), 대기 데이터스토어 매니저(wait datastore manager)(204), 인벤토리 매니저(inventory manager)(206), 알림 요청 매니저(notify request manager)(208), 및 알림 데이터스토어 매니저(notify datastore manager)(210)를 포함한다.
도시된 예시의 대기 요청 매니저(202)는 가상 머신들의 프로비저닝 동안 전송된 대기 요청들을 수신한다. 대기 요청 매니저(202)는 수신된 요청들을 대기 데이터스토어 매니저(204)에 전송한다. 예시 대기 요청 매니저(202)는 인벤토리 매니저(206)로부터 가상 머신 애셋들에 관한 인벤토리 정보를 추가적으로 요청한다. 예를 들면, 대기 요청이 수신될 때, 도시된 예시의 대기 요청 매니저(202)는 인벤토리 매니저(206)가 대기 요청과 일치하는 설정 저장소(146)에 저장된 가상 머신 애셋에 관한 정보를 제공하는 것을 요청한다. 예를 들면, 대기 요청은 대기 요청을 완수할(fulfill) 수 있는 가상 머신 애셋을 식별하는 키 필드(key field) 및/또는 작업부하를 식별하는 정보를 포함할 수 있다(예컨대, 대기 요청을 전송한 가상 머신의 프로비저닝을 완료하기 전에 프로비전되야 하는 데이터베이스 서버의 유형을 식별하는 키). 도 2의 예시 대기 요청 매니저(202)가 이미 존재하는 일치하는 프로비전된 애셋을 결정하거나 대기 요청 매니저(202)가 알림 데이터스토어 매니저(210)에 문의함으로써(querying) 일치하는 프로비전된 애셋을 위한 알림이 이용가능한 것을 결정할 때, 도시된 예시의 대기 요청 매니저(202)는 프로비저닝을 지속할 수 있다는 대기 요청을 전송한 가상 머신을 알림한다.
도시된 예시의 대기 데이터스토어 매니저(204)는 대기 요청 매니저(202)로부터 대기 요청들에 관한 정보를 수신하고 예시 의존성 데이터베이스(142)에 대기 요청들의 테이블로 대기 요청 정보를 저장한다. 도시된 예시의 대기 데이터스토어 매니저(204)는 보류중인(pending) 대기 요청들에 관한 정보를 추가적으로 검색하여, 대기 요청들이 완수되었는지를(if any wait requests have been fulfilled) 결정하기 위해 대기 요청 매니저(202)가 알림 데이터스토어 매니저(210) 및/또는 인벤토리 매니저(206)에 문의할 수 있게 한다. 대기 요청이 완수되었을 때, 도시된 예시의 대기 데이터스토어 매니저(204)는 의존성 데이터베이스(142)로부터 대기 요청을 제거한다(removes).
도시된 예시의 인벤토리 매니저(206)는 예시 설정 저장소(146)에서의 애셋 정보를 위한 요청들을 수신하고 처리한다. 도시된 예시에서, 인벤토리 매니저(206)는 대기 요청 매니저(202)로부터 작업부하 이름 및/또는 키 필드와 같은 문의 파라미터들(query parameters)을 수신하고 수신된 문의 파라미터들을 이용하여 예시 설정 저장소의 LDAP 문의를 수행한다. 대안적으로, 인벤토리 매니저(206)는 설정 저장소(146)로부터 이용가능한 정보를 검색하기 위해 문의(들)의 임의의 다른 유형(들)을 수행할 수 있다.
도 2의 예시 알림 요청 매니저(208)는 알림 요청을 전송하도록 설치된 가상 머신들의 프로비저닝 동안 알림 요청들을 수신한다. 도시된 예시의 알림 요청 매니저(208)는 의존성 데이터베이스(142)에 저장을 위해 알림 데이터스토어 매니저(210)에 알림 요청들을 전송한다. 예시 알림 요청 매니저(208)는 알림 요청을 추가적으로 승인할(validate) 수 있다. 예를 들면, 만일 알림 요청이 특정 서비스가 프로비전된 것(예컨대, 데이터베이스 서비스)을 나타내는 경우, 알림 요청 매니저(208)는 데이터베이스 서비스를 액세스하는 것을 시도함으로써 데이터베이스 서비스가 이용가능하다는 것을 승인할 수 있고, 데이터베이스 서비스에 관한 정보가 설정 저장소(146)로 입력되었다는 것을 확인할 수 있다, 등.
도시된 예시의 알림 데이터스토어 매니저(210)는 알림 요청 매니저(208)로부터 알림 요청들을 수신하고 의존성 데이터베이스(142)에 알림 요청들의 테이블로 알림 요청들을 저장한다. 추가적으로, 이 예시의 알림 데이터스토어 매니저(210)는 대기 요청이 알림 요청에 의해 충족되었는지를 결정하는 것을 시도하는 대기 요청 매니저(202)로부터의 문의에 응답하여 알림 요청들을 의존성 데이터베이스(142)에 문의한다. 도시된 예시에 따라서, 대기 요청이 완수되었을 때, 대응하는 알림 요청은 의존성 데이터베이스(142)에 유지한다(예컨대, 추가 가상 머신들(where further virtual machines)은 알림 요청에 의존할(rely) 수 있다). 대안적으로, 대기 요청이 완수될 때, 알림 데이터스토어 매니저(210)는 의존성 데이터베이스(142)로부터 대응하는 알림 요청을 제거할 수 있다(예컨대, 알림 데이터스토어 매니저(210)가 알림 요청에 의존하는 추가 가상 머신들이 없음을 결정할 때).
도 3은 도 1의 설정 제어기(144)의 일 예시 구현의 블록 다이어그램이다. 이 예시의 예시 설정 제어기(144)는 알림 수신기(notice receiver)(302), 정보 수집기(information collector)(304), 인벤토리 인터페이스(inventory interface)(306), 설정 검색기(configuration retriever)(308), 및 인벤토리 사용자 인터페이스 생성기(inventory user interface generator)(310)를 포함한다.
도시된 예시의 애셋 알림 수신기(asset notice receiver)(302)는 새로운 가상 머신 애셋들의 리포트들(reports)을 수신한다. 예를 들면, 가상 머신들의 프로비저닝 동안, 가상 머신들은 애셋 알림 수신기(302)에 애셋 알림을 전송하는 명령어로 설치될 수 있다. 애셋 알림 수신기(302)는 도시된 예시의 정보 수집기(304)에 애셋 알림을 전송한다.
예시 애셋 알림 수신기(302)로부터 애셋 알림을 수신하는 것에 응답하여, 도시된 예시의 정보 수집기(304)는 애셋 알림이 전송된 가상 머신으로부터 애셋 정보(예컨대, 설정 정보, 세팅들, 식별 정보, 등)를 검색한다. 대안적으로, 애셋 정보는 애셋 정보를 나르는(carries) 임의의 다른 위치 또는 장치로부터 검색될 수 있다. 예를 들면, 정보 수집기(304)는 가상 머신 이름, 가상 머신과 관련된 작업부하, 가상 머신의 네트워크 주소, 가상 머신 고유 식별자, 배치 식별자, 사용자 신용 증명서(user credentials), 가상 머신에서 이용가능한 서비스들에 관한 정보, 등을 검색할 수 있다. 예시 정보 수집기(304)는 설정 저장소(146)에서의 저장을 위해 인벤토리 인터페이스(306)에 수집된 정보를 전송한다.
도시된 예시의 인벤토리 인터페이스(306)는 예시 정보 수집기(304)에 의해 수집된 정보를 수신하고 예시 설정 저장소(146)에 정보를 저장한다. 도 3의 예시 인벤토리 인터페이스(306)는 예시 인벤토리 사용자 인터페이스 생성기(310) 및/또는 예시 설정 검색기(308)로부터의 요청들에 응답하여 예시 설정 저장소(146)로부터 정보를 검색한다. 도시된 예시의 인벤토리 인터페이스(306)는 LDAP를 사용하여 설정 저장소(146)와 접속한다(interfaces). 대안적으로, 임의의 다른 인터페이스 및/또는 프로토콜은 설정 저장소(146)에 액세스하기 위해 이용될 수 있다.
도시된 예시의 설정 검색기(308)는 가상 머신들에 대한 설정 정보를 위한 요청들을 수신하고 예시 인벤토리 인터페이스(306)를 통해 요청된 설정 정보를 검색한다. 예를 들면, 제2 가상 머신(114B)이 프로비전되었음이 제1 가상 머신(114A)에 알림된 후, 제1 가상 머신(114A)는 제2 가상 머신(114B)을 위한 설정 정보를 요청하는 요청을 설정 검색기(308)에 전송한다. 예를 들면, 제1 가상 머신(114A)은 제2 가상 머신(144B)을 위한 네트워크 주소를 포함하는 설정 정보를 요청할 수 있어, 제1 가상 머신(114A)은 제1 가상 머신(114A)이 프로비전되면 제2 가상 머신(114B)에서 리소스를 액세스하기 위해 설치된 어플리케이션들 및/또는 서비스들을 설정할 수 있다.
도시된 예시의 인벤토리 사용자 인터페이스 생성기(310)는 애셋 인벤토리 정보를 위한 사용자 요청들을 수신하고 애셋 정보를 제공하기 위해 사용자 인터페이스를 제공한다. 도 3의 예시 인벤토리 사용자 인터페이스 생성기(310)는 계층 트리(hierarchical tree)(예컨대, 노드들이 다른 노드들에 중첩되는 것과 같이(as nodes nested in other nodes)) 애셋 정보를 목록화한다. 도시된 예시에 따라, 애셋 정보는 애셋이 할당된 것에(to which the asset is assigned) 작업부하의 식별(예컨대, 그래픽적으로 작업부하를 위한 노드가 디스플레이됨) 아래에(underneath)(예컨대, 중첩되게(nested in)) 가상 머신 애셋들의 접이식 목록(collapsible list)(예컨대, 그래픽적으로 노드들이 디스플레이됨)을 제공하는 그래픽 사용자 인터페이스로 디스플레이 된다. 따라서, 만일 가상 머신 이름이 설명이 되지 않거나 사용자에게 알려지지 않은 경우에도, 가상 머신에 속하는 작업부하는 쉽게(readily) 확인가능하다(ascertainable).
도 1-3에 도시된 클라우드 매니저(138)의 설정 제어기(144) 및 의존성 제어기(140)를 구현하는 예시 방식들이지만, 도 1-3에 도시된 하나 이상의 요소들, 프로세스들 및/또는 장치들은 임의의 다른 방법으로 구현되고, 제거되고(eliminated), 생략되고(omitted), 재배열되고(re-arranged), 분리되고(divided), 및/또는 결합될(combined) 수 있다.   또한, 도 2의 예시 대기 요청 매니저(202), 예시 대기 데이터베이스 매니저(204), 예시 인벤토리 매니저(206), 예시 알림 요청 매니저(208), 예시 알림 데이터스토어 매니저(210), 예시 의존성 제어기(140), 도 3의 예시 애셋 알림 수신기(302), 예시 정보 수집기(304), 예시 인벤토리 인터페이스(306), 예시 설정 검색기(308), 예시 인벤토리 사용자 인터페이스 생성기(310) 및/또는 예시 설정 제어기(144)는 하드웨어, 소프트웨어, 펌웨어 및/또는 하드웨어, 소프트웨어 및/또는 펌웨어의 임의의 조합에 의해 구현될 수 있다.  따라서, 예를 들면, 도 2의 예시 대기 요청 매니저(202), 예시 대기 데이터베이스 매니저(204), 예시 인벤토리 매니저(206), 예시 알림 요청 매니저(208), 예시 알림 데이터스토어 매니저(210), 예시 의존성 제어기(140), 도 3의 예시 애셋 알림 수신기(302), 예시 정보 수집기(304), 예시 인벤토리 인터페이스(306), 예시 설정 검색기(308), 예시 인벤토리 사용자 인터페이스 생성기(310) 및/또는 예시 설정 제어기(144) 중 어느 것이라도(any of) 하나 이상의 아날로그 또는 디지털 회로(들), 논리 회로들(logic circuits), 프로그램가능 프로세서(들), 어플리케이션 주문형 집적 회로(들)(ASIC(s): application specific integrated circuit(s)), 프로그램가능 논리 소자(들)(PLD(s): programmable logic device(s)) 및 /또는 필드 프로그램가능 논리 장치(들)(FPLD(s): field programmable logic device(s))에 의해 구현될 수 있다. 단순히 소프트웨어 및/또는 펌웨어 구현을 커버하기 위해(to cover a purely software and/or firmware implementation) 본 발명의 장치 또는 시스템 청구항들 중 어느 것을 판독할 때, 도 2의 예시 대기 요청 매니저(202), 예시 대기 데이터베이스 매니저(204), 예시 인벤토리 매니저(206), 예시 알림 요청 매니저(208), 예시 알림 데이터스토어 매니저(210), 예시 의존성 제어기(140), 도 3의 예시 애셋 알림 수신기(302), 예시 정보 수집기(304), 예시 인벤토리 인터페이스(306), 예시 설정 검색기(308), 예시 인벤토리 사용자 인터페이스 생성기(310) 및/또는 예시 설정 제어기(144) 중 적어도 하나는 소프트웨어 및/또는 펌웨어를 저장하는 메모리, 디지털 다용도 디스크(DVD: digital versatile disk), 콤팩트 디스크(CD: compact disk), 블루레이 디스크(Blu-ray disk) 등과 같은 저장 디스크 또는 컴퓨터 판독가능한 저장 장치(tangible computer readable storage device)를 포함하는 것이 본 명세서에서 명백히 정의된다(hereby expressly defined). 또한 여전히, 도 1 3의 예시 클라우드 매니저(138), 예시 의존성 제어기(140) 및/또는 예시 설정 제어기(144)는 도 1-3에 도시된 것들, 이외에, 또는 대신에, 하나 이상의 요소들, 프로세스들 및/또는 장치들 포함할 수 있고/또는 도시된 요소들, 프로세스들 및/또는 장치들의 전부 또는 그 중 임의의 하나 이상을 포함할 수 있다.
도 1-3의 클라우드 매니저(138), 의존성 제어기(140), 및/또는 설정 제어기(144)를 구현하기 위한 예시 머신 판독가능한 명령어들(example machine readable instructions)을 나타내는 플로우차트는 도 4-9에 보여진다. 이러한 예시들에서, 머신 판독가능한 명령어들은 도 17과 관련되어 후술되는 예시 프로세서 플랫폼(1700)에 보여진 프로세서(1712)와 같은 프로세서에 의한 실행 프로그램(program for execution)을 포함한다. 프로그램은 CD-ROM, 플로피 디스크, 하드 드라이브, 디지털 다용도 디스크(DVD), 블루레이 디스크, 또는 프로세서(1712)와 관련된 메모리와 같은 컴퓨터 판독가능한 저장 매체(tangible computer readable storage medium)에 저장된 소프트웨어로 구현될(embodied) 수 있지만, 모든 프로그램 및/또는 그들의 부분들은 특정 하드웨어(dedicated hardware) 또는 펌웨어로 구현되는 및/또는 프로세서(1712) 외 장치에 의해 대안적으로 실행될 수 있다. 또한, 예시 프로그램이 도 4-9에 도시된 플로우차트들을 참조하여 설명되더라도, 예시 클라우드 매니저(138), 예시 의존성 제어기(140), 및/또는 예시 설정 제어기(144)를 구현하는 많은 다른 방법들은 대안적으로 사용될 수 있다. 예를 들면, 블록들의 실행의 순서는 변경될 수 있고/또한 설명된 블록들의 일부는 변경되거나, 제거되거나, 또는 결합될 수 있다.
상술한 바처럼, 도 4-9의 예시 프로세스들은, 하드 디스크 드라이브(hard disk drive), 플래쉬 메모리(flash memory), 판독 전용 메모리(ROM: read-only memory), 콤팩트 디스크(CD), 디지털 다용도 디스크(DVD), 캐시(cache), 랜덤-액세스 메모리(RAM: random-access memory) 및/또는 정보가 임의의 기간 동안(for any duration)(예컨대, 정보의 캐싱 동안(for caching), 일시적으로 버퍼링하는 동안(for temporarily buffering), 짧은 경우들 동안(for brief instances), 영구적으로(permanently), 및/또는 연장된 시간 기간들 동안(for extended time periods)) 저장되는 임의의 다른 저장 장치 또는 저장 디스크와 같은 컴퓨터 판독가능한 저장 매체에 저장된 코딩된 명령어들(coded instructions) (예컨대, 컴퓨터 및/또는 머신 판독가능한 명령어들)을 사용하여 구현될 수 있다. 본 명세서에서 사용된 것처럼, 용어 컴퓨터 판독가능한 저장 매체는 컴퓨터 판독가능한 저장 장치 및/또는 저장 디스크의 임의의 유형을 포함하고, 신호들을 전파하는 것(propagating signals)을 배제하고(exclude) 전송 매체(transmission media)를 배제하는 것이 명백히 정의된다. As used herein, "tangible computer readable storage medium" and "tangible machine readable storage medium" are used interchangeably. 본 명세서에서 사용된 것처럼, "컴퓨터 판독가능한 저장 매체" 및 "머신 판독가능한 저장 매체"는 상호교환적으로(interchangeably) 사용된다. 추가적으로 또는 대안적으로, 도 4-9의 예시 프로세스들은 하드 디스크 드라이브, 플래쉬 메모리, 판독 전용 메모리, 콤팩트 디스크, 디지털 다용도 디스크, 캐시, 랜덤-액세스 메모리 및/또는 정보가 임의의 기간 동안(예컨대, 정보의 캐싱 동안, 일시적으로 버퍼링하는 동안, 짧은 경우들 동안, 영구적으로, 및/또는 연장된 시간 기간들 동안) 저장되는 임의의 다른 저장 장치 또는 저장 디스크와 같은 머신 판독가능한 매체 및/또는 비일시적 컴퓨터(non-transitory computer)에 저장된 코딩된 명령어들(예컨대, 컴퓨터 및/또는 머신 판독가능한 명령어들)을 사용하여 구현될 수 있다. 본 명세서에서 사용된 것처럼, 용어 비일시적 컴퓨터 판독가능한 매체는 컴퓨터 판독가능한 저장 장치 및/또는 저장 디스크의 임의의 유형을 포함하고, 신호들을 전파하는 것을 배제하고 전송 매체를 배제하는 것이 명백히 정의된다. 본 명세서에서 사용된 것처럼, 구(phrase) "적어도(at least)"는 청구항의 서두(preamble)에 트랜지션 용어(transition term)로서 사용되고, 이는 "포함하는(comprising)"이 제한을 두지 않는 것처럼 동일한 방식으로 제한을 두지 않는다.
도 4는 대기 요청들을 처리하는 예시 의존성 제어기(140)를 위한 예시 프로그램을 나타내는 플로우차트이다. 도 4의 예시 프로그램은 예시 대기 요청 매니저(202)가 가상 머신으로부터 대기 요청을 수신할 때 블록(402)에서 시작한다. 예시 설정 저장소(146)의 대기 데이터스토어에 대기 요청을 저장하는 예시 대기 데이터스토어 매니저(204)(블록(404)). 대기 요청에 응답하여, 대기 요청 매니저(202)는 대기 요청에 반응하는(responsive) 가상 머신 애셋이 저장되어 있는지를 결정하기 위해 대기 요청과 일치하는 작업부하에 대하여 예시 인벤토리 매니저(206)를 통해 애셋 인벤토리를 문의한다(블록(406)). 만일 일치하는 것이 발견되지(found) 않으면(블록(408)), 제어(control)는 일치하는 작업부하 및/또는 가상 머신 애셋이 식별될 때까지 인벤토리를 문의하는 것을 지속적으로 귀환한다(returns). 예를 들면, 대기 요청이 데이터베이스 서버가 대기 요청을 완수하는 것이 요구됨을 나타내는 경우, 대기 요청 매니저(202)는 대기 요청이 발행된 가상 머신의 작업부하에 속하는 데이터베이스 서버에 대해 인벤토리 매니저에 문의한다.
만일 일치하는 가상 머신 애셋이 있으면(located)(블록(408)), 예시 대기 요청 매니저(202)는 인벤토리의 문의에서 식별된 가상 머신 애셋에 대한 알림 요청에 대해 의존성 데이터베이스(142)에 문의한다(블록(410)). 예를 들면, 알림 요청은 식별된 가상 머신 애셋이 성공적으로 배치되고/또는 대기 요청을 완수하기 위해 충분히 배치되면 저장될 수 있다. 일치하는 알림 요청이 발견되지 않을 때(블록(412)), 제어는 대기하는 것을 지속하기 위해 블록(406)으로 귀환한다(예컨대, 대기 요청 매니저는 대기 데이터스토어 매니저(204)를 통해 보류중인 대기 요청들을 주기적으로 검색하고 일치하는 애셋 및 알림 요청을 체크한다(checks))
일치하는 알림 요청이 발견될 때(블록(414)), 대기 요청 매니저(202)는 대기 요청이 완수되었고 가상 머신의 배치가 지속될 수 있다는 것을 대기하는 가상 머신 배치에 알림한다(notifies). 그러면 도 4의 명령어들은 완료된다.
도 5는 알림 요청들을 처리하는 의존성 제어기(140)를 위한 예시 프로그램을 나타내는 플로우차트이다. 도 5의 예시 프로그램은 알림 요청 매니저(208)가 알림 요청을 수신할 때 블록(502)에서 시작한다. 예시 알림 데이터스토어 매니저(210)는 의존성 데이터베이스(142)에 알림 요청들의 목록으로 알림 요청을 저장한다(블록(504)). 추가적으로 또는 대안적으로, 알림 데이터스토어 매니저(210)는 수신된 알림 요청을 예시 요청 매니저(202)에 알림할 수 있다.
도 6은 새로운 애셋들의 레포트들을 처리하는 설정 제어기를 위한 예시 프로그램을 나타내는 플로우차트이다. 도 6의 예시 프로그램은 예시 애셋 수신기(302)가 배치가 개시된(for which deployment has been initiated) 가상 머신으로부터 새로운 애셋의 레포트를 검색할 때 블록(602)에서 시작한다. 새로운 애셋의 레포트에 응답하여, 도시된 예시의 정보 수집기(304)는 가상 머신을 위하여 애셋 정보를 캡쳐한다(블록(604)). 인벤토리 인터페이스(306)는 예시 설정 저장소(146)에 애셋 정보를 저장한다(블록(606)).
도 7-8은 본 명세서에 개시된 장치 및 방법들에 따라서 가상 머신 블루프린트의 프로비저닝 동안 실행될 수 있는 예시 머신 판독가능한 명령어들을 나타내는 플로우차트이다. 도 7의 예시 프로그램은 가상 머신의 배치가 개시되고 가상 머신이 예시 설정 제어기(144)의 예시 애셋 알림 수신기(302)에 애셋 트래킹 요청을 전송할 때 블록(702)에서 시작한다. 가상 머신은 가상 머신 배치에 할당된 태스크들에 따라 설정 및 설치를 시작한다(블록(704)). 예를 들면, 가상 머신들은 배치될 수 있고 가상 머신들에 설치될 어플리케이션 바이너리들(application binaries)은 가상 머신들에 복제되고 설치될 수 있다. 가상 머신 배치는 의존성 트리거 노드(dependency trigger node)가 배치를 위한 태스크들의 세트에 도달되었는지를 결정한다. 만일 의존성 트리거 노드가 도달되지 않으면, 제어는 블록(714)로 진행한다(proceeds).
만일 의존성 트리거가 도달되면(블록(706)), 가상 머신은 예시 의존성 제어기(140)의 예시 대기 요청 매니저(202)에 대기 요청을 전송한다(블록(708)). 도시된 예시의 예시 대기 요청은 프로비저닝을 진행하기 전에 대기 최대 기간(maximum duration to wait)을 나타내는 타임아웃(timeout)을 포함한다. 예시 대기 요청은 동일한 키 밸류(key value)를 포함하는 일치하는 알림 요청(matching notify request)을 식별하는데 이용될 수 있는 키 밸류를 포함한다. 대기 요청은 예를 들면, 배치 환경 이름, 중단 대기를 트리거하는데(trigger the waiting to cease) 사용될 수 있는 초크 파일(choke file)의 식별, 배치가 개시된(initiated the deployment) 사용자의 이름, 배치를 위한 서비스 레벨을 나타내는 프로필 이름, 배치가 에러없이 지속되어야 하는 경우(if deployment should continue without error) 또는 타임아웃 및 초크 파일이 에러가 발행되게 하는지의 표시(indication of whether a timeout and/or choke file should cause an error to be issued), 등과 같은 다른 파라미터들을 추가적으로 포함할 수 있다.
대기 요청을 전송한 후(블록(708)), 배치는 가상 머신이 예시 대기 요청 매니저(202)로부터 대기 요청에 대응하는 알림 요청이 수신되었다는 응답을 기다리는(awaits) 동안 잠시 정지된다(paused)(블록(710)). 알림 요청이 수신되었을 때(블록(710)), 가상 머신 배치는 설정 제어기(144)의 설정 검색기(308)를 통해 가상 머신 의존성에 대한 설정 정보를 위한 풀 요청(pull request)을 전송한다(블록712)). 대안적으로, 설정 검색기(308)는 풀 요청 수신 없이 알림 요청에 응답하여 가상 머신에 설정 정보를 전송할 수 있다. 그러면 제어는 블록(714)로 진행한다. 추가적으로 또는 대안적으로, 제어는 매뉴얼 요청이 수신될 때 및/또는 타임아웃이 도달될 때 블록(714)로 진행할 수 있다.
가상 머신 배치가 설정 정보를 풀하거나(pulls)(블록(712)) 또는 배치가 의존성 트리거가 도달되지 않았음을 결정(블록(706))한 후, 가상 머신 배치는 배치가 완료되었는지를 결정한다(블록(714)). 만일 배치가 완료되지 않은 경우, 제어는 블록(706)로 진행하고 배치는 다음 의존성 트리거까지 지속하고(블록(706)) 배치는 완료한다(블록(714)). 만일 배치가 완료되면, 도 7의 명령어들은 완료된다.
도 8의 예시 프로그램은 배치된 가상 머신, 배치 디렉터(124), 및/또는 가상 머신들을 배치에 원인이 되는(responsible for deploying) 임의의 다른 요소에 의해 수행될 수 있다. 도 8의 예시 프로그램은 가상 머신의 배치가 개시되고 가상 머신이 예시 설정 제어기(144)의 예시 애셋 알림 수신기(302)에 애셋 트래킹 요청을 전송할 때 블록(802)에서 시작한다. 가상 머신은 가상 머신 배치에 할당된 태스크들에 따라 설정 및 설치를 시작한다(예컨대, 배치 디렉터(124)는 설치 및 설정을 개시할 수 있다)(블록(804)). 가상 머신 배치(예컨대, 가상 머신 배치 계획은 배치 디렉터(124)에서 발생(the virtual machine deployment plan causes the deployment director 124 to)) 알림 트리거 노드가 배치를 위한 태스크들 세트에 도달되었는지를 결정한다(블록(806)). 만일 알림 트리거 노드가 도달되지 않으면, 제어는 블록(812)로 진행한다.
만일 알림 트리거가 도달되면(블록(806)), 가상 머신은 예시 의존성 제어기(140)의 예시 알림 요청 매니저(208)에 알림 요청을 전송한다(블록(808)). 예시 알림 요청은 알림 요청에 의해 완수된 대기 요청이 식별된 키의 식별을 포함한다. 알림 요청은 배치 환경 이름, 배치가 개시된 사용자 이름, 배치를 위한 서비스 레벨을 나타내는 프로필 이름 등을 추가적으로 포함할 수 있다. 그러면 가상 머신 배치(예컨대, 배치 계획은 배치 디렉터(124)에서 발생)는 설정 제어기(144)의 정보 수집기(304)를 통해 설정 저장소(146)에 가상 머신을 위한 설정 정보를 푸쉬한다(블록(810)). 그러면 제어는 블록(812)를 진행한다.
가상 머신 배치가 설정 정보를 푸쉬하거나(pushes)(블록(810)) 또는 배치가 알림 트리거가 도달되었음을 결정(블록(806))한 후, 가상 머신 배치는 배치가 완료되었는지를 결정한다(블록(812)). 만일 배치가 완료되지 않았으면, 제어는 블록(806)으로 진행하고 배치는 다음 알림 트리거때까지 지속하고(블록(806)) 배치는 완료한다(블록(812)). 만일 배치가 완료되면, 도 8의 명령어들은 완료된다.
도 7 및 8의 예시들은 각각의 의존성 트리거(도 7) 또는 알림 트리거(도 8)를 위한 가상 머신 배치들을 체크하는 명령어들 도시하지만(While), 명령어들의 단일 세트(a single set of instructions)는 의존성 트리거들 및 알림 트리거들 모두를 체크할 수 있고 가상 머신들은 의존성 트리거들 및 알림 트리거들 중 하나 또는 둘을 포함할 수 있다.
도 9는 도 1 및/또는 3의 설정 제어기(144)를 구현하도록 실행될 수 있는 예시 머신 판독가능한 명령어들을 나타내는 플로우차트이다. 도 9의 예시 프로그램은 도 3의 예시 인벤토리 사용자 인터페이스 생성기(310)가 인벤토리 목록에 대한 요청을 수신할 때 블록(902)에서 시작한다. 도 3의 예시 인벤토리 사용자 인터페이스 생성기(310)는 예시 설정 저장소(146)로부터 제1 기능(예컨대, 작업부하, 태스크 이름, 등)을 선택한다(블록(904)). 도 3의 예시 사용자 인터페이스 생성기(310)는 예시 설정 저장소(146)로부터 제1 기능이 태그된(tagged) 가상 머신 애셋들을 검색한다(블록(906)). 예를 들면, 인벤토리 사용자 인터페이스 생성기(310)는 예시 인벤토리 인터페이스가 제1 작업부하와 관련된 가상 머신들을 위한 LDAP 요청을 전송하도록 할 수 있다.
도시된 예시의 예시 인벤토리 사용자 인터페이스 생성기(310)는 제1 기능의 식별 하에 블록(906)에서 식별된 가상 머신들을 디스플레이 한다. 그러면 도 3의 예시 사용자 인터페이스 생성기(310)는 추가 기능들이 설정 저장소(146)에 포함되는지를 결정한다(블록(910)). 만일 추가 기능들이 설정 저장소(146)에 포함되면, 인벤토리 사용자 인터페이스 생성기(310)는 다음 기능을 선택하고(블록(912)) 제어는 다음 선택된 기능을 프로세스하기 위해 블록(906)으로 진행한다. 만일 추가 기능들이 없다면(블록(910)), 도 9의 명령어들은 완료된다.
전술한 예시들에서, 대기 요청들은 가상 머신들에 의해 전송되고, 대기 요청들이 완수됨의 알림은 가상 머신들로 전송되고, 알림 요청들은 가상 머신들에 의해 전송된다. 추가적으로 또는 대안적으로, 요청들 및/또는 알림들은 임의의 다른 요소들로/에 의해(to/by) 전송될 수 있다. 예를 들면, 가상 머신 리소스들의 배치를 관리하는 어플리케이션 디렉터는 요청들을 전송하고/또는 요청들이 완수되었음의 알림들을 수신할 수 있다.
도 10은 도 1의 서비스 매니저(148)의 예시 구현의 예시 요소들의 블록 다이어그램이다. 이 예시의 예시 서비스 매니저(148)는 예시 요청 수신기(request receiver)(1002), 예시 프로필 검색기(profile retriever)(1004), 예시 프로필 데이터스토어(profile datastore)(1006), 예시 프로필 디자이너(profile designer)(1008), 및 예시 서비스 실행기(service executor)(1010)를 포함한다.
도시된 예시의 요청 수신기(1002)는 배치 동안 가상 머신으로부터 서비스와 관련된 정보에 대한 요청들을 수신한다. 도시된 예시에서, 요청은 예시 프로필 검색기(1004)로부터 전송된, 가상 머신 배치에 할당된 프로필의 식별을 포함한다. 대안적으로, 요청은 가상 머신을 위한 블루프린트 및/또는 가상 머신을 식별할 수 있고 요청 수신기(1002)는 예시 프로필 데이터스토어(1006)에 저장된 정보에 기반하여 가상 머신에 할당된 프로필을 식별하기 위하여 예시 프로필 검색기(1004)에 식별을 전송할 수 있다.
도시된 예시의 프로필 검색기(1004)는 예시 요청 수신기(1002)로부터 프로필 정보를 위한 요청들을 수신하고 요청들을 완수하기 위하여 예시 프로필 데이터스토어(1006)에 문의한다. 도 10의 예시 프로필 검색기(1004)는 검색된 정보를 사용하여 요청을 전송하는 가상 머신에 태스크들을 수행하는 예시 서비스 실행기(1010)에 검색된 정보에 대한 정보를 제공한다. 예를 들면, 만일 배치되는 가상 머신이 중간 레벨 프로필과 관련되면(예컨대, 실버 프로필), 도시된 예시의 프로필 검색기(1004)는 가상 머신이 모니터링 플러그인, 중간 레벨 저장 서비스, 및 중간 레벨 네트워크 서비스를 수신하는 것으로 결정할 수 있다.
도시된 예시의 프로필 데이터스토어(1006)는 예시 프로필 디자이너(1008)를 통해 디자인된, 가상 머신들에 대한 프로필 정보를 저장한다. 예시 프로필 정보는 프로필 레벨들과 가상 머신들로 이용되는 서비스들, 리소스들, 플러그인들, 등을 연결한다. 예시 프로필 정보는 다양한 프로필 레벨들과 관련된 리소스 이용(resource utilization) 및 비용들에 관한 정보를 추가적으로 포함할 수 있다. 도 10의 예시 프로필 데이터스토어(1006)는 데이터베이스에 의해, 하나 이상의 파일들에 의해, 및/또는 데이터 저장 요소들의 임의의 결합에 의해 구현된다.
도시된 예시의 프로필 디자이너(1008)는 프로필들의 업데이트하기 및/또는 사용자 신설을 가능하게 하는(to facilitate user creation of) 인터페이스를 제공한다. 예시 프로필 디자이너(1008)는 새로운 프로필에 할당되기 위해 플러그인들, 리소스들, 및/또는 새로운 프로필 이름 및 서비스들의 입력을 수신하는 그래픽 사용자 인터페이스를 제공한다. 예시 프로필 디자이너(1008)는 프로필들을 위한 보안 및/또는 액세스 정보, 프로필들을 위한 비용 정보, 등의 입력을 추가적으로 수신할 수 있다. 이 예시의 프로필 디자이너(1008)는 예시 프로필 데이터스토어(1006)에 프로필 정보를 저장한다.
도시된 예시의 서비스 실행기(1010)는 예시 요청 수신기(1002)에 요청을 전송한 가상 머신과 관련된 프로필 정보를 수신하고 가상 머신에 프로필과 관련된 태스크들을 실행한다. 서비스 실행기(1010)는 네트워크 리소스들을 할당할 수 있고(예컨대, 가상 머신에 특정 네트워크를 첨부(attach), 네트워크 요소들에 대한 액세스를 할당(allocate access to network elements), 등), 저장 리소스를 할당할 수 있고, 보안 명령어들을 설정할 수 있고, 가상 머신들에 플러그인들을 설치할 수 있고, 및/또는 식별된 프로필과 관련된 임의의 다른 태스크를 수행할 수 있다.
도 1 및 10에 도시된 클라우드 매니저(138)의 서비스 매니저(148)를 구현하는 예시 방식이지만, 도 1 및 10에 도시된 하나 이상의 요소들, 프로세스들 및/또는 장치들은 임의의 다른 방법으로 구현되고, 제거되고(eliminated), 생략되고(omitted), 재배열되고(re-arranged), 분리되고(divided), 및/또는 결합될(combined) 수 있다. 또한, 도 10의 예시 요청 수신기(1002), 예시 프로필 검색기(1004), 예시 프로필 디자이너(1008), 예시 서비스 실행기(1010) 및/또는 예시 서비스 매니저(148)는 하드웨어, 소프트웨어, 펌웨어 및/또는 하드웨어, 소프트웨어 및/또는 펌웨어의 임의의 조합에 의해 구현될 수 있다.  따라서, 예를 들면, 도 10의 예시 요청 수신기(1002), 예시 프로필 검색기(1004), 예시 프로필 디자이너(1008), 예시 서비스 실행기(1010) 및/또는 예시 서비스 매니저(148) 중 어느 것이라도(any of) 하나 이상의 아날로그 또는 디지털 회로(들), 논리 회로들(logic circuits), 프로그램가능 프로세서(들), 어플리케이션 주문형 집적 회로(들)(ASIC(s)), 프로그램가능 논리 소자(들)(PLD(s)) 및 /또는 필드 프로그램가능 논리 장치(들)(FPLD(s))에 의해 구현될 수 있다. 단순히 소프트웨어 및/또는 펌웨어 구현을 커버하기 위해(to cover a purely software and/or firmware implementation) 본 발명의 장치 또는 시스템 청구항들 중 어느 것을 판독할 때, 도 10의 예시 요청 수신기(1002), 예시 프로필 검색기(1004), 예시 프로필 디자이너(1008), 예시 서비스 실행기(1010) 및/또는 예시 서비스 매니저(148) 중 적어도 하나는 소프트웨어 및/또는 펌웨어를 저장하는 메모리, 디지털 다용도 디스크(DVD), 콤팩트 디스크(CD), 블루레이 디스크 등과 같은 저장 디스크 또는 컴퓨터 판독가능한 저장 장치를 포함하는 것이 본 명세서에서 명백히 정의된다. 또한 여전히, 도 1의 예시 클라우드 매니저(138) 및/또는 예시 서비스 매니저(148)는 도 1 및 10에 도시된 것들, 이외에, 또는 대신에, 하나 이상의 요소들, 프로세스들 및/또는 장치들을 포함할 수 있고/또는 도시된 요소들, 프로세스들 및/또는 장치들의 전부 또는 그 중 임의의 하나 이상을 포함할 수 있다.
도 1 및 10의 클라우드 매니저(138), 및/또는 서비스 매니저(148)를 구현하기 위한 예시 머신 판독가능한 명령어들을 나타내는 플로우차트는 도 11-12에 보여진다. 이러한 예시들에서, 머신 판독가능한 명령어들은 도 17과 관련되어 후술되는 예시 프로세서 플랫폼(1700)에 보여진 프로세서(1712)와 같은 프로세서에 의한 실행 프로그램을 포함한다. 프로그램은 CD-ROM, 플로피 디스크, 하드 드라이브, 디지털 다용도 디스크(DVD), 블루레이 디스크, 또는 프로세서(1712)와 관련된 메모리와 같은 컴퓨터 판독가능한 저장 매체에 저장된 소프트웨어로 구현될 수 있지만, 모든 프로그램 및/또는 그들의 부분들은 특정 하드웨어 또는 펌웨어로 구현되는 및/또는 프로세서(1712) 외 장치에 의해 대안적으로 실행될 수 있다. 또한, 예시 프로그램이 도 11-12에 도시된 플로우차트들을 참조하여 설명되더라도, 예시 클라우드 매니저(138), 및/또는 예시 서비스 매니저(148)를 구현하는 많은 다른 방법들은 대안적으로 사용될 수 있다. 예를 들면, 블록들의 실행의 순서는 변경될 수 있고/또한 설명된 블록들의 일부는 변경되거나, 제거되거나, 또는 결합될 수 있다.
상술한 바처럼, 도 11-12의 예시 프로세스들은, 하드 디스크 드라이브(hard disk drive), 플래쉬 메모리(flash memory), 판독 전용 메모리(ROM: read-only memory), 콤팩트 디스크(CD), 디지털 다용도 디스크(DVD), 캐시(cache), 랜덤-액세스 메모리(RAM: random-access memory) 및/또는 정보가 임의의 기간 동안(for any duration)(예컨대, 정보의 캐싱 동안(for caching), 일시적으로 버퍼링하는 동안(for temporarily buffering), 짧은 경우들 동안(for brief instances), 영구적으로(permanently), 및/또는 연장된 시간 기간들 동안(for extended time periods)) 저장되는 임의의 다른 저장 장치 또는 저장 디스크와 같은 컴퓨터 판독가능한 저장 매체에 저장된 코딩된 명령어들(coded instructions) (예컨대, 컴퓨터 및/또는 머신 판독가능한 명령어들)을 사용하여 구현될 수 있다. 추가적으로 또는 대안적으로, 도 11-12의 예시 프로세스들은 하드 디스크 드라이브, 플래쉬 메모리, 판독 전용 메모리, 콤팩트 디스크, 디지털 다용도 디스크, 캐시, 랜덤-액세스 메모리 및/또는 정보가 임의의 기간 동안(예컨대, 정보의 캐싱 동안, 일시적으로 버퍼링하는 동안, 짧은 경우들 동안, 영구적으로, 및/또는 연장된 시간 기간들 동안) 저장되는 임의의 다른 저장 장치 또는 저장 디스크와 같은 머신 판독가능한 매체 및/또는 비일시적 컴퓨터(non-transitory computer)에 저장된 코딩된 명령어들(예컨대, 컴퓨터 및/또는 머신 판독가능한 명령어들)을 사용하여 구현될 수 있다.
도 11의 예시 프로그램은 프로필 디자이너(1008)이 새로운 프로필을 신설하는 요청을 수신할 때 블록(1102)에서 시작한다. 예를 들면, 새로운 프로필을 신설하는 요청은 프로필 이름, 프로필 비용 파라미터들(cost parameters), 프로필 리소스 사용 파라미터들(resource usage parameters), 등을 포함할 수 있다. 도시된 예시의 예시 프로필 디자이너(1008)는 가산 머신을 프로비저닝 하기 위한 태스크들의 목록을 검색한다. 예를 들면, 프로필 디자이너(1008)는 네트워크 프로비저닝 태스크, 저장소 프로비저닝 태스크, 등을 검색할 수 있다. 예시 프로필 디자이너(1008)는 프로비저닝 태스크들과 프로필을 위한 서비스들을 맵한다(map)(블록(1106)). 예를 들면, 프로필 디자이너(1008)는 저장소 프로비저닝 태스크에 저장 서비스의 특정 레벨을 맵할 수 있다. 예시 프로필 데이터스토어(1006)는 프로필 데이터스토어(1006)에 할당된 프로필 정보를 저장한다(블록(1108).
도 12의 예시 프로그램은 예시 요청 수신기(1002)가 가상 머신을 위한 프로비저닝 요청을 수신할 때 블록(1202)에서 시작한다. 예시 요청 수신기(1002)는 가상 머신을 위한 선택된 프로필을 결정한다(블록(1204)). 예를 들면, 요청 수신기(1002)는 예시 프로필 데이터스토어(1006)으로부터 선택된 프로필에 대한 정보를 검색함으로써 및/또는 프로비저닝 요청에서 선택된 프로필의 식별에 기반하여 선택된 프로필을 결정할 수 있다. 도시된 예시의 예시 프로필 검색기(1004)는 검색된 프로필에서 제1 태스크를 위한 서비스를 검색한다(블록(1206)). 그러면 예시 서비스 실행기(1010)는 프로필에서 식별된 서비스를 위한 제1 태스크를 실행한다(블록(1208)). 프로필 검색기(1004)는 실행될 추가 태스크들이 있는지를 결정한다(블록(1210)). 만일 실행될 추가 태스크들이 있다면, 제어는 다음 태스크를 프로세스하기 위해 블록(1206)으로 귀환한다. 만일 실행될 추가 태스크들이 없다면(블록(1210)), 도 12의 명령어들은 완료된다.
도 13은 서비스 레벨 프로필을 신설하기 위한 그래픽 사용자 인터페이스(1300)를 도시한다. 예시 그래픽 사용자 인터페이스(1300)는 서비스 레벨 프로필들의 목록(1302)(예컨대, 골드 레벨 프로필, 실버 레벨 프로필, 브론즈 레벨 프로필, 등)을 포함한다. 서비스 레벨 프로필들의 목록(1302)에서 서비스 레벨이 선택될 때 이용가능한 플러그인들의 목록(1304)이 디스플레이된다. 이용가능한 플러그인들의 목록(list of available plugins)(1304)으로부터 플러그인이 선택될 때, 선택된 플러그인에 대응하는 서비스들의 목록(1306)이 디스플레이된다. 그러면 프로필들을 관리하는 사용자는 서비스 레벨 프로필들의 목록(1302)에서 선택된 프로필과 관련되는 특정 서비스를 선택할 수 있다. 따라서, 프로필은 각각의 원하는 서비스 레벨에 대한 별도의 블루프린트들을 신설하기 위한 요구 없이 서비스 레벨 프로필에 연결된 블루프린트는 서비스들의 특정 세트가 자동으로 할당될 수 있는 것인, 서비스들의 특정 세트를 포함하는 것으로 개발될 수 있다.
도 14는 서비스 레벨 프로필들에 포함되는 태스크들을 신설하기 위한 예시 그래픽 사용자 인터페이스(1400)를 도시한다. 도 14의 예시 그래픽 사용자 인터페이스(1400)는 이전에 신설된 태스크들의 유형들의 목록(listing of previously created task types)(1402)을 포함한다. 새로운 태스크 유형들은 추가될 수 있다. 태스크가 이전에 신설된 태스크 유형들의 목록(1402)으로부터 선택될 때, 이용가능한 플러그인들의 목록(1404)는 디스플레이된다. 태스크들을 관리하는 사용자는 선택 태스크 유형에 추가 플러그인들을 추가하기 위하여 버튼(1406)을 선택할 수 있다.
도 15는 서비스 레벨 프로필들에 대한 플러그인들을 관리하기 위한 예시 그래픽 사용자 인터페이스(1500)를 도시한다. 도 15의 예시 그래픽 사용자 인터페이스(1500)는 이전에 추가된 플러그인들의 목록(listing of previously added plugins)(1502)을 포함한다. 새로운 플로그인들은 플러그인 설명 파일(plugin description file)을 임포팅함으로써(importing) 추가될 수 있다. 플러그인이 이전에 추가된 플러그인들의 목록(1502)로부터 선택될 때, 선택된 플러그인과 관련된 서비스 옵션들의 목록(listing of service options)(1504)은 디스플레이된다.
도 16은 이전에 실행된 태스크들에 대한 정보를 디스플레이하는 예시 그래픽 사용자 인터페이스(1600)를 도시한다. 도 16의 예시 그래픽 사용자 인터페이스(1600)는 이전 실행된 태스크들에 대한 정보의 목록(listing of information)(1602)을 포함한다. 또한 이 예시의 예시 그래픽 사용자 인터페이스(1600)는 배치와 관련된 플러그인들의 실행의 상태에 대한 정보를 포함하는 배치(1604)에 대한 정보를 포함한다.
도 17은 도 2의 예시 대기 요청 매니저(202), 예시 대기 데이터베이스 매니저(204), 예시 인벤토리 매니저(206), 예시 알림 요청 매니저(208), 예시 알림 데이터스토어 매니저(210), 예시 의존성 제어기(140), 도 3의 예시 애셋 알림 수신기(302), 예시 정보 수집기(304), 예시 인벤토리 인터페이스(306), 예시 설정 검색기(308), 예시 인벤토리 사용자 인터페이스 생성기(310) 및/또는 도 1-3의 예시 설정 제어기(144) 및/또는 도 10의 예시 요청 수신기(1002), 예시 프로필 검색기(1004), 예시 프로필 디자이너(1008), 예시 서비스 실행기(1010)을 구현하기 위해 도 4-9 및/또는 11-12의 명령어들을 실행 가능한 예시 프로세서 플랫폼(1700)의 블록 다이어그램이다. 프로세서 플랫폼(1700)은 예를 들면, 서버 또는 컴퓨팅 장치의 임의의 다른 유형일 수 있다.
도시된 예시의 프로세서 플랫폼(1700)은 프로세서(1712)를 포함한다. 도시된 예시의 프로세서(1712)는 하드웨어이다. 예를 들면, 프로세서(1712)는 하나 이상의 집적 회뢰들(integrated circuits), 논리 회로들, 마이크로프로세서(microprocessors)들 또는 임의의 원하는 패밀리 또는 제조사로부터의(from any desired family or manufacturer) 제어기에 의해 구현될 수 있다.
도시된 예시의 프로세서(processor)(1712)는 로컬 메모리(local memory)(1713)(예컨대, 캐시)를 포함한다. 도시된 예시의 프로세서(1712)는 버스(bus)(1718)를 통해 비휘발성 메모리(non-volatile memory)(1716) 및 휘발성 메모리(volatile memory)(1714)를 포함하는 메인 메모리(main memory)와 통신한다. 휘발성 메모리(1714)는 동기 역학 랜덤 액세스 메모리(SDRAM: Synchronous Dynamic Random Access Memory), 역학 랜덤 액세스 메모리(DRAM: Dynamic Random Access Memory), 램버스 역학 랜덤 액세스 메모리(RDRAM: RAMBUS Dynamic Random Access Memory) 및/또는 랜덤 액세스 메모리 장치의 임의의 다른 유형에 의해 구현될 수 있다. 비휘발성 메모리(1716)는 플래쉬 메모리 및/또는 메모리 장치의 임의의 다른 원하는 유형에 의해 구현될 수 있다. 메인 메모리(1714, 1716)에서의 액세스는 메모리 제어기에 의해 제어된다.
또한 도시된 예시의 프로세서 플랫폼(1700)은 인터페이스 회로(1720)를 포함한다. 인터페이스 회로(1720)는 이더넷 인터페이스(Ethernet interface), 범용 직렬 버스(USB: universal serial bus), 및/또는 PCI 익스프레스 인터페이스(PCI express interface)와 같은 인터페이스 표준(interface standard)의 임의의 유형에 의해 구현될 수 있다.
도시된 예시에서, 하나 이상의 입력 장치들(1722)은 인터페이스 회로(1720)와 연결된다. 입력 장치(들)(1722)은 사용자가 데이터 및 명령들을 프로세서(1712)로 입력하는 것을 허용한다. 입력 장치(들)은 예를 들면, 오디오 센서(audio sensor), 마이크로폰(microphone), 카매라(스틸(still) 또는 비디오), 키보드, 버튼, 마우스, 터치스크린, 트랙-패드(track-pad), 트랙볼(trackball), 이소포인트(isopoint) 및/또는 음성 인식 시스템(voice recognition system)에 의해 구현될 수 있다.
또한 하나 이상의 출력 장치들(1724)는 도시된 예시의 인터페이스 회로(1720)와 연결된다. 출력 장치들(1724)은 예를 들면, 디스플레이 장치들(예컨대, 발광 다이오드(LED: light emitting diode), 유기 발광 다이오드(OLED: organic light emitting diode), 액정 디스플레이(liquid crystal display), 음극선관 디스플레이(CRT: cathode ray tube display), 터치스크린, 촉각 출력 장치(tactile output device), 프린터 및/또는 스피커들)에 의해 구현될 수 있다. 도시된 예시의 인터페이스 회로(1720)는, 그러므로, 그래픽 드라이버 카드(graphics driver card), 그래픽 드라이버 칩(graphics driver chip) 또는 그래픽 드라이버 프로세서(graphics driver processor)를 일반적으로(typically) 포함한다.
또한 도시된 예시의 인터페이스 회로(1720)는 네트워크(1726)(예컨대, 이더넷 연결(Ethernet connection), 디지털 가입자 회선(DSL: digital subscriber line), 전화 회선(telephone line), 동축 케이블(coaxial cable), 셀룰러 텔레폰 시스템(cellular telephone system), 등)를 통해 외부 머신들(예컨대, 모든 종류의 컴퓨팅 장치들)과 데이터 교환을 가능하게 하는 네트워크 인터페이스 카드(network interface card), 모뎀(modem), 송수신기(transceiver), 수신기(receiver) 및/또는 송신기(transmitter)와 같은 통신 장치를 포함한다.
또한 도시된 예시의 프로세서 플랫폼(1700)은 소프트웨어 및/또는 데이터를 저장하는 하나 이상의 대용량 저장 장치들(mass storage devices)(1728)을 포함한다. 이러한 대용량 저장 장치들(1728)의 예시들은 플로피 디스크 장치들, 하드 드라이브 디스크들, 콤팩트 디스크 드라이브들, 블루레이 디스크 드라이브들, RAID 시스템들(RAID systems), 및 디지털 다용도 디스크(DVD) 드라이브들을 포함한다.
도 4-9 및 11-12의 코딩된 명령어들(1732)은 대용량 저장 장치(1728)에, 휘발성 메모리(1714)에, 비휘발성 메모리(1716)에, 및/또는 CD 또는 DVD와 같은 이동식 컴퓨터 판독가능한 저장 매체(emovable tangible computer readable storage medium)에 저장될 수 있다.
몇몇의(several) 그래픽 사용자 인터페이스들이 사용자 입력을 획득하기 위한 예시 인터페이스들로서 제공되지만, 사용자 인터페이스 및/또는 제어의 임의의 다른 유형이 제공될 수 있다(예컨대, 명령 라인 인터페이스(command line interface), 텍스트 기반 인터페이스(text based interface), 슬라이더(slider), 텍스트 박스(text box), 등). 추가적으로 또는 대안적으로, 본 명세서 설명된 임의의 장치 및 방법들은 또다른 프로그램 또는 장치에 의해 프로그램적으로(programmatically)(예컨대, 클라우드 매니저(138)의 API를 사용하여(예컨대, vCAC API)) 액세스될 수 있다.
특정 예시 방법들, 장치 및 제조의 조항들(articles of manufacture)이 본 명세서에 개시되었지만, 본 발명의 적용 범위는 이에 한정된 것은 아니다. 반대로, 본 발명은 모든 방법, 장치 및 제조의 조항들이 공정하게 본 발명의 청구항들의 범위 내에 포함한다.

Claims (60)

  1. 배치 디렉터가 제1 가상 머신 및 제2 가상 머신의 배치를 개시하였고, 상기 제1 가상 머신이, 완전히 배치되지 않은 상기 제2 가상 머신의 파라미터에 의존하기 때문에 상기 제1 가상 머신의 배치가 중단되었다는 것을 결정하는 의존성 제어기 - 상기 의존성 제어기는, 상기 제2 가상 머신이 배치되었고 저장소에 설정 정보가 저장되도록 하였다는 것을 검출함 -; 및
    상기 저장소로부터 상기 파라미터를 포함하는 상기 설정 정보를 검색하고, 상기 제1 가상 머신이 배치를 재개(resume)하도록 하는 상기 파라미터를 상기 제1 가상 머신에 전송하는 설정 제어기
    를 포함하고,
    상기 의존성 제어기 및 상기 설정 제어기 중 적어도 하나는 프로세서를 포함하는
    장치.
  2. 제1항에 있어서,
    상기 저장소는 경량 디렉터리 액세스 프로토콜 서버인 장치.
  3. 제1항에 있어서,
    상기 설정 제어기는,
    경량 디렉터리 액세스 프로토콜 문의를 수행함으로써 상기 설정 정보를 수신하는 설정 검색기를 포함하는 장치.
  4. 제1항에 있어서,
    상기 설정 제어기는,
    상기 제2 가상 머신으로부터 수신된 요청에 응답하여 상기 저장소에 상기 설정 정보를 저장하는 정보 수집기를 포함하는 장치.
  5. 제1항에 있어서,
    상기 설정 제어기는,
    상기 제1 가상 머신으로부터의 상기 파라미터에 대한 요청에 응답하여 상기 설정 정보를 검색하는 장치.
  6. 제1항에 있어서,
    상기 파라미터는,
    상기 제2 가상 머신을 위한 네트워크 주소인 장치.
  7. 제1항에 있어서,
    상기 의존성 제어기는,
    상기 제1 가상 머신으로부터 대기 요청을 수신하는 것에 응답하여 상기 제1 가상 머신의 배치가 중단되었음을 결정하는 것인 장치.
  8. 제7항에 있어서,
    상기 의존성 제어기는,
    상기 대기 요청을 수신하는 것에 응답하여, 상기 제2 가상 머신을 식별하기 위하여 상기 대기 요청에서 식별된 작업부하에 대하여 가상 머신들의 인벤토리를 문의하는 것인 장치.
  9. 제1항에 있어서,
    상기 의존성 제어기는,
    상기 제2 가상 머신으로부터 수신된 알림에 대하여 데이터스토어에 문의함으로써 상기 제2 가상 머신이 배치되었음을 검출하는 것인 장치.
  10. 제1항에 있어서,
    상기 의존성 제어기는,
    상기 제2 가상 머신으로부터 알림 요청을 수신하는 것에 응답하여 상기 제2 가상 머신이 배치되었음을 검출하는 것인 장치.
  11. 제1 가상 머신 및 제2 가상 머신의 배치를 개시하는 단계;
    프로세서로 명령어들을 실행함으로써, 상기 제1 가상 머신이, 완전히 배치되지 않은 상기 제2 가상 머신의 파라미터에 의존하기 때문에 상기 제1 가상 머신의 배치가 중단되었다는 것을 결정하는 단계;
    상기 프로세서를 통해, 상기 제2 가상 머신이 배치되었고 저장소에 설정 정보가 저장되도록 하였다는 것을 검출하는 단계;
    상기 프로세서를 통해, 상기 저장소로부터 상기 파라미터를 포함하는 상기 설정 정보를 검색하는 단계; 및
    상기 프로세서를 통해, 상기 제1 가상 머신이 배치를 재개하도록 하는 상기 파라미터를 상기 제1 가상 머신에 전송하는 단계
    를 포함하는 방법.
  12. 제11항에 있어서,
    상기 저장소는 경량 디렉터리 액세스 프로토콜 서버인 방법.
  13. 제11항에 있어서,
    상기 설정 정보를 검색하는 단계는,
    경량 디렉터리 액세스 프로토콜 문의를 수행하는 단계
    를 포함하는 방법.
  14. 제11항에 있어서,
    상기 제2 가상 머신이 배치되었고 저장소에 설정 정보가 저장되도록 하였다는 것을 검출하는 단계 전에,
    상기 제2 가상 머신으로부터의 요청에 응답하여 상기 저장소에 상기 설정 정보를 저장하는 단계
    를 더 포함하는 방법.
  15. 제11항에 있어서,
    상기 설정 정보를 검색하는 단계는,
    상기 제1 가상 머신으로부터의 상기 파라미터에 대한 요청에 반응하는 방법.
  16. 제11항에 있어서,
    상기 파라미터는 상기 제2 가상 머신을 위한 네트워크 주소인 방법.
  17. 제11항에 있어서,
    상기 제1 가상 머신의 배치가 중단되었음을 결정하는 단계는,
    상기 제1 가상 머신으로부터 대기 요청을 수신하는 단계
    를 포함하는 방법.
  18. 제17항에 있어서,
    상기 대기 요청을 수신하는 것에 응답하여, 상기 제2 가상 머신을 식별하기 위하여 상기 대기 요청에서 식별된 작업부하에 대하여 가상 머신들의 인벤토리를 문의하는 단계
    를 더 포함하는 방법.
  19. 제11항에 있어서,
    상기 제2 가상 머신이 배치되었고 저장소에 설정 정보가 저장되도록 하였다는 것을 검출하는 단계는,
    상기 제2 가상 머신으로부터 수신된 알림에 대하여 데이터스토어에 문의하는 단계
    를 포함하는 방법.
  20. 제11항에 있어서,
    상기 제2 가상 머신이 배치되었고 저장소에 설정 정보가 저장되도록 하였다는 것을 검출하는 단계는,
    상기 제2 가상 머신으로부터 알림 요청을 수신하는 단계
    를 포함하는 방법.
  21. 실행시, 머신이 적어도:
    제1 가상 머신 및 제2 가상 머신의 배치를 개시하고;
    상기 제1 가상 머신이, 완전히 배치되지 않은 상기 제2 가상 머신의 파라미터에 의존하기 때문에 상기 제1 가상 머신의 배치가 중단되었다는 것을 결정하고;
    상기 제2 가상 머신이 배치되었고 저장소에 설정 정보가 저장되도록 하였다는 것을 검출하고;
    상기 저장소로부터 상기 파라미터를 포함하는 상기 설정 정보를 검색하고; 및
    상기 제1 가상 머신이 배치를 재개하도록 하는 상기 파라미터를 상기 제1 가상 머신에 전송하는
    명령어들을 포함하는 컴퓨터 판독가능한 저장 매체.
  22. 제21항에 있어서,
    상기 저장소는,
    경량 디렉터리 액세스 프로토콜 서버인 컴퓨터 판독가능한 저장 매체.
  23. 제21항에 있어서,
    상기 명령어들은, 실행시 상기 머신이,
    경량 디렉터리 액세스 프로토콜 문의를 수행함으로써 상기 설정 정보를 검색하도록 하는
    컴퓨터 판독가능한 저장 매체.
  24. 제21항에 있어서,
    상기 명령어들은, 실행시 상기 머신이,
    상기 제2 가상 머신으로부터의 요청에 응답하여 상기 저장소에 상기 설정 정보를 저장하도록 하는
    컴퓨터 판독가능한 저장 매체.
  25. 제21항에 있어서,
    상기 명령어들은, 실행시 상기 머신이,
    상기 제1 가상 머신으로부터의 상기 파라미터에 대한 요청에 반응하는 상기 설정 정보를 검색하도록 하는
    컴퓨터 판독가능한 저장 매체.
  26. 제21항에 있어서,
    상기 파라미터는,
    상기 제2 가상 머신을 위한 네트워크 주소인 컴퓨터 판독가능한 저장 매체.
  27. 제21항에 있어서,
    상기 명령어들은, 실행시 상기 머신이,
    상기 제1 가상 머신으로부터 대기 요청을 수신함으로써 상기 제1 가상 머신의 배치가 중단되었음을 결정하도록 하는
    컴퓨터 판독가능한 저장 매체.
  28. 제27항에 있어서,
    상기 명령어들은, 실행시 상기 머신이,
    상기 대기 요청을 수신하는 것에 응답하여, 상기 제2 가상 머신을 식별하기 위하여 상기 대기 요청에서 식별된 작업부하에 대하여 가상 머신들의 인벤토리를 문의하도록 하는
    컴퓨터 판독가능한 저장 매체.
  29. 제21항에 있어서,
    상기 명령어들은, 실행시 상기 머신이,
    상기 제2 가상 머신으로부터 수신된 알림에 대하여 데이터스토어에 문의함으로써 상기 제2 가상 머신이 배치되었음을 검출하도록 하는
    컴퓨터 판독가능한 저장 매체.
  30. 제21항에 있어서,
    상기 명령어들은, 실행시 상기 머신이,
    상기 제2 가상 머신으로부터 알림 요청을 수신함으로써 상기 제2 가상 머신이 배치되었음을 검출하도록 하는
    컴퓨터 판독가능한 저장 매체.
  31. 제2 가상 머신의 배치와 병렬적으로 제1 가상 머신의 배치를 개시하는 단계;
    컴퓨터 판독가능한 명령어를 실행하는 프로세서로, 상기 제1 가상 머신의 배치가 시작된 후, 상기 제1 가상 머신의 배치가, 완전히 배치되지 않은(has not been fully deployed) 상기 제2 가상 머신에 의존하는 포인트에 상기 제1 가상 머신의 배치가 도달하였기 때문에 상기 제1 가상 머신의 배치가 중단되었다는 것을 결정하는 단계;
    상기 프로세서로 컴퓨터 판독가능한 명령어들을 실행함으로써, 상기 제2 가상 머신이 배치되었음을 검출하는 단계; 및
    상기 제2 가상 머신이 배치되었음을 검출하는 단계에 응답하여, 상기 프로세서를 통해, 상기 제1 가상 머신의 배치를 지속할 수 있음을 상기 제1 가상 머신에 알림하는 단계
    를 포함하는 방법.
  32. 제31항에 있어서,
    상기 제1 가상 머신의 배치가 상기 제1 가상 머신으로부터의 대기 요청에 기초하여 중단되었음을 결정하는 단계
    를 포함하는 방법.
  33. 제32항에 있어서,
    데이터스토어에 상기 대기 요청의 표시(indication)를 저장하는 단계
    를 더 포함하는 방법.
  34. 제32항에 있어서,
    상기 대기 요청에 응답하여, 상기 제2 가상 머신을 식별하기 위하여 상기 대기 요청에서 식별된 작업부하에 대하여 가상 머신들의 인벤토리를 문의하는 단계
    를 더 포함하는 방법.
  35. 제34항에 있어서,
    상기 제2 가상 머신이 배치되었음을 검출하는 단계는,
    상기 제2 가상 머신으로부터 수신된 알림에 대하여 데이터스토어에 문의하는 단계
    를 포함하는 방법.
  36. 제31항에 있어서,
    상기 제2 가상 머신이 배치되었음을 검출하는 단계는,
    상기 제2 가상 머신으로부터 알림 요청을 수신하는 단계
    를 포함하는 방법.
  37. 제1 가상 머신 및 제2 가상 머신의 배치 동안, 상기 제1 가상 머신의 배치가 상기 제2 가상 머신에 의존하고, 상기 제2 가상 머신이 완전히 배치되지 않은 포인트에 상기 제1 가상 머신이 도달하였기 때문에 상기 제1 가상 머신의 배치가 중단되었다는 것을 결정하는 대기 요청 매니저; 및
    상기 제2 가상 머신이 배치되었음을 검출하는 알림 요청 매니저
    를 포함하고,
    상기 대기 요청 매니저는, 상기 제2 가상 머신이 배치되었음을 검출하는 것에 응답하여, 상기 제1 가상 머신의 배치를 지속할 수 있음을 상기 제1 가상 머신에 알림하는 장치.
  38. 제37항에 있어서,
    상기 대기 요청 매니저는,
    상기 제1 가상 머신으로부터의 대기 요청에 기초하여 상기 제1 가상 머신의 배치가 중단되었음을 결정하는 것인 장치.
  39. 제38항에 있어서,
    데이터스토어에 상기 대기 요청의 표시를 저장하는 대기 데이터스토어 매니저
    를 더 포함하는 장치.
  40. 제38항에 있어서,
    상기 대기 요청 매니저로부터 상기 대기 요청으로부터의 정보에 응답하여, 상기 제2 가상 머신을 식별하기 위하여 상기 대기 요청에서 식별된 작업부하에 대하여 가상 머신들의 인벤토리를 문의하는 인벤토리 매니저
    를 더 포함하는 장치.
  41. 제40항에 있어서,
    상기 제2 가상 머신으로부터 수신된 알림에 대하여 데이터스토어에 문의하는 알림 데이터스토어 매니저
    를 더 포함하는 장치.
  42. 제37항에 있어서,
    상기 알림 요청 매니저는,
    상기 제2 가상 머신으로부터의 알림 요청에 기초하여 상기 제2 가상 머신이 배치되었음을 검출하는 것인 장치.
  43. 실행시, 머신이 적어도:
    제2 가상 머신의 배치와 병렬적으로 제1 가상 머신의 배치를 개시하고;
    상기 제1 가상 머신의 배치가 시작된 후, 상기 제1 가상 머신의 배치가, 완전히 배치되지 않은 상기 제2 가상 머신에 의존하는 포인트에 상기 제1 가상 머신의 배치가 도달하였기 때문에 상기 제1 가상 머신의 배치가 중단되었다는 것을 결정하고; 및
    상기 제2 가상 머신이 배치되었음을 검출하는 것에 응답하여, 상기 제1 가상 머신의 배치를 지속할 수 있음을 상기 제1 가상 머신에 알림하도록 하는
    명령어들을 포함하는 컴퓨터 판독가능한 저장 매체.
  44. 제43항에 있어서,
    상기 명령어들은, 실행시 상기 머신이,
    상기 제1 가상 머신으로부터 대기 요청에 기초하여 상기 제1 가상 머신의 배치가 중단되었음을 결정하도록 하는
    컴퓨터 판독가능한 저장 매체.
  45. 제44항에 있어서,
    상기 명령어들은, 실행시 상기 머신이,
    데이터스토어에 상기 대기 요청의 표시를 저장하도록 하는
    컴퓨터 판독가능한 저장 매체.
  46. 제44항에 있어서,
    상기 명령어들은, 실행시 상기 머신이,
    상기 대기 요청에 응답하여, 상기 제2 가상 머신을 식별하기 위하여 상기 대기 요청에서 식별된 작업부하에 대하여 가상 머신들의 인벤토리를 문의하도록 하는
    컴퓨터 판독가능한 저장 매체.
  47. 제46항에 있어서,
    상기 명령어들은, 실행시 상기 머신이,
    상기 제2 가상 머신으로부터 수신된 알림에 대하여 데이터스토어에 문의함으로써 상기 제2 가상 머신이 배치되었음을 검출하도록 하는
    컴퓨터 판독가능한 저장 매체.
  48. 제43항에 있어서,
    상기 명령어들은, 실행시 상기 머신이,
    상기 제2 가상 머신으로부터의 알림 요청에 기초하여 상기 제2 가상 머신이 배치되었음을 검출하도록 하는
    컴퓨터 판독가능한 저장 매체.
  49. 프로세서 상에 제1 명령어를 실행함으로써, 제2 가상 머신의 배치와 병렬적으로 제1 가상 머신의 배치를 개시하는 단계;
    상기 프로세서 상에 제2 명령어를 실행함으로써, 상기 제1 가상 머신의 배치가 시작된 후, 상기 제1 가상 머신의 배치가 상기 제2 가상 머신에 의존하고, 상기 제2 가상 머신이 완전히 배치되지 않은 포인트에 상기 제1 가상 머신의 배치가 도달하였음을 결정하는 단계;
    상기 프로세서 상에 제3 명령어를 실행함으로써, 상기 결정하는 단계에 응답하여, 상기 제1 가상 머신이 배치를 시작한 후(after the first virtual machine has begun deployment) 상기 제1 가상 머신의 배치를 중단하는 단계;
    상기 프로세서 상에 제4 명령어를 실행함으로써, 상기 제2 가상 머신이 배치되었음을 검출하는 단계; 및
    상기 프로세서 상에 제5 명령어를 실행함으로써, 상기 검출하는 단계에 응답하여, 상기 제1 가상 머신의 배치를 재개하는 단계
    를 포함하는 방법.
  50. 제49항에 있어서,
    상기 중단하는 단계는,
    대기 요청을 전송하는 단계
    를 포함하는 방법.
  51. 제49항에 있어서,
    상기 중단하는 단계는,
    의존성 제어기에 대기 요청을 전송하는 단계
    를 포함하는 방법.
  52. 제49항에 있어서,
    상기 제2 가상 머신이 배치되었음을 검출하는 단계는,
    상기 제2 가상 머신에 의해 의존성 제어기에 전송된 알림 요청에 반응하는 알림을 수신하는 단계
    를 포함하는 방법.
  53. 실행시, 머신이 적어도:
    제2 가상 머신의 배치와 병렬적으로 제1 가상 머신의 배치를 개시하고;
    상기 제1 가상 머신의 배치가 시작된 후, 상기 제1 가상 머신의 배치가 완전히 배치되지 않은 상기 제2 가상 머신에 의존하는 포인트에 상기 제1 가상 머신의 배치가 도달하였는지를 결정하고;
    상기 결정에 응답하여, 상기 제1 가상 머신이 배치를 시작한 후 상기 제1 가상 머신의 배치를 중단하고;
    상기 제2 가상 머신이 배치되었음을 검출하고; 및
    상기 검출에 응답하여, 상기 제1 가상 머신의 배치를 재개하도록 하는
    명령어들을 포함하는 컴퓨터 판독가능한 저장 매체.
  54. 제53항에 있어서,
    상기 명령어들은, 실행시 상기 머신이,
    대기 요청을 전송함으로써 상기 배치를 중단하도록 하는
    컴퓨터 판독가능한 저장 매체.
  55. 제53항에 있어서,
    상기 명령어들은, 실행시 상기 머신이,
    의존성 제어기에 대기 요청을 전송함으로써 상기 배치를 중단하도록 하는
    컴퓨터 판독가능한 저장 매체.
  56. 제53항에 있어서,
    상기 명령어들은, 실행시 상기 머신이,
    상기 제2 가상 머신에 의해 전송된 알림 요청에 반응하는 알림을 수신함으로써 상기 제2 가상 머신이 배치되었음을 검출하도록 하는
    컴퓨터 판독가능한 저장 매체.
  57. 제1 가상 머신 및 제2 가상 머신의 배치 동안, 상기 제1 가상 머신의 배치가, 완전히 배치되지 않은 상기 제2 가상 머신에 의존하는 포인트에 상기 제1 가상 머신의 배치가 도달하였는지를 결정하고, 상기 결정에 응답하여, 상기 제1 가상 머신이 배치를 시작한 후 상기 제1 가상 머신의 배치를 중단하는 대기 요청 매니저; 및
    상기 제2 가상 머신이 배치되었음을 검출하고, 및 상기 검출에 응답하여, 상기 제1 가상 머신의 배치를 재개하는 알림 요청 매니저
    를 포함하는 장치.
  58. 제57항에 있어서,
    상기 대기 요청 매니저는,
    대기 요청을 전송함으로써 상기 배치를 중단하는장치.
  59. 제57항에 있어서,
    상기 대기 요청 매니저는,
    의존성 제어기에 대기 요청을 전송함으로써 배치를 중단하는 장치.
  60. 제57항에 있어서,
    상기 알림 요청 매니저는,
    상기 제2 가상 머신에 의해 전송된 알림 요청에 반응하는 알림을 수신함으로써 상기 제2 가상 머신이 배치되었음을 검출하는 장치.
KR1020167012293A 2013-10-11 2014-10-10 가상 머신들을 관리하는 장치 및 방법 KR102277715B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201361889971P 2013-10-11 2013-10-11
US61/889,971 2013-10-11
US14/315,296 US9465834B2 (en) 2013-10-11 2014-06-25 Methods and apparatus to manage virtual machines
US14/315,296 2014-06-25
US14/315,297 2014-06-25
US14/315,297 US9361335B2 (en) 2013-10-11 2014-06-25 Methods and apparatus to manage virtual machines
PCT/US2014/060047 WO2015054582A1 (en) 2013-10-11 2014-10-10 Methods and apparatus to manage virtual machines

Publications (2)

Publication Number Publication Date
KR20160067180A KR20160067180A (ko) 2016-06-13
KR102277715B1 true KR102277715B1 (ko) 2021-07-15

Family

ID=52810784

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167012293A KR102277715B1 (ko) 2013-10-11 2014-10-10 가상 머신들을 관리하는 장치 및 방법

Country Status (5)

Country Link
US (6) US9361336B2 (ko)
EP (1) EP3055770B1 (ko)
KR (1) KR102277715B1 (ko)
CN (1) CN105793820B (ko)
WO (1) WO2015054582A1 (ko)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9836466B1 (en) * 2009-10-29 2017-12-05 Amazon Technologies, Inc. Managing objects using tags
US9582219B2 (en) 2013-03-12 2017-02-28 Netapp, Inc. Technique for rapidly converting between storage representations in a virtualized computing environment
US10454714B2 (en) 2013-07-10 2019-10-22 Nicira, Inc. Method and system of overlay flow control
US9361336B2 (en) 2013-10-11 2016-06-07 Vmware, Inc. Methods and apparatus to manage virtual machines
US10216531B2 (en) 2014-05-12 2019-02-26 Netapp, Inc. Techniques for virtual machine shifting
US9841991B2 (en) * 2014-05-12 2017-12-12 Netapp, Inc. Techniques for virtual machine migration
US9430284B2 (en) * 2014-06-26 2016-08-30 Vmware, Inc. Processing virtual machine objects through multistep workflows
US9594649B2 (en) 2014-10-13 2017-03-14 At&T Intellectual Property I, L.P. Network virtualization policy management system
US9448833B1 (en) * 2015-04-14 2016-09-20 International Business Machines Corporation Profiling multiple virtual machines in a distributed system
US10970110B1 (en) * 2015-06-25 2021-04-06 Amazon Technologies, Inc. Managed orchestration of virtual machine instance migration
WO2017003328A1 (en) * 2015-06-30 2017-01-05 Telefonaktiebolaget Lm Ericsson (Publ) Commissioning of virtualized entities
EP3211531B1 (en) * 2016-02-25 2021-12-22 Huawei Technologies Co., Ltd. Virtual machine start method and apparatus
US10411974B2 (en) 2016-03-20 2019-09-10 CloudBolt Software Inc. Cloud computing service catalog
US20170272321A1 (en) * 2016-03-20 2017-09-21 CloudBolt Software Inc. Cloud computing configuration form generator
US9817592B1 (en) 2016-04-27 2017-11-14 Netapp, Inc. Using an intermediate virtual disk format for virtual disk conversion
US10572247B2 (en) * 2016-06-01 2020-02-25 Dell Products L.P. Prototype management system
US11153224B2 (en) * 2017-02-09 2021-10-19 Radcom Ltd. Method of providing cloud computing infrastructure
US11005733B2 (en) * 2017-06-08 2021-05-11 Vmware, Inc Methods, systems, and apparatus to scale in and/or scale out resources managed by a cloud automation system
US10608844B2 (en) 2017-10-02 2020-03-31 Vmware, Inc. Graph based routing through multiple public clouds
US10999100B2 (en) 2017-10-02 2021-05-04 Vmware, Inc. Identifying multiple nodes in a virtual network defined over a set of public clouds to connect to an external SAAS provider
US11115480B2 (en) 2017-10-02 2021-09-07 Vmware, Inc. Layer four optimization for a virtual network defined over public cloud
US11223514B2 (en) 2017-11-09 2022-01-11 Nicira, Inc. Method and system of a dynamic high-availability mode based on current wide area network connectivity
JP2019191951A (ja) * 2018-04-25 2019-10-31 株式会社日立製作所 情報処理システム及びボリューム割当て方法
US10656930B2 (en) * 2018-09-12 2020-05-19 Microsoft Technology Licensing, Llc Dynamic deployment target control
US11487590B2 (en) * 2018-10-09 2022-11-01 Kyndryl, Inc. Orchestration engine resources and blueprint definitions for hybrid cloud composition
US11038926B2 (en) * 2019-01-23 2021-06-15 Vmware, Inc. System and method for embedding infrastructure security services into management nodes
CN110336689A (zh) * 2019-05-17 2019-10-15 清华大学 网络功能服务组链的处理方法、装置及电子设备
US11294774B2 (en) * 2019-07-19 2022-04-05 EMC IP Holding Company LLC Method for managing backup data on first, second, or third virtual machine management platform
US11288104B2 (en) * 2019-08-06 2022-03-29 International Business Machines Corporation Automatic dynamic operating system provisioning
US11121985B2 (en) 2019-08-27 2021-09-14 Vmware, Inc. Defining different public cloud virtual networks for different entities based on different sets of measurements
US11601356B2 (en) 2020-12-29 2023-03-07 Vmware, Inc. Emulating packet flows to assess network links for SD-WAN
US11979325B2 (en) 2021-01-28 2024-05-07 VMware LLC Dynamic SD-WAN hub cluster scaling with machine learning
US12009987B2 (en) 2021-05-03 2024-06-11 VMware LLC Methods to support dynamic transit paths through hub clustering across branches in SD-WAN
US20220407915A1 (en) * 2021-06-18 2022-12-22 Vmware, Inc. Method and apparatus for deploying tenant deployable elements across public clouds based on harvested performance metrics
US12015536B2 (en) 2021-06-18 2024-06-18 VMware LLC Method and apparatus for deploying tenant deployable elements across public clouds based on harvested performance metrics of types of resource elements in the public clouds
US11943146B2 (en) 2021-10-01 2024-03-26 VMware LLC Traffic prioritization in SD-WAN
US11909815B2 (en) 2022-06-06 2024-02-20 VMware LLC Routing based on geolocation costs

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100325628A1 (en) 2008-02-25 2010-12-23 Tomoyuki Haga Information processing device
JP2011090594A (ja) 2009-10-26 2011-05-06 Hitachi Ltd サーバ管理装置およびサーバ管理方法
JP2011100431A (ja) 2009-11-09 2011-05-19 Inst For Information Industry 仮想マシン制御装置及び仮想マシン制御方法
US20130232498A1 (en) 2012-03-02 2013-09-05 Vmware, Inc. System to generate a deployment plan for a cloud infrastructure according to logical, multi-tier application blueprint

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7207041B2 (en) 2001-06-28 2007-04-17 Tranzeo Wireless Technologies, Inc. Open platform architecture for shared resource access management
US7392524B2 (en) * 2004-04-06 2008-06-24 International Business Machines Corporation Method, system, and storage medium for managing computer processing functions
US7680758B2 (en) * 2004-09-30 2010-03-16 Citrix Systems, Inc. Method and apparatus for isolating execution of software applications
US7730486B2 (en) 2005-02-28 2010-06-01 Hewlett-Packard Development Company, L.P. System and method for migrating virtual machines on cluster systems
US7647596B2 (en) * 2005-12-08 2010-01-12 Newisys, Inc. Method for sharing a data store across event management frameworks and system comprising same
US8387048B1 (en) * 2006-04-25 2013-02-26 Parallels IP Holdings GmbH Seamless integration, migration and installation of non-native application into native operating system
US8458695B2 (en) 2006-10-17 2013-06-04 Manageiq, Inc. Automatic optimization for virtual systems
US8171485B2 (en) * 2007-03-26 2012-05-01 Credit Suisse Securities (Europe) Limited Method and system for managing virtual and real machines
US8230425B2 (en) * 2007-07-30 2012-07-24 International Business Machines Corporation Assigning tasks to processors in heterogeneous multiprocessors
US8219988B2 (en) 2007-08-02 2012-07-10 International Business Machines Corporation Partition adjunct for data processing system
JP4924514B2 (ja) * 2008-03-31 2012-04-25 富士通株式会社 仮想マシン管理プログラム、管理サーバ装置及び仮想マシン管理方法
US8271974B2 (en) * 2008-10-08 2012-09-18 Kaavo Inc. Cloud computing lifecycle management for N-tier applications
US8387060B2 (en) 2009-10-01 2013-02-26 Dell Products L.P. Virtual machine resource allocation group policy based on workload profile, application utilization and resource utilization
US8392497B2 (en) * 2009-11-25 2013-03-05 Framehawk, LLC Systems and algorithm for interfacing with a virtualized computing service over a network using a lightweight client
US20110126197A1 (en) * 2009-11-25 2011-05-26 Novell, Inc. System and method for controlling cloud and virtualized data centers in an intelligent workload management system
US8789041B2 (en) * 2009-12-18 2014-07-22 Verizon Patent And Licensing Inc. Method and system for bulk automated virtual machine deployment
US8631403B2 (en) * 2010-01-04 2014-01-14 Vmware, Inc. Method and system for managing tasks by dynamically scaling centralized virtual center in virtual infrastructure
US9021046B2 (en) 2010-01-15 2015-04-28 Joyent, Inc Provisioning server resources in a cloud resource
US8572611B2 (en) * 2010-03-03 2013-10-29 International Business Machines Corporation Managing conflicts between multiple users accessing a computer system having shared resources assigned to one or more logical partitions and one or more appliance partitions
US8972980B2 (en) * 2010-05-28 2015-03-03 Bromium, Inc. Automated provisioning of secure virtual execution environment using virtual machine templates based on requested activity
US20120084445A1 (en) 2010-10-05 2012-04-05 Brock Scott L Automatic replication and migration of live virtual machines
WO2012063306A1 (ja) 2010-11-08 2012-05-18 三菱電機株式会社 仮想計算機制御装置、仮想計算機制御システム、仮想計算機制御装置の仮想計算機制御方法および仮想計算機制御プログラム
US8458699B2 (en) 2010-11-18 2013-06-04 Hewlett-Packard Development Company, L.P. Methods, systems, and apparatus to prioritize computing devices for virtualization
US9329886B2 (en) * 2010-12-10 2016-05-03 Amazon Technologies, Inc. Virtual machine morphing for heterogeneous migration environments
US8959511B2 (en) 2010-12-14 2015-02-17 Microsoft Corporation Template virtual machines
US8910156B1 (en) 2011-04-29 2014-12-09 Netapp, Inc. Virtual machine dependency
US8601473B1 (en) 2011-08-10 2013-12-03 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US8850442B2 (en) * 2011-10-27 2014-09-30 Verizon Patent And Licensing Inc. Virtual machine allocation in a computing on-demand system
US9043784B2 (en) * 2012-01-12 2015-05-26 Red Hat, Inc. Management of inter-dependent configurations of virtual machines in a cloud
US9116736B2 (en) 2012-04-02 2015-08-25 Cisco Technology, Inc. Virtualized movement of enhanced network services associated with a virtual machine
GB2507753A (en) 2012-11-07 2014-05-14 Ibm Dynamic configuration of virtual appliances
US9063971B2 (en) 2012-12-03 2015-06-23 Red Hat Israel, Ltd. Schema and query abstraction for different LDAP service providers
US20140359612A1 (en) 2013-06-03 2014-12-04 Microsoft Corporation Sharing a Virtual Hard Disk Across Multiple Virtual Machines
US9361336B2 (en) * 2013-10-11 2016-06-07 Vmware, Inc. Methods and apparatus to manage virtual machines

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100325628A1 (en) 2008-02-25 2010-12-23 Tomoyuki Haga Information processing device
JP2011090594A (ja) 2009-10-26 2011-05-06 Hitachi Ltd サーバ管理装置およびサーバ管理方法
JP2011100431A (ja) 2009-11-09 2011-05-19 Inst For Information Industry 仮想マシン制御装置及び仮想マシン制御方法
US20130232498A1 (en) 2012-03-02 2013-09-05 Vmware, Inc. System to generate a deployment plan for a cloud infrastructure according to logical, multi-tier application blueprint

Also Published As

Publication number Publication date
WO2015054582A1 (en) 2015-04-16
US20150106807A1 (en) 2015-04-16
US20150106806A1 (en) 2015-04-16
US9336266B2 (en) 2016-05-10
US9465834B2 (en) 2016-10-11
EP3055770A1 (en) 2016-08-17
EP3055770B1 (en) 2020-09-23
EP3055770A4 (en) 2017-06-28
US20150106808A1 (en) 2015-04-16
US9361335B2 (en) 2016-06-07
CN105793820A (zh) 2016-07-20
US10698712B2 (en) 2020-06-30
CN105793820B (zh) 2019-08-06
US20150106809A1 (en) 2015-04-16
US20200401437A1 (en) 2020-12-24
KR20160067180A (ko) 2016-06-13
US9361336B2 (en) 2016-06-07
US11307890B2 (en) 2022-04-19
US20170010913A1 (en) 2017-01-12

Similar Documents

Publication Publication Date Title
KR102277715B1 (ko) 가상 머신들을 관리하는 장치 및 방법
US10678585B2 (en) Methods and apparatus to automatically configure monitoring of a virtual machine
US11265366B2 (en) Lifecycle management of custom resources in a cloud computing environment
US10970057B2 (en) Methods and apparatus to generate a customized application blueprint
US20210111957A1 (en) Methods, systems and apparatus to propagate node configuration changes to services in a distributed environment
US11461125B2 (en) Methods and apparatus to publish internal commands as an application programming interface in a cloud infrastructure
US11757730B2 (en) Methods, systems and apparatus for custom interface specification in a cloud management system
US9268592B2 (en) Methods and apparatus to generate a customized application blueprint
US11061737B2 (en) Methods, systems and apparatus for governance of virtual computing infrastructure resources

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right