KR20150035517A - 네트워크 간의 어플리케이션의 이전 - Google Patents

네트워크 간의 어플리케이션의 이전 Download PDF

Info

Publication number
KR20150035517A
KR20150035517A KR1020147030448A KR20147030448A KR20150035517A KR 20150035517 A KR20150035517 A KR 20150035517A KR 1020147030448 A KR1020147030448 A KR 1020147030448A KR 20147030448 A KR20147030448 A KR 20147030448A KR 20150035517 A KR20150035517 A KR 20150035517A
Authority
KR
South Korea
Prior art keywords
network
applications
processor
transferring
data set
Prior art date
Application number
KR1020147030448A
Other languages
English (en)
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 KR20150035517A publication Critical patent/KR20150035517A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

제1 네트워크로부터 제2 네트워크로 다수의 어플리케이션을 이전하는 방법은, 프로세서를 이용하여, 제1 네트워크에 대한 의존성 데이터 세트(dependency data set)를 생성하는 단계와, 의존성 데이터 세트에 기초하여 제1 네트워크로부터 제2 네트워크로 다수의 어플리케이션을 이전하기 위한 이전 계획(migration plan)을 생성하는 단계와, 이전 계획에 기초하여 제1 네트워크로부터 제2 네트워크로 다수의 어플리케이션을 이전하는 단계를 포함한다. 제1 네트워크로부터 제2 네트워크로 다수의 어플리케이션을 이전하는 이전 디바이스는, 프로세서와, 프로세서에 통신 가능하게 결합된 데이터 저장 디바이스를 포함하며, 프로세서가 제1 네트워크에 대한 의존성 데이터 세트를 생성하고, 의존성 데이터 세트에 기초하여 제1 네트워크로부터 제2 네트워크로 다수의 어플리케이션을 이전한다.

Description

네트워크 간의 어플리케이션의 이전{MIGRATING APPLICATIONS BETWEEN NETWORKS}
본 발명은 네트워크 간의 어플리케이션의 이전에 관한 것이다.
개인과 기업이 자신의 정보 기술(IT) 인프라스트럭쳐 및 리소스를 확장할 수 있도록 하기 위하여 클라우드 컴퓨팅 서비스가 개인 및 기업에 대해 점점 더 이용 가능하게 되고 있다. 이들 개인 및 기업은 개인 또는 기업의 내부 IT 인프라스트럭처 또는 리소스가 과사용(over-utilize)되거나 또는 네트워크 활동의 증가를 수용하기에 불충분할 시에 클라우드 서비스 제공자와 계약을 체결하는 경우가 있다. 네트워크 활동에서의 이러한 증가는 예컨대 각자의 상품 또는 서비스의 판매의 증가로 인한 것일 수도 있다. 이러한 양상에서, 개인 또는 기업은 퍼블릭 클라우드 컴퓨팅 서비스(public cloud computing service)에 연관된 규모의 경제의 이점을 취할 수도 있다.
퍼블릭 클라우드 컴퓨팅 서비스를 구매한 후, 개인 또는 기업은 퍼블릭 클라우드 컴퓨팅 서비스에 연관된 비용이 이 서비스의 이점보다 클 수도 있다는 것을 발견할 수도 있다. 예컨대, 개인 또는 기업은 클라우드 서비스 제공자로부터 퍼블릭 클라우드 컴퓨팅 서비스를 구입하는 것보다 IT 인프라스트럭처 또는 리소스를 구입하여 이들 리소스를 내부적으로 및 사적으로(privately) 실시하는 것이 보다 저렴하거나 편리하다는 것을 발견할 수도 있다. 그러나, 이들 개인 및 기업이 이들의 내부의 프라이빗 클라우드 컴퓨팅 네트워크(private cloud computing network)를 실시하고, 어플리케이션 및 어플리케이션 콤포넌트를 퍼블릭 클라우드 네트워크로부터 이들의 내부의 프라이빗 클라우드 컴퓨팅 네트워크로 끊김없이 이전하는 것이 곤란할 수도 있다.
본 발명에서 제공되는 시스템 및 방법은 퍼블릭 클라우드 네트워크로부터 예컨대 프라이빗 클라우드 네트워크와 같은 또 다른 클라우드 네트워크로 다수의 프로그램 및 프로그램 콤포넌트를 이전하는 자동적인 방법을 제공한다. 이들 시스템 및 방법은 사용자가 프라이빗 클라우드 네트워크를 활용함으로써 자신의 클라우드 컴퓨팅 서비스를 스케일 인(scale in)할 수 있게 한다.
몇몇 경우에, 프라이빗 클라우드 네트워크를 형성하는 것이 클라우드 서비스 구매자에 대해서는 퍼블릭 클라우드 서비스를 구매하는 것보다 비용이 더 저렴할 수 있다.
첨부 도면은 본 명세서에서 설명되는 원리의 다양한 예를 도시하며, 본 명세서의 일부분을 이룬다. 예시된 예는 단지 예시를 위해 제공된 것으로, 청구항들의 범위를 한정하지 않는다.
도 1은 본 명세서에 설명되는 원리의 일례에 따른, 퍼블릭 클라우드로부터 프라이빗 클라우드로 어플리케이션을 이전하기 위한 시스템의 블록도이다.
도 2는 본 명세서에 설명되는 원리의 일례에 따른 도 1의 이전 디바이스(migration device)의 블록도이다.
도 3은 본 명세서에 설명되는 원리의 일례에 따른, 제1 네트워크로부터 제2 네트워크로 다수의 어플리케이션을 이전하는 방법을 보여주는 흐름도이다.
도 4는 본 명세서에 설명되는 원리의 또 다른 예에 따른, 제1 네트워크로부터 제2 네트워크로 다수의 어플리케이션을 이전하는 방법을 보여주는 흐름도이다.
여러 도면에 걸쳐 동일한 도면 부호는 유사하지만 반드시 동일한 필요는 없는 구성요소를 나타낸다.
본 명세서 및 청구범위에 사용된 바와 같이, "클라우드"라는 용어는 요청된 가상의 리소스(virtual resource)를 서비스로서 전달하는 어떠한 네트워크로서 폭넓게 이해되는 의미를 갖는다. 일례에서, 클라우드 네트워크는 사용자가 자신의 연결된 디바이스를 통해 어떤 곳으로부터도 어플리케이션 또는 컴퓨팅 리소스를 서비스로서 액세스할 수 있는 컴퓨팅 환경을 제공할 수 있다. 이들 서비스는 클라우드 서비스 제공자로 지칭되는 엔티티에 의해 제공될 수 있다. 클라우드 네트워크를 통해 제공될 수 있는 서비스의 예는 IaaS(infrastructure as a service), PaaS(platform as a service), 및 SaaS(software as a service)를 포함한다.
본 명세서 및 첨부된 청구범위에 사용된 바와 같이, "퍼블릭 클라우드"라는 용어는 어플리케이션, 스토리지 및 기타 리소스를 일반 대중에게 이용할 수 있게 하는 네트워크를 통해 서비스 제공자에 의해 제공되는 다수의 서비스로서 폭넓게 이해되는 이해를 갖는다. 일례에서, 이들 서비스는 이용 요금제 모델(pay-per-use model)로 서비스 제공자에 의해 제공된다. 이 예에서, 퍼블릭 클라우드 서비스 제공자는 인프라스트럭처를 소유하고 운영한다. 또 다른 예에서, 퍼블릭 클라우드 서비스 제공자는 예컨대 인터넷과 같은 퍼블릭 네트워크를 통해 액세스를 제공하며, 직접 접속성(direct connectivity)이 제공되지 않는다. 퍼블릭 클라우드 내에서 제공되는 클라우드 서비스의 예로는 Amazon.com, Inc.에 의해 개발되고 서비스로서 판매되는 AMAZON WEB SERVICES 또는 Rackspace US, Inc.에 의해 개발되고 제공되는 RACKSPACE CLOUD 웹 어플리케이션 호스팅 서비스가 있다.
본 명세서 및 첨부된 청구범위에 사용된 바와 같이, "프라이빗 클라우드"라는 용어는 개인 또는 기업에 대해 액세스가 독점적으로 제한되는 임의의 클라우드 컴퓨팅 환경으로서 폭넓게 이해되는 의미를 갖는다. 일례에서, 프라이빗 클라우드는 한명의 개인 또는 하나의 기업을 위해 단독으로 운영되는 어떠한 클라우드 인프라스트럭처이어도 된다. 일례에서, 프라이빗 클라우드는 프라이빗 클라우드 인프라스트럭처의 소유자에 의해 내부에서 관리된다. 또 다른 예에서, 프라이빗 클라우드는 제3자에 의해 관리되고, 내부에서 또는 외부에서 호스팅된다.
본 명세서 및 첨부된 청구범위에 사용된 바와 같이, "스케일링 아웃(scaling out)" 또는 유사 표현의 용어는 네트워크 활동의 증가를 수용하기 위해 클라우드 컴퓨팅 환경 내에서 더 많은 리소스를 할당하거나 소비하는 임의의 활동으로서 폭넓게 이해되는 의미를 갖는다. 유사하게, 본 명세서 및 첨부된 청구범위에 사용된 바와 같이, "스케일링 인(scaling in)" 또는 유사 표현의 용어는 클라우드 컴퓨팅 환경 내의 리소스를 해방하거나, 자유롭게 하거나 또는 해제하는 임의의 활동으로서 폭넓게 이해되는 의미를 갖는다.
본 명세서 및 첨부된 청구범위에 사용된 바와 같이, "의존성 데이터 세트(dependency data set)"라는 용어는 네트워크 내에 배포(deploy)될 때의 네트워크 리소스의 인스턴스와 어플리케이션 간의 다수의 관계를 규정하는 임의의 데이터 세트로서 폭넓게 이해되는 의미를 갖는다. 그러므로, 의존성 데이터 세트는 어플리케이션이 배포되거나 스케일 아웃될 수 있는 방법을 규정하기 위해 이용될 수 있다. 일례에서, 의존성 데이터 세트는, 다른 것들 중에서도, 예컨대 하드웨어 레이어, 가상화 레이어(virtualization layer), 운영 시스템, 소프트웨어 의존성, 기타 어플리케이션, 어플리케이션 내의 어플리케이션 모듈, 어플리케이션의 성질, 어플리케이션의 버전에 관한 정보, 어플리케이션의 바이너리, 어플리케이션 내의 어플리케이션 모듈의 성질, 로드 밸런서(load balancer), 서버, 서버의 타입, 네트워크 내의 웹 서버, 네트워크 내의 어플리케이션 서버, 하드웨어 레이어 내의 데이터베이스, 클라우드 서비스, 크레덴셜(credential), 퍼블릭 클라우드에서 사용되는 모니터링 또는 관리 툴, 및 퍼블릭 클라우드 내에서 소비된 서비스 오퍼링(service offering)과 같은 클라우드 서비스 네트워크 내의 클라우드 네트워크 리소스의 기타 인스턴스와 어플리케이션 간의 다수의 관계를 규정한다.
일례에서, 의존성 데이터 세트는 루트 리소스를 상징하는 루트 노드, 및 다수의 리소스와 루트 리소스로부터의 이들 다수의 리소스의 의존성 및 이들 다수의 리소스의 서로에 대한 의존성과의 관계를 상징하는 자식 노드(child node)를 갖는 계층적 트리(hierarchal tree)로서 표현될 수 있다. 루트 노드와 자식 노드 사이의 라인은 네트워크 A(104) 내의 다양한 요소들 간의 관계 및 의존성을 상징한다.
또한, 본 명세서 및 첨부된 청구범위에 사용된 바와 같이, "다수" 또는 그 유사 표현의 용어는 1부터 무한대까지를 포함하는 양수로서 폭넓게 이해되는 의미를 가지며, 영(0)은 수가 아니라 수가 존재하지 않음을 의미한다.
이하의 설명에서는, 설명을 목적으로, 본 시스템 및 방법에 대한 완전한 이해를 제공하기 위해 많은 구체적인 세부 구성이 설명된다. 그러나, 본 장치, 시스템 및 방법은 구체적인 세부 구성 없이도 실시될 수 있다는 것이 당업자에게는 명백할 것이다. 본 명세서에서의 "예" 또는 그 유사 표현으로의 지칭은 그 예에 관련하여 설명된 특정한 특징부, 구조 또는 특성이 설명된 바와 같이 포함되지만, 다른 예에서는 포함되지 않을 수도 있다는 것을 의미한다.
도 1을 참조하면, 본 명세서에 개시되는 원리의 일례에 따른, 어플리케이션을 퍼블릭 클라우드로부터 프라이빗 클라우드로 이전하기 위한 시스템의 블록도가 도시되어 있다. 도 1은 다수의 어플리케이션을 퍼블릭 클라우드 서비스 제공자에 의해 지원되는 퍼블릭 클라우드로부터 예컨대 내부 프라이빗 클라우드와 같은 또 다른 클라우드 서비스로 이전하기 위한 시스템(100)을 도시하고 있다. 이 시스템(100)은 다수의 네트워크, 즉 네트워크 A(104) 및 네트워크 B(106)에 대한 액세스를 갖는 이전 디바이스(102)를 포함할 수 있다. 도 1에는 2개의 네트워크(104, 106)가 도시되어 있지만, 어떠한 개수의 네트워크(104, 106)도 이전 디바이스(102)에 통신 가능하게 결합될 수 있다. 일례에서, 네트워크는 위에서 규정된 바와 같은 클라우드 서비스 네트워크이다. 본 명세서 및 도면 전반에 걸쳐, 네트워크 A(104) 및 네트워크 B(106)는 클라우드 서비스 네트워크로서 설명될 것이다. 그러나, 본 시스템 및 방법의 목적을 달성함에 있어서 어떠한 형태의 네트워크도 채용될 수 있다.
네트워크(104, 106)는 다수의 서버(120, 140)를 포함할 수 있다. 도 1의 예에서, 각각의 네트워크(104, 106)는 하나의 서버(120, 140)를 포함한다. 그러나, 각각의 네트워크(104, 106)는 어떠한 개수의 서버(120, 140)도 포함할 수 있다. 도 1에 도시된 바와 같이, 각각의 서버는 컴퓨팅 디바이스를 형성하기 위해 다른 컴퓨터 하드웨어 디바이스 중에서도 예컨대 프로세서 및 메모리를 포함하는 하드웨어 레이어(121, 141)를 포함한다.
하드웨어 레이어(121, 141)는 가상화 레이어(122, 142)를 지원한다. 서버(120, 140) 내의 가상화 레이어(122, 142)는 다른 것들 중에서도 예컨대 가상 서버, 가상 스토리지, 가상 프라이빗 네트워크를 포함하는 가상 네트워크, 가상 어플리케이션 및 운영 시스템, 및 가상 클라이언트와 같은 가상 엔티티가 설치될 수 있는 추상화 레이어(abstraction layer)를 제공한다. 특히, 다수의 운영 시스템(123, 143) 및 어플리케이션(124, 144)은 하드웨어 레이어(121, 141)에서 프로세서에 의해 실행될 수 있다. 도 1의 서버(120, 140) 내에 단지 하나의 운영 시스템(123, 143) 및 어플리케이션(124, 144)이 도시되어 있지만, 이들 가상 리소스에 대한 액세스를 한명의 사용자 또는 다수의 상이한 사용자에게 제공하기 위해 서버(120, 140) 내에는 이들 자신의 각자의 운영 시스템 및 어플리케이션을 포함하는 가상 머신의 어떠한 개수도 예시될 수 있다.
일례에서, 서버(120, 140) 상에서 실행되는 어플리케이션(124, 144)은 동일하거나 상이한 타입의 각자의 운영 시스템(123, 143) 상에서 실행될 수 있다. 각각의 어플리케이션(124, 144) 및 이들의 각자의 운영 시스템(123, 143)은 다른 것들 중에서도 예컨대 프로세서, 메모리, 네트워크 어댑터, 및 데이터 저장 디바이스와 같은 하드웨어 레이어(121, 141)에 의해 지원되는 추가의 가상 리소스에 연관될 수 있다.
네트워크(104, 106) 내의 클라우드 서비스 관리 레이어(125, 145)는 네트워크(104, 106) 내의 서버(120, 140)에 상주하는 클라우드 서비스의 관리를 제공한다. 일례에서, 클라우드 서비스 관리 레이어(125, 145)가 리소스를 제공한다. 리소스 제공은 클라우드 컴퓨팅 환경 내에서 태스크를 수행하기 위해 활용되는 컴퓨팅 리소스 및 기타 리소스의 동적 조달(dynamic procurement)을 제공한다. 또 다른 예에서, 클라우드 서비스 관리 레이어(125, 145)는 계약된 서비스 레벨이 충족되도록 클라우드 컴퓨팅 리소스가 할당되는 서비스 레벨 관리를 제공한다. 또 다른 예에서, 클라우드 서비스 관리 레이어(125, 145)는 위의 서비스의 조합을 수행한다.
다수의 클라우드 서비스(126, 146)가 네트워크(104, 106) 내의 서버(120, 140)에 의해 지원된다. 전술한 바와 같이, 클라우드 네트워크를 통해 제공될 수 있는 서비스의 예는 IaaS(infrastructure as a service), PaaS(platform as a service), 및 SaaS(software as a service)를 포함한다. 그러므로, 어플리케이션(124, 144), 운영 시스템(123, 143), 클라우드 서비스 관리 레이어(125, 145), 및 하드웨어 레이어(121, 141)는 다수의 이들 타입의 서비스를 사용자에게 제공하기 위해 이용될 수 있다. 일례에서, 클라우드 서비스(126, 146)는 클라우드 서비스(126, 146)의 사용자 또는 구매자가 참여하는 하위 서비스(underlying service)를 지원한다. 예컨대, 클라우드 서비스(126, 146)의 사용자 또는 구매자는 일례에서 상품 또는 서비스 자체를 판매하는데 참여할 수도 있고, 예컨대 네트워크 A(104)의 소유자 및 운영자에 의해 제공되는 클라우드 서비스(126, 146)를 통해 이를 행한다.
본 예에서, 예시를 간략화하기 위해, 이전 디바이스(102), 서버 A(120), 및 서버 B(140)는 이들의 각자의 네트워크(104, 106) 및 이전 디바이스(102)를 통해 서로 통신 가능하게 결합된 별도의 컴퓨팅 디바이스이다. 그러나, 본 명세서에 설명되는 원리는 어떠한 대안의 구성에도 동등하게 확장된다. 이와 같이, 본 발명의 원리의 범위 내의 대안의 예는, 이들로 한정되지는 않지만, 이전 디바이스(102), 서버 A(120) 및 서버 B(140)가 동일한 컴퓨팅 디바이스에 의해 실시되는 예와, 이전 디바이스(102), 서버 A(120) 또는 서버 B(140)의 기능이 복수의 상호접속된 컴퓨터에 의해 실시되는 예와, 이전 디바이스(102), 서버 A(120) 및 서버 B(140)가 중개 네트워크 디바이스(intermediary network device) 없이 버스를 통해 직접 통신하는 예를 포함한다.
또 다른 예에서, 이전 디바이스(102)는 네트워크 A(104)에서부터 네트워크 B(106)로의 또는 그 반대로의 클라우드 네트워크 리소스의 기타 인스턴스와 어플리케이션의 이전을 관리하기 위해 서버 A(120) 또는 서버 B(140) 중의 하나 상에서 실시될 수 있다. 또 다른 예에서, 이전 디바이스(102)는 제3자에 의해 서비스로서 실시될 수도 있다. 이 예에서, 제3자는 예컨대 스토리지, 서버, 네트워킹 및 소프트웨어를 조합함으로써 프라이빗, 퍼블릭 및 하이브리드 클라우드 컴퓨팅 환경을 구축하는 것을 지원하는 CLOUDSYSTEM 클라우드 네트워크 인프라스트럭처를 개발한 Hewlett Packard와 같은 조직 또는 기업이어도 된다.
일례에서, 글로벌 로드 밸런서(global load balancer)(170)가 마찬가지로 이전 디바이스(105)에 통신 가능하게 결합될 수 있다. 로드 밸런서(127, 147)와 마찬가지로, 글로벌 로드 밸런서(170)는 트랜잭션 요청이 향하는 곳을 규정하는 정책의 세트를 포함한다. 이러한 방식으로, 글로벌 로드 밸런서(170)는 작업부하(workload)를 시스템(100) 또는 기타 리소스에 걸쳐 분산시켜 최적의 리소스 활용을 달성하고, 처리량을 최대화하며, 응답 시간을 최소로 하고, 과부하를 방지한다. 글로벌 로드 밸런서(170)는 또한 이전 프로세스(migration process)의 특정한 포인트 동안 프라이빗 네트워크 B(106)에 대한 로드 밸런서로서 동작한다. 일례에서, 글로벌 로드 밸런서(170) 내의 정책은 트래픽을 네트워크 A(104)로부터 네트워크 B(106)로 또는 그 반대로 리다이렉트하기 위해 갱신될 수 있다. 일례에서, 이전 디바이스(102)의 프로세서(도 2의 202)는 글로벌 로드 밸런서(170)에 대한 액세스를 갖고, 글로벌 로드 밸런서(170)를 제어할 수 있다.
전술한 바와 같이, 시스템(100)은 또한 이전 디바이스(102)를 포함할 수 있다. 이전 디바이스(102)는 소비자 및 시스템 관리자(160)에게 네트워크(104, 106)에 의해 생성된 클라우드 컴퓨팅 환경에 대한 액세스를 제공하고, 아래에 상세하게 설명되는 바와 같이 클라우드 네트워크 리소스의 기타 인스턴스 및 어플리케이션을 이전한다. 도 2는 본 명세서에 설명되는 원리의 일례에 따른 도 1의 이전 디바이스의 블록도이다.
일례에서, 이전 디바이스(102)는 본 명세서에 설명된 방법을 수행하는 컴퓨팅 디바이스이다. 또 다른 예에서, 이전 디바이스(102)는 예컨대 본 명세서에 설명된 방법을 수행하는 성능을 갖는 모바일 폰, 스마트 폰, 개인 디지털 보조장치(PDA), 또는 랩탑 컴퓨터와 같은 모바일 컴퓨팅 디바이스이다.
이전 디바이스의 요구된 기능을 달성하기 위해, 이전 디바이스(102)는 다양한 하드웨어 부품을 포함한다. 이들 하드웨어 부품으로는 하나 이상의 프로세서(202), 하나 이상의 데이터 저장 디바이스(204), 주변 디바이스 어댑터(206), 및 네트워크 어댑터(208) 등이 있다. 이들 하드웨어 부품은 다수의 버스 및/또는 네트워크 접속의 사용을 통해 상호접속될 수 있다. 일례에서, 프로세서(202), 데이터 저장 디바이스(204), 주변 디바이스 어댑터(206), 및 네트워크 어댑터(208)는 버스(107)를 통해 통신 가능하게 결합될 수 있다.
프로세서(202)는 데이터 저장 디바이스(204)로부터 실행 가능 코드를 검색는 하드웨어 아키텍처를 포함하고, 이 실행 가능 코드를 실행할 수 있다. 실행 가능 코드는, 프로세서(202)에 의해 실행될 시에, 프로세서(202)로 하여금, 아래에 설명된 본 발명의 방법에 따라, 적어도 네트워크로부터 클라우드 네트워크 리소스의 기타 인스턴스 및 어플리케이션의 이전을 관리하는 기능을 실시하도록 할 수 있다. 코드를 실행하는 도중에, 프로세서(202)는 다수의 나머지 하드웨어 유닛으로부터 입력을 수신하고, 이들에게 출력을 제공할 수 있다.
데이터 저장 디바이스(204)는 프로세서(202) 또는 기타 처리 디바이스에 의해 실행되는 실행 가능 프로그램 코드와 같은 데이터를 저장할 수 있다. 논의되는 바와 같이, 데이터 저장 디바이스(204)는 특히 적어도 제1 네트워크로부터 제2 네트워크로 클라우드 네트워크 리소스의 기타 인스턴스 및 어플리케이션의 이전을 관리하는 기능을 실시하기 위해 프로세서(202)가 실행하는 다수의 어플리케이션을 저장할 수 있다.
데이터 저장 디바이스(204)는 휘발성 메모리 및 비휘발성 메모리를 포함한 다양한 타입의 메모리 모듈을 포함할 수 있다. 예컨대, 본 예의 데이터 저장 디바이스(204)는 랜덤 액세스 메모리(RAM)(231), 판독 전용 메모리(ROM)(232), 및 하드 디스크 드라이브(HDD) 메모리(233)를 포함한다. 본 기술분야에서는 많은 다른 타입의 메모리가 이용 가능하며, 본 발명은 본 명세서에 설명된 원리의 특별한 적용에 적합할 때에는 데이터 저장 디바이스(204)에 많은 다양한 타입의 메모리(130)를 이용하는 것을 고려한다. 특정한 예에서, 상이한 데이터 저장 요구(data storage needs)를 위해 데이터 저장 디바이스(204)에서의 상이한 타입의 메모리가 이용될 수 있다. 예컨대, 특정한 예에서, 프로세서(202)는 ROM(232)으로부터 부팅하고, HDD 메모리(233)에 비휘발성 저장을 유지하며, RAM(231)에 저장된 프로그램 코드를 실행할 수 있다.
일반적으로, 데이터 저장 디바이스(204)는 컴퓨터 판독 가능 저장 매체를 포함할 수 있다. 예컨대, 데이터 저장 디바이스(204)는 전자, 자기, 광학, 전자기, 적외선, 또는 반도체 시스템, 장치 또는 디바이스, 또는 이들의 임의의 적합한 조합이어도 되며, 이러한 것으로 한정되지 않는다. 컴퓨터 판독 가능 저장 매체의 보다 구체적인 예는 예컨대 다수의 와이어를 갖는 전기 접속부, 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 소거 가능한 프로그래머블 판독 전용 메모리(EPROM 또는 플래시 메모리), 광섬유, 휴대 가능한 컴팩트 디스크 판독 전용 메모리(CD-ROM), 광저장장치, 자기 저장 장치, 또는 이들의 임의의 적합한 조합을 포함할 수 있다. 본 명세서의 맥락에서, 컴퓨터 판독 가능 저장 매체는 명령 실행 시스템, 장치 또는 디바이스에 의해 사용하기 위해 또는 이들과 관련하여 프로그램을 포함하거나 저장할 수 있는 임의의 탠저블한 매체(tangible medium)이어도 된다.
이전 디바이스(102) 내의 하드웨어 어댑터(206, 208)는 프로세서(202)를 이전 디바이스(102) 외부 및 내부의 다양한 다른 하드웨어 요소와 인터페이스할 수 있도록 한다. 예컨대, 주변 디바이스 어댑터(206)는 사용자 인터페이스를 생성하거나 및/또는 외부 디바이스(117)를 액세스하기 위해 예컨대 디스플레이 디바이스(210)와 같은 입력/출력 디바이스에 대한 인터페이스를 제공할 수 있다. 아래에 설명되는 바와 같이, 사용자(도 1의 160)로 하여금 이전 디바이스(102)와 상호작용할 수 있도록 하고 이전 디바이스의 기능을 실시할 수 있도록 하기 위해 출력 디바이스(150)가 제공될 수 있다.
주변 디바이스 어댑터(206)는 프로세서(202)와 프린터, 디스플레이 디바이스(210) 또는 기타 미디어 출력 디바이스 간의 인터페이스를 생성할 수 있다. 네트워크 어댑터(208)는 네트워크(104, 106)에 대한 인터페이스를 제공할 수 있으며, 이에 의해 이전 디바이스(102)와 네트워크(104, 106) 간의 데이터의 전송을 가능하게 한다.
이전 디바이스(102)는 또한 탐색 모듈(discovery module)(240)을 포함할 수 있다. 탐색 모듈(240)은 이전될 프로그램 및 기타 프로그램 콤포넌트가 있는 예컨대 네트워크 A(104)와 같은 퍼블릭 클라우드 네트워크 상에 호스팅된 프로그램 및 기타 프로그램 콤포넌트와 같은 자산(asset)을 검색하고 식별한다. 일례에서, 탐색 모듈(240)은 이전 디바이스(102)의 데이터 저장 디바이스(204) 내에 저장되며, 프로세서(202)에 의해 액세스 가능하고 실행될 수 있다.
이전 디바이스(102)는 또한 데이터 저장 디바이스(204) 내에 저장되는 의존성 데이터 세트(250)를 포함한다. 의존성 데이터 세트(250)는 탐색 모듈(240)이 퍼블릭 네트워크 A(104) 내의 프로그램 및 기타 프로그램 콤포넌트를 발견한 결과로서 생성된다. 프로세서(202)는 탐색 모듈(240)의 결과를 분석하고, 의존성 데이터 세트(250)를 생성한다. 위에서 규정한 바와 같이, 의존성 데이터 세트(250)는 네트워크 내에 배포된 때에 네트워크 리소스의 인스턴스와 어플리케이션 간의 다수의 관계를 규정하는 임의의 데이터 세트이다.
도 3은 본 명세서에 설명되는 원리의 일례에 따라 제1 네트워크(104)로부터 제2 네트워크(106)로의 다수의 어플리케이션(124, 144)을 이전하는 방법을 보여주는 흐름도이다. 도 3의 방법은 제1 네트워크 상의 다수의 어플리케이션을 위한 의존성 데이터 세트를 생성(단계 302)함으로써 개시될 수 있다. 이 네트워크는 예컨대 도 1의 네트워크 A(104)이어도 된다. 이전 디바이스(도 2의 102)는 의존성 데이터 세트를 생성한다.
의존성 데이터 세트는, 위에서 규정된 바와 같이, 네트워크 내의 클라우드 네트워크 리소스의 기타 인스턴스와 어플리케이션 간의 다수의 관계를 규정하는 임의의 데이터 세트이다. 프로세서(202)는 네트워크 A(104) 내의 네트워크 리소스의 인스턴스와 어플리케이션 간의 관계 및 의존성을 분석하고 맵핑한다. 일례에서, 의존성 데이터 세트는 루트 리소스를 상징하는 루트 노드와, 다수의 리소스와 루트 리소스로부터의 이들 다수의 리소스의 의존성 및 이들 다수의 리소스의 서로에 대한 의존성의 관계를 상징하는 다수의 레벨의 자식 노드를 갖는 계층적 트리로서 표현될 수 있다. 루트 노드와 자식 노드 사이의 라인은 네트워크 A(104) 내의 다양한 요소들 간의 관계 및 의존성을 상징한다.
다시 도 3을 참조하면, 이전 디바이스(도 2의 102)는 의존성 데이터 세트에 기초하여 제1 네트워크로부터 제2 네트워크로 다수의 어플리케이션을 이전하기 위해 이전 계획(migration plan)을 생성한다(단계 304). 예컨대, 이전 계획은 도 1의 네트워크 A(104)로부터 네트워크 B(106)로의 다수의 어플리케이션의 이전을 위해 호출될 수 있다. 이 예에서, 네트워크 A(104)는 퍼블릭 클라우드이고, 네트워크 B(106)는 프라이빗 클라우드 서비스(106)이며, 퍼블릭 클라우드 서비스의 구매자는 예컨대 퍼블릭 클라우드 서비스를 구매하기 위한 비용이 프라이빗 네트워크를 구축하고 그 프라이빗 네트워크 상에서 어플리케이션을 실시하기 위한 비용보다 높은 것으로 생각한다. 클라우드 서비스의 사용자가 클라우드 서비스를 퍼블릭 클라우드로부터 프라이빗 클라우드로 이동하고자 결정하는데에는 다른 이유가 있을 수도 있다.
일례에서, 어플리케이션의 이전은 어플리케이션이 현재 활용되고 있지 않을 때에 이전되는 피스 밀 방식(piece meal manner)으로 발생할 수도 있다. 또 다른 예에서, 어플리케이션의 이전은 어플리케이션의 현재 사용 상태에 무관하게 발생할 수도 있다.
이전 디바이스(도 2의 102)는 이전 계획에 기초하여 제1 네트워크로부터 제2 네트워크로 다수의 어플리케이션을 이전한다(단계 306). 그러므로, 퍼블릭 클라우드 서비스의 구매자가 네트워크 A(104)로부터 네트워크 B(106)로 이전하기를 원하는 어플리케이션은 단계 304에서 생성된 이전 계획에 따라 달성된다. 이러한 방식으로, 어플리케이션 이전이 완료된다. 단계 302, 304 및 306에 관련하여 보다 세부구성이 제공될 수도 있음에 따라, 본 방법은 도 4와 관련하여 더욱 상세하게 설명될 것이다.
도 4는 본 명세서에 설명되는 원리의 다른 예에 따라 제1 네트워크로부터 제2 네트워크로 다수의 어플리케이션을 이전하는 방법을 보여주는 흐름도이다. 도 4의 방법은 퍼블릭 클라우드 서비스를 등록(단계 402)함으로써 개시될 수 있다. 일례에서, 퍼블릭 클라우드 제공자로부터의 퍼블릭 클라우드 서비스의 구매자가 퍼블릭 클라우드 서비스를 구매하고 이들 서비스를 위해 네트워크 A(104)를 활용하기 위해 계약 또는 다른 서비스 동의를 체결한다. 예컨대, 퍼블릭 클라우드 서비스는 퍼블릭 클라우드 서비스가 구매자의 리소스 요구(resource needs)에 좌우되어 스케일 인되거나 스케일 아웃되는 이용 요금제 모델을 기반으로 할 수 있다.
그러나, 전술한 바와 같이, 퍼블릭 클라우드 서비스를 받는 동안, 구매자가 더 이상 퍼블릭 클라우드 서비스를 활용하길 원하지 않고 그 대신 자신의 어플리케이션을 예컨대 프라이빗 클라우드 네트워크, 또는 네트워크 A(104)를 통해 제공되는 퍼블릭 클라우드 서비스와는 상이한 퍼블릭 클라우드 네트워크와 같은 상이한 클라우드 서비스 상에서 실시하기를 원하는 시점이 올 수도 있다. 네트워크 A(104)의 관점으로부터, 이 이전 프로세스는 네트워크 B(106)와 같은 또 다른 네트워크로의 스케일링 아웃으로서 해석될 수도 있다. 네트워크 B(106)의 관점으로부터는, 이 이전 프로세스는 네트워크 A(104)로부터의 스케일링 인으로서 해석될 수도 있다. 일례에서, 이전 프로세스는 네트워크 A(104)로의 스케일링 백(scaling back) 없이 네트워크 A(104)로부터 네트워크 B(106)로의 스케일링 아웃을 포함한다. 이 예에서, 리소스가 네트워크 A(104)로부터 스케일링 아웃함으로써 네트워크 B(106)에서 활용되는 때에, 네트워크 A(104) 내에서 활용된 리소스는 드롭(drop)되거나, 제거되거나, 또는 활용되지 않는다.
따라서, 예컨대 네트워크 A(104)로부터 네트워크 B(106)로의 어플리케이션의 이전이 실시될 수 있다. 단계 404에서, 이전 디바이스(102)는 이 경우에는 네트워크 A(104)인 퍼블릭 클라우드 네트워크 상에 호스팅된 자산을 탐색한다. 일례에서, 데이터 저장 디바이스(204) 내의 탐색 모듈(240)이 네트워크 A(104) 상에 호스팅된 자산을 탐색한다(단계 404).
이전 디바이스(102)는 단계 404에서 탐색된 네트워크 A(104) 내의 자산을 네트워크 B(106)로 이전될 어플리케이션과 맵핑함으로써 의존성 데이터 세트를 생성한다(단계 406). 일례에서, 의존성 데이터 세트(250)의 카피가 아래에 설명되는 바와 같이 이전 프로세스에서의 추후의 시점에서의 활용을 위해 이전 디바이스(102)의 데이터 저장 디바이스(204)에 저장된다. 또한, 일례에서, 관리자(160)는 맵핑을 수행하거나, 또는 이전 디바이스(102)에게 디스플레이 디바이스(210) 및 다른 것들 중에서도 예컨대 키보드 및 마우스와 같은 다수의 기타 입력 및 출력 디바이스를 통해 맵핑을 수행하도록 지시할 수 있다.
이 프로세스는 자산 정보를 관리 시스템과 동기화시키는 프로세스를 규정(단계 408)하기 위해 관리자(160)가 이전 디바이스(102)와 상호작용하는 것으로 진행될 수 있다. 이전 디바이스(102)는 또한 이 프로세스에서 나중에 실시될 프라이빗 클라우드 환경을 위한 다수의 크레덴셜 및 관련 정보를 규정(단계 410)한다. 예컨대 네트워크 A 및 B(104, 106)와 같은 클라우드 네트워크 상에서 동작하는 어플리케이션이 모니터링된다. 네트워크(104, 106)가 어떻게 활용되고 있는지와 네트워크가 서비스를 각각 증가시키거나 감소시키기 위해 스케일 인되거나 스케일 아웃되어야 하는지를 판정하기 위해, 이들 어플리케이션(124, 144) 및 네트워크(104, 106)가 모니터링된다. 모니터링될 수 있는 동작의 몇몇 예는 다른 것들 중에서도 네트워크(104, 106)에 대한 인-커밍 트랜잭션(in-coming transaction)의 수, 어플리케이션(124, 144)의 응답 시간, 및 인-커밍 트랜잭션을 어드레스하기 위한 서버(120, 140)의 이용 가능성이다. 그러므로, 단계 408에서, 이전 디바이스(102)는 이전이 시작된 후에 네트워크 B(106)에서 실시될 동기화 프로세스를 규정한다.
이전 디바이스(102)는 이 이전 디바이스(102)가 중개자가 되어 퍼블릭 네트워크 A(104)와 프라이빗 네트워크 B(106) 간의 직접 접속을 형성한다(단계 412). 그리고나서, 퍼블릭 네트워크 A(104)와 그 어플리케이션 콤포너트를 프라이빗 네트워크 B(106)에 복제(clone)(단계 414)하는 것이 개시될 수 있다. 예컨대, 네트워크 A(104)가 예컨대 Apache Software Foundation에 의해 소유되고 개발된 APACHE HTTP 서버와 같은 특정한 웹 서버 또는 어플리케이션 서버를 포함하면, 이 서버는 네트워크 A(104) 내의 서버의 버전과 동일하게 기능하고 네트워크 A(104) 내의 서버의 버전과 동일한 파라미터를 포함하도록 네트워크 B(106) 내에 복제된다(단계 414). 네트워크 A(104)로부터 네트워크 B(106)로 복제될 수 있는 어플리케이션 콤포넌트는 다른 것들 중에서도 예컨대 웹 서버 및 어플리케이션 서버를 포함한다. 이전 디바이스(102)는, 단계 414와 연계하여, 복제된 프라이빗 네트워크(106) 내의 의존성을 설정한다(단계 416). 이러한 의존성을 설정(단계 416)함에 있어서, 이전 디바이스는 단계 406에서 생성되고 이전 디바이스(102)의 데이터 저장 디바이스(204) 내에 저장된 의존성 데이터 세트(250)를 활용한다. 그러므로, 다양한 어플리케이션 콤포넌트들 간의 의존성은 어플리케이션 콤포넌트의 복제물이 프라이빗 네트워크(106)에 생성된 후에 규정된다.
이전 디바이스(102)는 네트워크 B(106) 내에 복제된 네트워크 A(104) 내의 다수의 콤포넌트의 작동을 동기화한다(단계 418). 예컨대 웹 서버와 같은 클라우드 네트워크 내의 몇몇 콤포넌트는 이들이 단순히 요청에 대해 응답한다는 점에서 스테이트리스(stateless)이다. 그러나, 데이터베이스와 같은 몇몇 콤포넌트는 네트워크가 활용되는 때에 동적으로 변화한다. 예컨대, 네트워크 A(104)는 지속적으로 변화하는 데이터베이스와 같은 다수의 동적 콤포넌트를 포함할 수 있다. 데이터베이스가 네트워크 A(104)로부터 네트워크 B(106)로 직접 카피되면, 네트워크 B(106)에서의 데이터베이스의 카피 내에 반영되지 않을 중간 트랜잭션(intermediate transaction)이 네트워크 A(104) 상에서 발생할 수 있다. 따라서, 단계 418에서, 이전 디바이스는 네트워크 A(104)와 네트워크 B(106) 간에 이들 동적 콤포넌트를 동기화하는 것을 개시하여, 이들 콤포넌트가 네트워크 A(104)와 네트워크 B(106) 간에 미러링되도록 한다. 일례에서, 이전 디바이스(102)는 적어도 복제된 동적 콤포넌트가 완전하게 동기화될 때까지 네트워크 A(104) 내의 로드 밸런서(127)가 활용되도록 한다. 복제된 동적 콤포넌트가 완전하게 동기화된 후, 이전 디바이스(102)는 시스템(100) 내의 로드 밸런싱 정책을 조정할 수 있다.
그리고나서, 이전 디바이스(102)가 다수의 로드 밸러신 정책을 갱신한다(단계 420). 시스템(100) 내의 로드 밸런서(127, 147)는 일반적으로 인-커밍 트랜잭션(HTTP) 요청을 수신하고, 이들 트랜잭션 요청을 네트워크(104, 106) 내의 서버(120, 140)에 할당한다. 그러므로, 단계 420에서, 이전 디바이스(102)는 로드 밸런서(127, 147)에 의해 사용되는 로드 밸런싱 정책을 갱신하여, 네트워크 B(106) 내의 새로 복제된 로드 밸런서(147) 및 그 관련 어플리케이션 콤포넌트와 리소스를 사용하는 능력을 포함하도록 할 수 있다.
전술한 단계 420과 관련하여, 어느 시점에는, 글로벌 로드 밸런서(242)가 생성된다(단계 422). 글로벌 로드 밸런서(170)는 트랜잭션 요청이 향하는 곳을 규정하는 정책의 세트를 포함한다. 이러한 방식으로, 글로벌 로드 밸런서(170)는 작업부하를 시스템(100)에 걸쳐 분산시킨다. 글로벌 로드 밸런서(170) 내의 이들 정책은 트래픽을 네트워크 A(104)로부터 네트워크 B(106)로 또는 그 반대로 리다이렉트하도록 갱신될 수 있다. 아래에 설명된 예에서, 글로벌 로드 밸런서(170) 내의 정책은 퍼블릭 네트워크 A(104)로부터 프라이빗 네트워크 B(106)로의 어플리케이션 및 어플리케이션 리소스의 이전으로 인하여 새로운 트랜잭션 요청을 네트워크 A(104) 대신 네트워크 B(106)로 향하게 하도록 갱신된다.
Figure pct00001
표 1 : 어플리케이션 배포 명령(application deployment instructions )
표 1은 글로벌 로드 밸런서(170)를 스케일링 아웃 및 갱신하기 위해 위의 프로세스에서 실행되는 어플리케이션 배포 명령을 보여준다. 전술한 바와 같이, 설치 순서는 전술한 바와 같이 생성되고 저장되는 의존성 데이터 세트(250)에 기초하여 이전 디바이스(102)에 의해 자동으로 구해진다. 아래에 설명되는 바와 같이 퍼블릭 클라우드 인프라스트럭처의 인스턴스를 셧다운하고 종료하기 위해 유사한 어플리케이션 배포 명령이 활용될 수도 있다.
일례에서, 글로벌 로드 밸런서(170)는 로드 밸런서(127)에게 새로운 트랜잭션 요청을 네트워크 B(106) 내의 로드 밸런서(147) 또는 글로벌 로드 밸런서(170) 중의 하나에 전송하도록 지시하기 위해 로드 밸런서(127) 내의 로드 밸런싱 정책을 갱신할 수 있으며, 이 글로벌 로드 밸런서(170)가 그 후 이들 새로운 트랜잭션 요청을 네트워크 B(106) 내의 로드 밸런서(147) 상으로 포워딩할 것이다.
어플리케이션 콤포넌트가 프라이빗 네트워크 B(106) 내에 배치되는 때에, 프라이빗 네트워크 B(106)가 모니터링된다(단계 424). 전술한 바와 같이, 클라우드 네트워크의 모니터링은 언제 스케일링 인 또는 스케일링 아웃할지를 관리자가 알게 하는데 도움을 준다. 또한, 프로그램 콤포넌트를 모니터링하는 것은 다수의 프로그램 콤포넌트가 과사용되거나, 장애가 있거나, 또는 네트워크 B(106) 내의 임의의 다른 비정상적인 또는 바람직하지 않은 상태를 경험하는 때를 관리자가 알게 하는데 도움을 준다.
이전 디바이스(102)는 복제된 때의 네트워크 B(106) 내의 어플리케이션이 정확하게 실행되는지를 검증(단계 426)하기 위해 이용될 수 있다. 그러므로, 단계 426에서, 관리자(160)는 모든 프로그램 콤포넌트가 정확하게 실행되고 서로 간에 연동하는 것을 보장하기 위해 예컨대 트랜잭션 요청을 받아들임으로써 네트워크 B(106)를 론칭하도록 이전 디바이스(102)에게 지시할 수 있다.
네트워크 B(106)가 검증되고, 어플리케이션 콤포넌트가 네트워크 B(106) 내에 제공된 후, 이전 디바이스(102)는 퍼블릭 네트워크 A(104)로부터 다수의 어플리케이션 및 어플리케이션 콤포넌트를 삭제(단계 428)할 수 있다. 일례에서, 퍼블릭 클라우드 서비스의 구매자의 사용 또는 사용자의 사용에 연관된 모든 어플리케이션 및 어플리케이션 콤포넌트가 삭제된다. 이러한 방식으로, 웹 서버, 어플리케이션 서버, 어플리케이션, 및 기타 어플리케이션 콤포넌트가 종료되고, 네트워크 A(104)로부터 삭제된다.
이 프로세스에서는, 계속하여, 이전 디바이스(102)가 데이터베이스 및 컨텐츠 분배 서버를 네트워크 B(106) 내의 마스터로서 지정하고, 네트워크 A(104) 내의 이들 콤포넌트의 미러 인스턴스를 종료한다(단계 430). 또한, 이전 디바이스(102)는 트랜잭션 요청을 네트워크 B(106)로 향하게 하기 위해 네트워크 B(106) 내의 로드 밸런서(147) 및 기타 모니터링 시스템을 갱신(단계 435)할 수 있다.
도 3 및 도 4에서 설명된 방법은 임의의 개별체에 의해 수행될 수도 있다. 일례에서, 이들 방법은 제3자에 의해 수행된다. 이 예에서, 제3자는 퍼블릭 네트워크 A(104) 또는 프라이빗 네트워크 B(106)의 소유자 또는 소유자들 이외의 다른 사람일 수도 있다. 그러므로, 제3자는 위의 이전 방법을 서비스로서 제공할 수도 있다. 또 다른 예에서, 도 3 및 도 4의 방법은 프라이빗 네트워크 B(106)에 연관된 관리자에 의해 수행될 수도 있다. 이 예에서, 관리자는 프라이빗 네트워크 B(106)의 고용인 또는 소유자일 수도 있거나, 또는 이러한 서비스를 수행하도록 계약한 사람일 수도 있다.
어플리케이션의 이전은 퍼블릭 클라우드 서비스 제공자에 의해 운영되는 퍼블릭 클라우드로부터 또 다른 네트워크로의 이전이다. 일례에서, 제2 네트워크인 네트워크 B(106)는 전술한 바와 같이 프라이빗 클라우드 네트워크일 수 있다. 또 다른 예에서, 제2 네트워크인 네트워크 B(106)는 동일한 클라우드 서비스 제공자 또는 상이한 클라우드 서비스 제공자에 의해 운영되는 상이한 퍼블릭 클라우드이어도 된다.
전술한 방법은, 실행될 시에 위의 방법을 수행하는, 컴퓨터 판독 가능 저장 매체와 함께 구현되는, 컴퓨터 이용 가능 프로그램 코드를 갖는 컴퓨터 판독 가능 저장 매체를 포함하는 컴퓨터 프로그램 제품에 의해 달성될 수 있다. 특히, 컴퓨터 이용 가능 프로그램 코드는 제1 네트워크 상의 다수의 어플리케이션에 대한 의존성 데이터 세트를 생성(단계 302)할 수 있다. 컴퓨터 이용 가능 프로그램 코드는 또한 의존성 데이터 세트에 기초하여 제1 네트워크로부터 제2 네트워크로 다수의 어플리케이션을 이전하기 위해 이전 계획을 생성(단계 304)할 수 있다. 또한, 컴퓨터 이용 가능 프로그램 코드는 이전 계획에 기초하여 제1 네트워크로부터 제2 네트워크로 다수의 어플리케이션을 이전(단계 306)할 수 있다. 또한, 컴퓨터 이용 가능 프로그램 코드는, 프로세서에 의해 실행될 시에, 도 4에 관련하여 위에서 설명한 프로세스를 수행할 수 있다.
본 명세서 및 도면은 제1 네트워크로부터 제2 네트워크로 다수의 어플리케이션을 이전하는 방법을 설명한다. 본 방법은, 프로세서를 이용하여, 제1 네트워크에 대한 의존성 데이터 세트를 생성하는 단계, 의존성 데이터 세트에 기초하여 제1 네트워크로부터 제2 네트워크로 다수의 어플리케이션을 이전하기 위해 이전 계획을 생성하는 단계, 및 이전 계획에 기초하여 제1 네트워크로부터 제2 네트워크로 다수의 어플리케이션을 이전하는 단계를 포함할 수 있다.
이들 이전 시스템 및 방법은, (1) 퍼블릭 클라우드 네트워크 상에 존재하는 프로그램 콤포넌트를 탐색하고, (2) 퍼블릭 네트워크 인프라스트럭처의 프라이빗 클라우드 또는 기타 클라우드 네트워크 내로의 복제에 도움을 주기 위해 의존성 데이터 세트를 생성하고, (3) 클라우스 리소스를 스케일 인하고, 퍼블릭 클라우드 네트워크 내의 프로그램 콤포넌트의 셧다운 또는 종료를 허용하고, (4) 관리 및 모니터링 시스템 내의 프로그램 콤포넌트 데이터를 갱신하는 능력을 포함한 다수의 장점을 가질 수 있다.
이상의 설명은 개시된 원리의 예를 예시하고 기술하기 위해 제공된 것이다. 이러한 설명은 이들 원리를 전부 나타내거나 또는 이들 원리를 개시된 임의의 구체적인 형태로 한정하려는 것은 아니다. 위의 교시 내용에 비추어 다수의 수정 및 변형이 가능하다.

Claims (15)

  1. 제1 네트워크로부터 제2 네트워크로 다수의 어플리케이션을 이전하는 방법에 있어서,
    프로세서를 이용하여, 제1 네트워크에 대한 의존성 데이터 세트(dependency data set)를 생성하는 단계;
    상기 의존성 데이터 세트에 기초하여 상기 제1 네트워크로부터 상기 제2 네트워크로 다수의 어플리케이션을 이전하기 위해 이전 계획(migration plan)을 생성하는 단계; 및
    상기 이전 계획에 기초하여 상기 제1 네트워크로부터 상기 제2 네트워크로 다수의 어플리케이션을 이전하는 단계
    를 포함하는, 제1 네트워크로부터 제2 네트워크로 다수의 어플리케이션을 이전하는 방법.
  2. 제1항에 있어서,
    상기 다수의 어플리케이션이 상기 제2 네트워크로 이전되면, 상기 다수의 어플리케이션을 상기 제1 네트워크로부터 제거하는 단계를 더 포함하는, 제1 네트워크로부터 제2 네트워크로 다수의 어플리케이션을 이전하는 방법.
  3. 제1항에 있어서,
    상기 제1 네트워크는 퍼블릭 네트워크(public network)이고, 상기 제2 네트워크는 프라이빗 네트워크(private network)인, 제1 네트워크로부터 제2 네트워크로 다수의 어플리케이션을 이전하는 방법.
  4. 제1항에 있어서,
    상기 방법은 상기 제2 네트워크의 소유자 이외의 서비스 제공자에 의해 수행되는, 제1 네트워크로부터 제2 네트워크로 다수의 어플리케이션을 이전하는 방법.
  5. 제1항에 있어서,
    상기 방법은 상기 제2 네트워크의 소유자에 의해 수행되는, 제1 네트워크로부터 제2 네트워크로 다수의 어플리케이션을 이전하는 방법.
  6. 제1항에 있어서,
    상기 제1 네트워크 내의 상기 다수의 프로그램을 탐색하는 단계; 및
    발견된 프로그램들 간의 관계에 기초하여 상기 의존성 데이터 세트를 생성하는 단계
    를 더 포함하는, 제1 네트워크로부터 제2 네트워크로 다수의 어플리케이션을 이전하는 방법.
  7. 제1항에 있어서,
    상기 제1 네트워크로부터 상기 제2 네트워크 내로 복제되는 데이터를 동기화하는 단계를 더 포함하는, 제1 네트워크로부터 제2 네트워크로 다수의 어플리케이션을 이전하는 방법.
  8. 제1항에 있어서,
    다수의 로드 밸런서(load balancer)의 로드 밸런싱 정책(load balancing policy)을 갱신하는 단계를 더 포함하는, 제1 네트워크로부터 제2 네트워크로 다수의 어플리케이션을 이전하는 방법.
  9. 제1항에 있어서,
    제2 네트워크 기능을 의도된 방식으로 검증하는 단계를 더 포함하는, 제1 네트워크로부터 제2 네트워크로 다수의 어플리케이션을 이전하는 방법.
  10. 제1 네트워크로부터 제2 네트워크로 다수의 어플리케이션을 이전하는 이전 디바이스에 있어서,
    프로세서; 및
    상기 프로세서에 통신 가능하게 결합된 데이터 저장 디바이스를 포함하며,
    상기 프로세서가,
    상기 제1 네트워크에 대한 의존성 데이터 세트를 생성하고,
    상기 의존성 데이터 세트에 기초하여 상기 제1 네트워크로부터 상기 제2 네트워크로 다수의 어플리케이션을 이전하는,
    제1 네트워크로부터 제2 네트워크로 다수의 어플리케이션을 이전하는 이전 디바이스.
  11. 제10항에 있어서,
    상기 이전 디바이스가 상기 제1 네트워크 및 상기 제2 네트워크에 대한 통신에 관하여 중개자(intermediary)인, 제1 네트워크로부터 제2 네트워크로 다수의 어플리케이션을 이전하는 이전 디바이스.
  12. 제10항에 있어서,
    상기 제1 네트워크 및 상기 제2 네트워크 내의 로드 밸런싱 정책을 갱신하기 위해 로드 밸런서를 더 포함하는, 제1 네트워크로부터 제2 네트워크로 다수의 어플리케이션을 이전하는 이전 디바이스.
  13. 다수의 어플리케이션을 이전하기 위한 컴퓨터 프로그램 제품에 있어서,
    컴퓨터 판독 가능 저장 매체와 함께 구현되는 컴퓨터 이용 가능 프로그램 코드(computer usable program code)를 포함하는 컴퓨터 판독 가능 저장 매체를 포함하며, 상기 컴퓨터 이용 가능 프로그램 코드가,
    프로세서에 의해 실행될 때에, 제1 네트워크 내의 다수의 프로그램을 탐색하기 위한 컴퓨터 이용 가능 프로그램 코드;
    프로세서에 의해 실행될 때에, 발견된 프로그램들 간의 관계에 기초하여 의존성 데이터 세트를 생성하기 위한 컴퓨터 이용 가능 프로그램 코드;
    프로세서에 의해 실행될 때에, 상기 의존성 데이터 세트에 기초하여 상기 제1 네트워크로부터 제2 네트워크로 어플리케이션을 이전하기 위해 이전 계획을 생성하기 위한 컴퓨터 이용 가능 프로그램 코드; 및
    프로세서에 의해 실행될 때에, 상기 이전 계획에 기초하여 상기 제1 네트워크로부터 상기 제2 네트워크로 어플리케이션을 이전하기 위한 컴퓨터 이용 가능 프로그램 코드
    를 포함하는, 다수의 어플리케이션을 이전하기 위한 컴퓨터 프로그램 제품.
  14. 제13항에 있어서,
    프로세서에 의해 실행될 때에, 다수의 어플리케이션이 상기 제2 네트워크로 이전되면, 상기 다수의 어플리케이션을 상기 제1 네트워크로부터 제거하기 위한 컴퓨터 이용 가능 프로그램 코드를 더 포함하는, 다수의 어플리케이션을 이전하기 위한 컴퓨터 프로그램 제품.
  15. 제13항에 있어서,
    프로세서에 의해 실행될 때에, 상기 제1 네트워크로부터 상기 제2 네트워크 내로 복제되는 데이터를 동기화하기 위한 컴퓨터 이용 가능 프로그램 코드를 더 포함하는, 다수의 어플리케이션을 이전하기 위한 컴퓨터 프로그램 제품.
KR1020147030448A 2012-07-20 2012-07-20 네트워크 간의 어플리케이션의 이전 KR20150035517A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/047680 WO2014014477A1 (en) 2012-07-20 2012-07-20 Migrating applications between networks

Publications (1)

Publication Number Publication Date
KR20150035517A true KR20150035517A (ko) 2015-04-06

Family

ID=49949147

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147030448A KR20150035517A (ko) 2012-07-20 2012-07-20 네트워크 간의 어플리케이션의 이전

Country Status (5)

Country Link
US (1) US9596302B2 (ko)
EP (1) EP2875439B1 (ko)
KR (1) KR20150035517A (ko)
CN (1) CN104303169A (ko)
WO (1) WO2014014477A1 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9503387B2 (en) * 2013-08-21 2016-11-22 Cisco Technology, Inc. Instantiating incompatible virtual compute requests in a heterogeneous cloud environment
US11172022B2 (en) * 2014-02-21 2021-11-09 Hewlett Packard Enterprise Development Lp Migrating cloud resources
US9602380B2 (en) * 2014-03-28 2017-03-21 Futurewei Technologies, Inc. Context-aware dynamic policy selection for load balancing behavior
US9606826B2 (en) * 2014-08-21 2017-03-28 International Business Machines Corporation Selecting virtual machines to be migrated to public cloud during cloud bursting based on resource usage and scaling policies
US9537938B2 (en) 2014-09-23 2017-01-03 Amazon Technologies, Inc. Virtual desktop migration
US20160373319A1 (en) * 2014-09-24 2016-12-22 Jeremy Lynn Littlejohn Method and device for evaluating the system assets of a communication network
CN104468759B (zh) * 2014-11-27 2018-06-01 中国联合网络通信集团有限公司 PaaS平台中实现应用迁移的方法和装置
WO2016111679A1 (en) * 2015-01-06 2016-07-14 Hewlett Packard Enterprise Development Lp Supporting interoperability in cloud environments
US10007584B2 (en) * 2015-01-28 2018-06-26 Red Hat, Inc. Automated container migration in a platform-as-a-service system
US9672074B2 (en) * 2015-10-19 2017-06-06 Vmware, Inc. Methods and systems to determine and improve cost efficiency of virtual machines
JP6783638B2 (ja) * 2016-11-29 2020-11-11 キヤノン株式会社 管理システム、および制御方法
US10592484B1 (en) * 2017-01-06 2020-03-17 Sprint Communications Company L.P. Data migration between different lightweight directory access protocol (LDAP) based wireless communication subscriber data stores
US10756981B2 (en) 2017-11-28 2020-08-25 Hewlett Packard Enterprise Development Lp Efficiency indexes
US11061718B2 (en) * 2019-02-15 2021-07-13 International Business Machines Corporation Pattern-based artificial intelligence planner for computer environment migration
US11483384B2 (en) * 2019-03-19 2022-10-25 Hewlett Packard Enterprise Development Lp Application migrations
DE102019208056A1 (de) * 2019-06-03 2020-12-03 Robert Bosch Gmbh System und Verfahren zum Betreiben eines Systems
US11258881B2 (en) 2019-07-12 2022-02-22 Nutanix, Inc. Mobility of user applications across cloud infrastructures
CN111787045A (zh) * 2020-01-10 2020-10-16 北京京东尚科信息技术有限公司 从私有云到公有云的迁移方法和装置
CN111786808A (zh) * 2020-01-10 2020-10-16 北京京东尚科信息技术有限公司 云系统的迁移方法、装置和混合云系统
CN111782353A (zh) * 2020-01-10 2020-10-16 北京京东尚科信息技术有限公司 从公有云到私有云的迁移方法和装置
CN111782336A (zh) * 2020-01-10 2020-10-16 北京京东尚科信息技术有限公司 混合云的云迁移方法及装置、计算机可存储介质
CN113691971B (zh) * 2020-05-18 2022-07-22 中国电信股份有限公司 网络签约数据获取方法、装置和系统
JP2023550885A (ja) * 2020-06-30 2023-12-06 デフィニティ スティフトゥング 分散ネットワークにおける計算ユニットの移行
US11748153B2 (en) * 2020-11-25 2023-09-05 International Business Machines Corporation Anticipated containerized infrastructure used in performing cloud migration
US10951704B1 (en) * 2020-12-15 2021-03-16 Spectra Logic Corporation Data object sync

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020019873A1 (en) * 2000-07-14 2002-02-14 Moises Goldszmidt System and method for modeling and provisioning information system capacity
US7505413B2 (en) * 2004-09-09 2009-03-17 Cariden Technologies, Inc. Methods and systems to perform traffic engineering in a metric-routed network
US7536525B2 (en) * 2004-11-09 2009-05-19 Dell Products L.P. Virtual machine hot cloning including freezing and unfreezing memory in a distributed network
US7966364B2 (en) * 2007-07-26 2011-06-21 Northeastern University System and method for virtual server migration across networks using DNS and route triangulation
US20120042322A1 (en) * 2009-02-04 2012-02-16 Telefonaktiebolaget L M Ericsson (Publ.) Hybrid Program Balancing
US8359386B2 (en) 2009-04-16 2013-01-22 Dell Products, Lp System and method of migrating virtualized environments
US8572625B2 (en) * 2009-08-04 2013-10-29 International Business Machines Corporation Method and system for application migration using per-application persistent configuration dependency
US20110246978A1 (en) 2010-04-01 2011-10-06 Research In Motion Limited Application portability and transfer of device management for mobile devices
US8909784B2 (en) 2010-11-23 2014-12-09 Red Hat, Inc. Migrating subscribed services from a set of clouds to a second set of clouds
US8745233B2 (en) * 2010-12-14 2014-06-03 International Business Machines Corporation Management of service application migration in a networked computing environment
KR20120066395A (ko) 2010-12-14 2012-06-22 한국전자통신연구원 네트워크 서비스 지원 시스템 및 그 방법
US8910172B2 (en) * 2010-12-29 2014-12-09 Symantec Corporation Application resource switchover systems and methods
US20130152076A1 (en) * 2011-12-07 2013-06-13 Cisco Technology, Inc. Network Access Control Policy for Virtual Machine Migration
CN102377827A (zh) * 2011-12-13 2012-03-14 方正国际软件有限公司 多级云存储系统及其存储方法
US20130166504A1 (en) * 2011-12-27 2013-06-27 RiverMeadow Software, Inc. Systems and methods for virtual machine migration

Also Published As

Publication number Publication date
US20150222702A1 (en) 2015-08-06
EP2875439B1 (en) 2019-02-20
EP2875439A4 (en) 2016-04-13
US9596302B2 (en) 2017-03-14
EP2875439A1 (en) 2015-05-27
CN104303169A (zh) 2015-01-21
WO2014014477A1 (en) 2014-01-23

Similar Documents

Publication Publication Date Title
US10798016B2 (en) Policy-based scaling of network resources
US9596302B2 (en) Migrating applications between networks
US11398948B2 (en) Generation and deployment of inherited network topology models
Singh et al. A novel agent based autonomous and service composition framework for cost optimization of resource provisioning in cloud computing
CN109213724B (zh) 用于更新文件或存储和更新数据的方法和系统及储存器
US9716746B2 (en) System and method using software defined continuity (SDC) and application defined continuity (ADC) for achieving business continuity and application continuity on massively scalable entities like entire datacenters, entire clouds etc. in a computing system environment
KR102031695B1 (ko) 자동화된 데이터 센터 선택
US11422844B1 (en) Client-specified network interface configuration for serverless container management service
US11392422B1 (en) Service-managed containers for container orchestration service
US11740936B2 (en) Method and system for managing cloud resources
US20140172954A1 (en) System and method for private cloud introduction and implementation
JP6003590B2 (ja) データセンタ,仮想システムの複写サービスの提供方法,データセンタの管理サーバ及び仮想システムの複写プログラム
Pingle et al. Big data processing using apache hadoop in cloud system
Leite et al. Dohko: an autonomic system for provision, configuration, and management of inter-cloud environments based on a software product line engineering method
US10986098B2 (en) Reverse identity federation in distributed cloud systems
Balakrishnan et al. SLA enabled CARE resource broker
US11853810B2 (en) Edge time sharing across clusters via dynamic task migration based on task priority and subtask result sharing
Rambhadjan et al. SURFnet cloud computing solutions
Kohne et al. Model for SLA-Based VM Scheduling in Federated Cloud Environments
WO2023274014A1 (zh) 容器集群的存储资源管理方法、装置及系统
Patel et al. Survey on resource allocation technique in cloud
US12032991B2 (en) Continuous liveness and integrity of applications during migration
WO2023078003A1 (en) Optimizing cloud query execution
WO2023279869A1 (en) Continuous liveness and integrity of applications during migration
Distefano et al. Cloud@ home: A new enhanced computing paradigm

Legal Events

Date Code Title Description
N231 Notification of change of applicant
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid