KR101946773B1 - 가상 머신 이주 도구 - Google Patents

가상 머신 이주 도구 Download PDF

Info

Publication number
KR101946773B1
KR101946773B1 KR1020187020379A KR20187020379A KR101946773B1 KR 101946773 B1 KR101946773 B1 KR 101946773B1 KR 1020187020379 A KR1020187020379 A KR 1020187020379A KR 20187020379 A KR20187020379 A KR 20187020379A KR 101946773 B1 KR101946773 B1 KR 101946773B1
Authority
KR
South Korea
Prior art keywords
application
rules
cloud
migration
rule
Prior art date
Application number
KR1020187020379A
Other languages
English (en)
Other versions
KR20180085058A (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 KR20180085058A publication Critical patent/KR20180085058A/ko
Application granted granted Critical
Publication of KR101946773B1 publication Critical patent/KR101946773B1/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/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

애플리케이션들을 컴퓨트 클라우드들로 이주시키기 위한 도구들 및 기술들이 본 명세서에서 설명된다. 도구는 임의의 애플리케이션을 컴퓨트 클라우드의 특정 구현으로 이주시키는 데 사용될 수 있다. 도구는 이주 규칙들의 라이브러리를 사용하고, 규칙들을 선택된 애플리케이션에 적용하고, 프로세스에서 이주 출력을 생성할 수 있다. 이주 출력은 권고 정보, 교정된 코드, 패치(patch) 등일 수 있다. 상이한 클라우드 플랫폼들을 위한 상이한 규칙 세트들이 존재할 수 있으며, 이는 애플리케이션이 상이한 클라우드들로 이주되는 것을 가능하게 한다. 규칙들은 광범위한 애플리케이션들 및 애플리케이션을 이주시키기 위한 대응하는 수정 액션들을 설명할 수 있다. 규칙들은 애플리케이션, 코드 또는 호출, 저장소, 데이터베이스 인스턴스, 데이터베이스와의 상호작용, 애플리케이션을 호스팅하는 운영 체제 등의 시맨틱 거동을 지정할 수 있다.

Description

가상 머신 이주 도구{VIRTUAL MACHINE MIGRATION TOOL}
최근, 때때로 PaaS(Platform as a Service)로서 지칭되는 컴퓨트 클라우드들의 이용 및 가용성이 증가해왔다. 컴퓨트 클라우드들의 예들은 Windows Azure(TM), Amazon EC2(TM), Bungee Connect(TM), Google App Engine(TM) 등이다. 이러한 컴퓨트 클라우드들은 통상적으로 많은 테넌트(tenant)를 호스팅하며, 테넌트들 각각은 통상적으로 클라이언트 브라우저들에 의해 액세스되는 그들 자신의 격리된 웹 애플리케이션들 또는 웹 서비스들을 실행한다. 테넌트의 애플리케이션들은 종종 가상 머신들(VM들)에서 실행된다. 컴퓨트 클라우드는 애플리케이션들에 투명하도록 의도된 방식으로 조건들 및 요구들의 변화를 처리할 수 있는 실행 환경을 제공한다. 예를 들어, 착신되는 요청들의 부하의 균형화, 네트워크 대역폭, 처리 자원들, 저장소의 준비, 애플리케이션들의 스케일링(예를 들어, 인스턴스들의 수의 조정), 가상 머신들 및 애플리케이션 인스턴스들의 재배치 등을 포함한다. 공유 컴퓨팅 클라우드들은 운영자 엔티티에 의해 관리되며, 이는 테넌트들이 주로 그들의 애플리케이션들에 관련되게 한다.
그러나, 실행 환경으로서의 컴퓨팅 클라우드는 원래 컴퓨팅 클라우드 상에서 실행되도록 설계되지 않은 애플리케이션들에 맞지 않는, 이익들 및 한계들 양자를 포함하는 특징들을 가질 수 있다. 예를 들어, 원래 특정 논-클라우드(non-cloud) 자원들(예를 들어, 관계형 데이터베이스들) 및 아마도 다양한 소프트웨어 및 하드웨어 설비들을 이용하는 특정 운영 체제들 상에서 실행되도록 설계된 3층 웹 애플리케이션을 고려한다. 애플리케이션은 부하의 변동을 처리하기 위한 내장 논리를 갖는 웹 프론트엔드를 구비할 수 있다. 프론트엔드는 비즈니스 논리를 구현하는 그리고 로컬 파일 저장소 및 데이터베이스와 같은 백엔드 저장소와 상호작용하는 중간 계층과 인터페이스할 수 있다. 이 애플리케이션은 클라우드에서 필요하지 않은 자기 스케일링을 위한 시맨틱스(semantics)를 가질 수 있다. 애플리케이션은 그 자신의 데이터베이스 계층 및 클라우드에서 필요하지 않은 부수적인 관리 소프트웨어를 가질 수 있다. 애플리케이션은 클라우드에 의한 제어와 충돌하는 운영 체제 구성 설정들을 가질 수 있다(일부 클라우드들은 운영 체제를 필요로 하지 않을 수도 있다). 애플리케이션이 컴퓨팅 클라우드에서 효율적으로 실행될 수 있게 하기 위해 애플리케이션의 양태들이 변경, 제거 또는 추가되는 것이 필요할 수 있다.
아래에서 논의되는 기법들은 애플리케이션들 및 가상 머신들을 컴퓨팅 클라우드들로 이주시키기 위한 도구들과 관련된다.
아래의 요약은 아래의 상세한 설명에서 논의되는 일부 개념들을 소개하기 위해서만 포함된다. 이 요약은 포괄적이지 않고 청구된 발명 대상의 범위를 정의하는 것을 의도하지 않으며, 이 범위는 마지막에 제공되는 청구범위에 의해 설명된다.
도 1은 범용 컴퓨팅 클라우드를 나타낸다.
도 2는 범용 컴퓨팅 클라우드의 다른 뷰를 나타낸다.
도 3은 2개의 예시적인 컴퓨팅 클라우드 아키텍처를 나타낸다.
도 4는 다른 컴퓨팅 클라우드 아키텍처를 나타낸다.
도 5는 타겟 애플리케이션의 컴퓨팅 클라우드로의 예시적인 이주를 나타낸다.
도 6은 이주 도구를 나타낸다.
도 7은 규칙들 또는 이주 라이브러리의 뷰를 나타낸다.
도 8은 이주 도구에 의해 수행되는 프로세스를 나타낸다.
도 9는 이주 도구에 의해 사용되는 판독 도구들의 예시적인 세트를 나타낸다.
수반되는 특징들 중 다수가 첨부 도면들과 관련하여 고려되는 아래의 상세한 설명을 참조하여 아래에 설명된다.
본 설명은 첨부 도면들을 고려하여 아래의 상세한 설명을 읽을 때 더 잘 이해될 것이며, 여기에서 동일한 참조 번호들은 첨부된 설명 내의 동일한 요소들을 지시하는 데 사용된다.
애플리케이션들을 컴퓨트 클라우드들로 이주시키기 위한 도구들 및 기술들이 본 명세서에서 설명된다. 도구는 임의의 애플리케이션을 컴퓨트 클라우드의 특정 구현으로 이주시키는 데 사용될 수 있다. 도구는 이주 규칙들의 라이브러리를 사용하고, 규칙들을 선택된 애플리케이션에 적용하고, 프로세스에서 이주 출력을 생성할 수 있다. 이주 출력은 권고 정보, 교정된 코드, 패치(patch) 등일 수 있다. 상이한 클라우드 플랫폼들을 위한 상이한 규칙 세트들이 존재할 수 있으며, 이는 애플리케이션이 상이한 클라우드들로 이주되는 것을 가능하게 한다. 규칙들은 광범위한 애플리케이션들 및 애플리케이션을 이주시키기 위한 대응하는 수정 액션들을 설명할 수 있다. 규칙들은 애플리케이션, 코드 또는 호출, 저장소, 데이터베이스 인스턴스, 데이터베이스와의 상호작용, 애플리케이션을 호스팅하는 운영 체제 등의 시맨틱 거동을 지정할 수 있다.
개요
후술하는 실시예들은 애플리케이션들을 컴퓨팅 클라우드들로 이주시키기 위한 이주 도구들과 관련된다. 설명은 컴퓨팅 클라우드들의 설명으로부터 시작되고, 여러 가지 예가 이어질 것이다. 예시적인 애플리케이션이 설명될 것이다. 이어서, 이주 도구들, 이주 규칙들 및 이주를 위한 프로세스들을 포함하는 이주를 위한 도구들 및 기술들이 설명될 것이다.
컴퓨팅 클라우드들
도 1은 범용 컴퓨팅 클라우드(100)를 나타낸다. 데이터 네트워크(102)가 컴퓨팅 클라우드(100)를 구성하는 다양한 컴퓨터들(도시되지 않음) 사이의 접속을 제공한다. 일반적으로, 많은 수의 컴퓨터가 가상 머신들을 호스팅하고, 가상 머신들은 격리된 테넌트 애플리케이션들을 호스팅한다. 다양한 클라우드 서비스들(104)은 통신 큐, 부하 균형화 등과 같은 기능들을 제공할 수 있다. 클라우드 플랫폼(106)은 테넌트들이 그들의 애플리케이션들을 업로드 및 관리할 수 있게 해주는 테넌트용 인터페이스로서 작용할 수 있다. 클라우드 플랫폼(106)은 또한 테넌트들의 애플리케이션들을 랩핑(wrapping) 및 관리하여, 각각의 애플리케이션에 대한 컴퓨트 환경을 효과적으로 제공할 수 있다. 클라우드 기반구조(108)는 비용청구 및 관리 요소들을 포함할 수 있다. 예를 들어, 클라우드 기반구조(108)는 애플리케이션들 및/또는 컴퓨팅 클라우드(100)의 부하 변화들을 처리하기 위해 컴퓨터들을 온라인화 및 오프라인화할 수 있다. 클라우드 저장소(110)는 다양한 형태들, 예를 들어 각각의 테넌트에 의해 제어되고 구성되는 데이터베이스들의 인스턴스들을 제공하는 관계형 데이터베이스 서비스, 간단한 블로브(blob)(이진 대형 객체) 저장소, 테이블 저장소, 파일 시스템 저장소 등의 형태를 취할 수 있다.
도 2는 범용 컴퓨팅 클라우드(100)의 다른 뷰를 나타낸다. 이 뷰에서, 테넌트들(120, 122)은 클라우드에 의해 호스팅되는 각각의 애플리케이션(124, 126)을 갖는다. 컴퓨팅 클라우드(100)는 애플리케이션들(124, 126)에 대한 컴퓨트 환경들(128, 130)을 관리하는 패브릭(125)을 갖는다. 패브릭(125)은 게스트 운영 체제, 저장 서비스 등을 갖는 VM들을 실행하는 많은 컴퓨터를 가질 수 있다. 애플리케이션들(124, 126)은 웹 기반 액세스를 위해 통상적인 다양한 컴포넌트들을 포함할 수 있으며, 컴퓨팅 클라우드(100)에 의해 제공되는 자원들을 사용할 수 있다. 컴퓨트 환경들(128, 130)은 (아마존 머신 이미지들(AMI들)에 의해 구성되는 바와 같은) Amazon EC2 인스턴스들, (Microsoft Azure에서와 같은) 역할들, (Google App Engine에서와 같은) 관리되는 코드 환경들을 갖는 샌드박싱 및 시뮬레이션된 부분 운영 체제들 등과 유사할 수 있다. 컴퓨트 환경들(128, 130)은 부하, 네트워크 트래픽, 예상치 못한 고장 등과 같은 현재의 조건들에 따라 패브릭(125)에 의해 "확장"될 수 있다. 그러한 확장은 필요에 따라 계산 자원들(하드웨어, VM, 서비스 인스턴스, 데이터베이스 인스턴스 등)을 투명하게 추가 또는 제거하는 것을 포함할 수 있다.
애플리케이션들(124, 126)은 테넌트들(120, 122)에 의해 업로드 및 구성된다. 애플리케이션들(124, 126)은 컴퓨팅 클라우드(100)에 의해 관리되는 바와 같이 실행되며, 클라이언트들(128)은 브라우저들 또는 다른 타입의 클라이언트 소프트웨어를 이용하여 애플리케이션들(124, 126)의 인스턴스들에 액세스한다. 애플리케이션의 관점에서, 애플리케이션은 플랫폼 상에서 실행되고 있으며, 컴퓨팅 클라우드(100)의 활동은 대부분 투명하다는 점에 유의한다. 애플리케이션들은 기반 하드웨어, 데이터 네트워크 또는 애플리케이션과 클라이언트 사이의 클라우드 계층에 대한 어떠한 관계도 없이 통신 프로토콜들을 통해 액세스된다.
도 3은 2개의 예시적인 컴퓨팅 클라우드 아키텍처를 나타낸다. 클라우드 아키텍처(250)는 Amazon EC2 클라우드의 일 버전이다. 애플리케이션 개발 및 배치는 테넌트 클라이언트에 의해 처리된다. 클라우드는 머신 이미지들 및 주문형 인스턴스들의 형태의 클라우드 컴퓨팅 서비스들을 제공한다. 애플리케이션들은 가상 머신들 내의 게스트 운영 체제들에서 호스팅된다. 가상 머신들 및 데이터베이스들의 인스턴스들은 지원 서비스들로부터의 요구에 따라 클라우드에 의해 제공된다. 큐 서비스가 가상 머신들과 애플리케이션 인스턴스들 간의 통신을 용이하게 할 수 있다. 이러한 컴포넌트들이 어떻게 동작하고 협동하는지에 대한 상세들은 다른 곳에서 입수할 수 있다.
클라우드 아키텍처(252)는 Google App Engine 클라우드의 일 버전이다. 애플리케이션을 생성하고 배치하기 위해 다양한 개발 도구들이 사용된다. App Engine 자체는 다른 곳에 충분히 기록되어 있다. 하나의 중요한 특징은, 애플리케이션이 배치되면, App Engine이 자동으로 스케일링을 처리하며, 자원들 및/또는 인스턴스들이 필요에 따라 추가 및 제거된다는 것이다. 다양한 지원 서비스들이 애플리케이션들에 의해 액세스될 수 있다. 계정 서비스, 데이터 테이블 서비스 등이 애플리케이션들에 의해 이용되며, 이러한 자원들도 클라우드에 의해 스케일링 및 관리된다.
도 4는 Microsoft Azure의 일 버전에 대한 컴퓨팅 클라우드 아키텍처(254)를 나타낸다. 관리되는 코드를 갖는 개별 스케일링 가능 컴포넌트들인 역할들이 제공된다. 작업자 역할들은 일반화된 개발을 위한 것이며, 웹 역할에 대한 배경 처리를 수행할 수 있다. 웹 역할들은 웹 서버를 제공하며, 하이퍼텍스트 전송 프로토콜(HTTP) 또는 HTTP 보안(HTTPS) 엔드포인트를 통해 웹 요청들을 청취하고 응답한다. VM 역할들은 테넌트 정의 구성들(예로서, 자원, 게스트 운영 체제)에 따라 인스턴스화된다. 운영 체제 및 VM 갱신들은 클라우드에 의해 관리된다. 웹 역할 및 작업자 역할은 테넌트의 제어하에 있는 가상 머신인 VM 역할에서 실행된다. 저장 및 SQL 서비스들은 역할들에 의한 사용에 유효하다. 다른 클라우드들에서와 같이, 스케일링, 부하 균형화 등을 포함하는 하드웨어 및 소프트웨어 환경 또는 플랫폼은 클라우드에 의해 처리된다.
요컨대, PaaS 타입의 컴퓨팅 클라우드들에서는, 클라우드 컴퓨팅 플랫폼 자체가 대부분의 관리 기능들을 처리한다. 플랫폼은 운영 체제 패치들의 적용, 시스템 또는 데이터베이스 소프트웨어의 새로운 버전들의 인스톨, 컴퓨터들 및 VM들의 온라인화, VM들의 이주, 네트워크 대역폭의 할당 등과 같은 것들을 자동으로(그리고 테넌트들에 투명하게) 처리할 수 있다. 그러나, (다음 섹션에서 설명되는) 애플리케이션들의 소정의 시맨틱 거동과 교차할 수 있는 이러한 투명한 관리는 패칭, 하드웨어 고장, 과부하 및 다른 이유들로 인한 애플리케이션 이용 불가능성을 제거할 수 있다. 더욱이, 물리 및 가상 머신들의 제어 내에 있는 클라우드는 애플리케이션 스케일링을 처리하며, 클라우드는 적절한 레벨의 자원들이 임의의 주어진 시간에 이용가능한 것을 보증한다. 컴퓨팅 클라우드 플랫폼들은 다른 특징들을 가질 수 있다. 예를 들어, 브라우저 기반 개발 도구들, 클라우드 내의 호스팅되는 실행시간 환경에 대한 무결함 배치(즉, 클라우드에 액세스하는 클라이언트로부터 애플리케이션을 배치하고 개시하는 능력), 테넌트용 웹 기반 관리 및 모니터링 도구들, 현금 지불 방식(pay-as-you-go)의 비용 청구 등을 포함한다.
애플리케이션 이주
전술한 바와 같이, 원래 컴퓨팅 클라우드에서 실행되도록 생성되지 않은 애플리케이션은 컴퓨팅 클라우드의 아키텍처 및 서비스들에 의해 영향을 받을 수 있는 설계 특징들(시맨틱스), 코드 특성들 및 구성 특징들을 가질 수 있다. 애플리케이션은 클라우드 환경에서 중복되는 부하 균형화 및 스케일링과 같은 기능을 가질 수 있다. 애플리케이션은 클라우드 환경에서 에러, 데이터 손실 또는 다른 장애를 유발할 수 있는 특징들도 가질 수 있다. 애플리케이션을 클라우드 환경으로 이주시킬 때, 호환성, 신뢰성, 효율, 비용 최소화, 적절한 인스톨 등을 위해 행해질 수 있는 또는 행해져야 하는 변경들이 종종 존재한다.
도 5는 타겟 애플리케이션(280)의 컴퓨팅 클라우드로의 예시적인 이주를 나타낸다. 타겟 애플리케이션(280)은 원래 특정 운영 체제 및 맞춤형 기반구조, 예를 들어 인 하우스 정보 기술(IT) 환경을 위해 설계된 머신 또는 호스트 기반 애플리케이션이다. 타겟 애플리케이션(280)은 클라이언트 요청들을 처리하는 웹 서버들(282)의 프론트엔드를 포함하는 3층 아키텍처를 갖는다. 맞춤형 부하 균형화기(284)가 클라이언트 요청들을 웹 서버들(282) 사이에 분산시킨다. 중간 계층은 타겟 애플리케이션(280)의 논리 및 주요 기능을 처리하는 애플리케이션 서버들(286)을 포함한다. 중간 계층은 SQL 서버(288)에 의해 관리되는 데이터베이스 내에 데이터 및 애플리케이션 상태를 저장한다. SQL 서버는 장애 극복 및 백업을 위해 데이터베이스 미러를 유지한다. 애플리케이션 서버들(286)은 SQL 호출 등을 이용하여 SQL 서버(288)와 인터페이스한다. 부하 균형화기(290)는 웹 서버들(282)과 애플리케이션 서버들(286) 간의 상호작용을 균형화한다. 타겟 애플리케이션(280)은 전술한 요소들 중 임의의 요소의 인스턴스들을 추가함으로써 스케일링하기 위한 맞춤형 논리를 구비할 수 있다. 더욱이, 타겟 애플리케이션(280)이 실행되는 컴퓨터 플랫폼들을 관리하는 관리 소프트웨어의 계층이 존재할 수 있다. 이 계층은 백업, 시스템 갱신, 좀비 프로세스 또는 시스템의 재개, 호스트 컴퓨터들 사이의 가상 머신들의 이주, 장애 극복 시스템들로의 재지향 등을 수행할 수 있다.
도 5의 아랫부분은 이주된 애플리케이션(292)을 나타낸다. 이주된 버전은 후술하는 다양한 방식으로 변경될 수 있다. 예를 들어, (이주된 애플리케이션(292)의 가시성 없이) 컴퓨팅 클라우드에 의해 부하 균형화 메커니즘(294)이 제공될 수 있다. 이주된 애플리케이션(292)의 웹 서버들(296)은 제거된 HTTP 서버들일 수 있으며, HTTP 요청들을 처리하기 위해 컴퓨팅 클라우드에 의존할 수 있다. 또는, 웹 서버들(296)은 클라우드에 의해 인스턴스화되고 관리될 수 있다. 클라우드는 또한 이주된 애플리케이션 서버들(298)에 대한 부하 균형화 및 스케일링을 제공할 수 있다. 이주된 애플리케이션(292)의 데이터 계층은 여전히 SQL 명령문들 및 (아마도 변경된) 논리를 사용하지만, 애플리케이션 데이터는 이제 클라우드 관리 데이터베이스 인스턴스(300)로부터 저장되고 서빙된다. 이주된 애플리케이션(292)을 클라우드 내에 인스톨하는 테넌트는 여전히 데이터베이스를 구성하고 그의 요구들을 지정할 수 있지만, 데이터베이스는 일반적으로 사용자 제공 스키마 등에 따라, 클라우드 내의 다른 테넌트들에 대한 데이터베이스들을 제공(및 격리)하는 데이터베이스 서비스에 의해 제공된다. 이주 도구 및 애플리케이션에 대한 다른 가능한 변경들의 상세들이 다음에 설명될 것이다.
도 6은 이주 도구(320)를 나타낸다. 이주 도구는 하나 이상의 컴퓨터에서 실행되며, 선택된 애플리케이션(322)에 대한 이주 분석을 수행하여, 아마도 선택된 애플리케이션(322)을 변경하고/하거나, 개발자로 하여금 선택된 애플리케이션(322)을 수동으로 변경하는 것을 가능하게 하기 위한 정보를 출력한다. 도구는 각각의 클라우드에 대한 이주 규칙들(326)의 세트들을 갖는 이주 라이브러리(324)를 사용한다. 예를 들어, 한 세트의 이주 규칙들(326)을 포함한다. 사용자가 이주 도구(320)를 사용하고 있을 때, 타겟 클라우드 플랫폼이 선택되며, 이주 도구(320)는 이주 규칙들(326)의 대응하는 세트를 이용하여 이주 출력(328)을 생성한다. 이주 출력(328)은 교정된 소스 코드, 선택된 애플리케이션(322)에 적용될 패치들, 코드, 시맨틱 또는 아키텍처 변경을 권하는 보고서들 또는 그러한 출력들의 조합일 수 있다.
도 7은 규칙들 또는 이주 라이브러리(324)의 뷰를 나타낸다. 설명된 바와 같이, 상이한 컴퓨팅 클라우드 플랫폼들에 대한 상이한 이주 규칙 세트들이 존재할 수 있다. 예시적인 규칙 세트(326A)는 코드 규칙들(350), 운영 체제 규칙들(352), 시맨틱 규칙들(354), SQL 또는 데이터베이스 규칙들(356), 인스톨러 규칙들(358) 등을 포함할 수 있다.
코드 규칙들(350)은 <조건><액션> 형태의 규칙들을 포함할 수 있다. 조건은 코드 명령문의 신택스, 포함되거나 배제되어야 하는 특정 라이브러리, 특정 저장 타입 또는 위치, 경로 등을 지정할 수 있다. 공통 코드 패턴들도 지정될 수 있다. 액션들은 변할 수 있다. 일부 액션들은 코드를 변경하거나 사전 정의된 코멘트를 삽입할 수 있다. 다른 액션들은 이주 보고 로그에 출력을 추가할 수 있다. 코드 규칙들(350)은 특정 호출들 또는 메소드들의 세트를 인식하고, 이들을 클라우드 고유 애플리케이션 프로그래밍 인터페이스(API)로 변환할 수 있다. 규칙은 특정 라이센스 서버 또는 라이센스 라이브러리에 대한 호출을 인식할 수 있다. 규칙은 타겟 컴퓨팅 클라우드에서 이용 가능하지 않은 네트워크 서비스(예를 들어, 활성 디렉토리(TM))와 관련된 코드도 인식할 수 있다. 대응하는 수정 액션들, 보고들 및/또는 교정들이 포함될 수 있다.
타겟 애플리케이션이 (이주 후에 클라우드 내의 VM 게스트의 형태로) 특정 운영 체제를 위해 형성되는 환경들을 위해 운영 체제 구성 규칙들(352)의 세트가 제공될 수 있다. 일부 예들에서, 운영 체제 규칙들은 운영 체제와 인터페이스하는 애플리케이션 코드와 관련될 수 있다. 컴퓨팅 클라우드가 테넌트로 하여금 특정 운영 체제를 지정 또는 인스톨하게 하는 예들에서, 규칙들은 운영 체제를 직접 검사할 수 있다. 예를 들어, 관련 컴퓨팅 클라우드가 게스트 운영 체제 갱신들을 자동으로 처리하는 경우, 게스트 운영 체제들은 자동 갱신들을 디스에이블하도록 구성되어야 한다. 허가들 또는 특정 사용자 계정들이 변경되거나 추가될 수 있다. 일부 클라우드들은 특정 운영 체제 버전들(릴리스 버전, 32 대 64 비트 버전 등)만을 지원할 수 있으며, 따라서 규칙들은 운영 체제 요구를 식별할 수 있고, 액션들은 운영 체제의 변경, 운영 체제의 업그레이드 또는 이를 행할 필요성에 대한 플래깅(flagging)을 포함할 수 있다. 일부 클라우드들에서는, 일관성을 위해, 운영 체제 시간대 설정치들을 특정 시간대 설정치, 예를 들어 UTC(Coordinated Universal Time)로 설정하는 것이 권장될 수 있는데, 그 이유는 애플리케이션 인스턴스들 또는 VM들이 다수의 지리적 시간대에 걸쳐 실행될 수 있기 때문이다. 다시, 대응하는 수정들 또는 패치들이 규칙들에 포함될 수 있다.
시맨틱 규칙들(354)은 타겟 애플리케이션의 아키텍처 또는 설계 양태들을 지정할 수 있다. 예를 들어, 전술한 바와 같이, 일부 애플리케이션 특징들은 컴퓨팅 클라우드에서 쓸모없게 될 수 있다. 시맨틱 규칙들(354)은 부하 균형화기, 스케일링 논리, 데이터 백업 또는 미러링 등을 인식하기 위한 단서들을 지정할 수 있다. 단서들은 구성된 명단, 키워드 인식, 또는 재고 또는 개방 소스 컴포넌트들의 공지된 표시기들로부터 나올 수 있다. 단서들은 또한 코드를 컴파일하거나 코드의 특징들을 분석 또는 프로파일링하는 것을 포함할 수 있는 자동 코드 분석으로부터 나올 수 있다. 인식할 시맨틱 특성들은 (클라우드에 의해 처리될) 재개 논리, 자원 사용 및 장애 극복 논리를 포함할 수 있다. 일부 클라우드들에서는, VM들이 클라우드에 의해 뜻대로 이동(정지 및 재시동)될 수 있으므로, 규칙들은 로컬 저장소에 의존하는 애플리케이션의 부분들을 인식하고, 애플리케이션의 상태를 신뢰성 있게 유지하기 위해 클라우드 기반 영구 저장소의 사용을 권할 수 있다. 일 실시예에서, 규칙은 애플리케이션 컴포넌트의 하나의 인스턴스에 의해 저장된 상태가 클라우드에 의해 자동으로 개시된 새로운 인스턴스들에 의해 인식되어야 한다는 것을 인식할 수 있다. 다른 시맨틱 규칙들은 애플리케이션의 인스턴스가 예를 들어 그의 호스트 VM의 회복시에 그가 인터럽션 이전의 그의 상태와 일치하는 상태를 갖는 것을 확인하는 것을 가능하게 하기 위해 호스트 운영 체제가 언제 슬립 또는 중지 상태(또는 재개)에 들어갔는지를 인식하기 위한 훅들(hooks)을 추가할 수 있다(또는 추가를 제안할 수 있다).
저장소 또는 데이터베이스 규칙들(356)은 컴퓨팅 클라우드의 일부인 데이터베이스 서비스의 인스턴스일 수 있는 통상의 데이터베이스 서버로부터의 클라우드 기반 데이터베이스 서버로의 시프팅과 관련된 규칙들을 포함할 수 있다. 이러한 규칙들은 특정 데이터베이스로부터의 클라우드 내의 블로브 저장소, 클라우드 내의 키 값 저장소, 테이블 서비스로부터의 단순 데이터 테이블 등과 같은 다른 형태의 저장소로의 시프팅도 포함할 수 있다. 일반적으로, 전술한 바와 같이, 애플리케이션의 저장 전략을 애플리케이션을 호스팅하는 VM 상의 저장으로부터 클라우드 기반 저장으로 시프트하려고 시도하는 규칙들이 존재할 수 있다. 다른 데이터베이스 규칙들(356)은 특정 SQL 호출, 데이터베이스 미러링 논리를 찾을 수 있다. 데이터베이스 트랜잭션들 동안 더 빈번한 접속 검사를 행하기 위해 접속 규칙이 포함될 수 있다. 예를 들어, 일부 클라우드 기반 데이터베이스 서비스들은 새로운 인스턴스들을 자주 스핀업하고, 애플리케이션의 데이터베이스의 오래된 인스턴스들을 셧다운시킬 수 있으며, 원래의 애플리케이션은 접속이 코드의 범위를 통해 이용 가능하게 유지되는 반면에 클라우드로 이주될 때 접속 검사가 유용한 것으로 가정할 수 있다. 다른 실시예에서, 클라우드 기반 데이터베이스들은 다수의 테이블에 걸치는 트랜잭션들을 보증하지 않을 수 있으며, 규칙은 다수의 테이블과 관련된 SQL 트랜잭션들을 플래깅할 수 있다. 지원되지 않거나 필요하지 않은 SQL 호출들도 인식될 수 있다.
인스톨러 규칙들(358)은 타겟 애플리케이션의 인스톨 패키지 포맷을 검사하고, 타겟 클라우드 상의 인스톨와 관련된 규칙들을 적용할 수 있다. 예를 들어, 컴퓨팅 클라우드가 애플리케이션을 호스팅하는 VM들을 통해 제어를 실행하는 경우, 다양한 인스톨 컴포넌트들이 재배치되는 것이 필요할 수 있고, 원래의 애플리케이션이 존재하는 것으로 가정한 컴포넌트들(예를 들어, 어셈블리들 또는 라이브러리들)이 이주된 애플리케이션의 인스톨 프로세스 내에 실제로 포함되는 것이 필요할 수 있다. 일부 애플리케이션 컴포넌트들의 설정들은 클라우드 기반 환경 내에 인스톨될 때 변경되는 것이 필요할 수 있다. 일 실시예에서는, 전체 인스톨 패키지가 클라우드와 호환되지 않은 것으로서 플래깅될 수 있다. 다른 실시예에서, 인스톨 규칙은 애플리케이션의 인스톨 패키지를 하나의 포맷으로부터 타겟 클라우드와 호환되는 포맷으로 변환할 수 있다. 규칙은 또한 애플리케이션을 인스톨하기 위해 클라우드에 액세스하는 데 필요한 증명서들을 추가할 수 있다. 다시, 대응하는 액션들, 수정 및/또는 권고가 규칙들에 포함될 수 있다.
다른 타입의 규칙들도 포함될 수 있다. 일 실시예에서, 이주 라이브러리는 관련 클라우드들에 대한 비용 정보를 포함할 수 있다. 그러한 정보는 클라우드에서 비용이 어떻게 발생하는지 그리고 클라우드 자원들의 다양한 유닛들에 대한 비용들을 설명할 수 있다. 규칙들은 또한 비용 정보에 액세스하여, 타겟 클라우드 내의 애플리케이션의 잠재적 비용들에 대한 분석을 수행할 수 있다. 그러한 분석이 포함될 수 있다. 일 실시예에서, 비용 정보는 타겟 클라우드에서의 라이센싱 권리들 또는 기회들에 대한 정보를 포함할 수 있다. 이러한 규칙들은 적용시에 애플리케이션의 컴포넌트들(예를 들어, 게스트 운영 체제, 데이터베이스 인스턴스 등)에 대한 새로운 라이센싱 배열들, 또는 라이센스 요구들을 커버하고, 따라서 라이센스에 대해 별도로 지불할 필요성을 없애는 클라우드의 운영자(또는 다른 판매자들)로부터의 라이센스 제의들을 찾기 위한 권고를 이주 보고서에 추가할 수 있다.
전술한 다양한 규칙들은 한정적이 아니며, 다른 특정 규칙들 및 다른 카테고리의 규칙들이 사용될 수 있다. 더욱이, 규칙은 컴퓨팅 클라우드에서의 요구들 및 선호들에 대한 정보를 나타내는 편리한 형태일 뿐이다. 본 명세서에서 사용되는 바와 같은 "규칙"이라는 용어는 임의의 애플리케이션의 원래 조건 또는 그의 환경, 및 애플리케이션이 특정 컴퓨팅 클라우드에서 실행되는 경우에 관련되는 특정 컴퓨팅 클라우드의 대응하는 양태를 설명하는(임의의 애플리케이션들에 적용 가능한) 임의의 정보를 포함하도록 정의된다. 본 명세서에서 사용되는 바와 같은 "규칙"은 또한 규칙에 의해 지정되는 조건이 타겟 애플리케이션 내에 존재하는 것으로 결정될 때 취해질 수 있는 임의의 액션을 포함하도록 정의되며, 임의의 액션은 사용될 수 있는 패치들 또는 보고서들 또는 다른 정보의 실제 변경, 생성을 포함한다. 따라서, 실제로, 규칙들은 선언 또는 논리 언어에서의 명령문들, 스크립팅 언어를 포함하는 통상의 절차 코드, 컴파일된 코드 등을 포함하는 다양한 형태들을 취할 수 있다. 규칙들의 타입 및 특성은 규칙 세트들에 대응하는 특정 컴퓨팅 클라우드들에 따라 규칙 세트(326)마다 다를 수 있다. 일 실시예에서는, 하나의 규칙 세트(326)만이 존재하며, 이주 라이브러리(324)는 컴퓨팅 클라우드의 하나의 구현만을 위한 것이다. 또 다른 실시예에서, 규칙들은 실행 가능 도구의 일부로서 구현된다.
도 8은 이주 도구(320)에 의해 수행되는 프로세스를 나타낸다. 단계 380에서, 이주 도구(320)의 사용자는 컴퓨팅 클라우드로 이주될 타겟 소프트웨어 또는 애플리케이션을 지정한다(도구 및 규칙들은 임의의 애플리케이션에 적용될 수 있도록 설계된다). 단계 382에서, 이주 도구(320)는 타겟 애플리케이션에 액세스한다. 이것은 패키지 포맷을 열거나, 소스 코드 파일들 및 구성 파일들을 판독하거나, VM 이미지를 적재하거나, 애플리케이션을 조사하기 위한 다른 수단을 포함할 수 있다. 이주 도구(320)는 요소들 사이의 관계, 종속성, 관련 파일(예를 들어, 명단 및 구성된 스크립트) 등을 식별할 수 있다. 단계 384에서, 규칙들의 라이브러리로부터 관련 규칙 세트가 로딩된다. 단계 386에서, 애플리케이션의 다양한 컴포넌트들이 파싱되고, 관련 규칙들이 적용된다. 단계 388에서, 출력이 생성된다. 출력은 패치, 코드 수정, 권고 등을 포함하는 전술한 다양한 형태들을 취할 수 있다.
도 9는 이주 도구(320)에 의해 사용되는 판독 도구들(400)의 예시적인 세트를 나타낸다. 애플리케이션의 콘텐츠에 액세스하기 위해, 이주 도구(320)는 VM 이미지 적재기(402), 코드 파서(404), 인스톨 패키지 검사기(406), 어셈블리 판독기(408), 스키마 판독기(410), 스크립트 판독기(412) 또는 파서, 컴파일러, 소프트웨어 개발 환경 및/또는 이주되는 애플리케이션의 타입과 관련된 임의의 다른 공지 기술들을 이용할 수 있다. VM 이미지 적재기(402)는 VM 이미지 포맷을 판독하고 이미지를 파일 시스템 내에 적재하도록 구성될 수 있다.
결론
전술한 실시예들 및 특징들은 휘발성 및 비휘발성 컴퓨터 또는 장치 판독 가능 매체에 저장되는 정보의 형태로 구현될 수 있다. 이것은 적어도 광학 저장 장치(예로서, 컴팩트 디스크 판독 전용 메모리(CD-ROM)), 자기 매체, 플래시 판독 전용 메모리(ROM), 또는 디지털 정보를 저장하는 임의의 현재 또는 미래의 수단과 같은 매체를 포함하는 것으로 간주된다. 저장되는 정보는 머신 판독 가능 명령어(예를 들어, 컴파일된 실행 가능 이진 코드), 소스 코드, 바이트 코드, 또는 컴퓨팅 장치들이 전술한 다양한 실시예들을 수행하는 것을 가능하게 하거나 구성하는 데 사용될 수 있는 임의의 다른 정보의 형태일 수 있다. 이것은 또한 적어도 일 실시예를 수행하는 프로그램의 실행 동안 중앙 처리 유닛(CPU) 명령어들과 같은 정보를 저장하는 랜덤 액세스 메모리(RAM) 및/또는 가상 메모리와 같은 휘발성 메모리는 물론 프로그램 또는 실행 파일이 로딩되고 실행되는 것을 가능하게 하는 정보를 저장하는 비휘발성 매체를 포함하는 것으로 간주된다. 실시예들 및 특징들은 휴대용 장치, 워크스테이션, 서버, 이동 무선 장치 등을 포함하는 임의 타입의 컴퓨팅 장치에서 수행될 수 있다.

Claims (20)

  1. 인터넷을 통한 클라이언트에 의한 액세스를 위해 임의의 애플리케이션을 호스팅하는 애플리케이션 호스팅 클라우드로 애플리케이션을 이주시키는 방법으로서,
    상기 애플리케이션 호스팅 클라우드로 이주시킬 타겟 애플리케이션을 선택하는 단계 - 상기 애플리케이션 호스팅 클라우드는 애플리케이션이 마치 하드웨어 플랫폼 상에서 실행되는 것처럼 실행될 수 있는 클라우드 기반 가상 플랫폼을 제공하고, 상기 타겟 애플리케이션은 이주(migration) 전에 특정 컴퓨터 호스트 플랫폼 상에서 실행되도록 구성됨 - 와,
    상기 타겟 애플리케이션을 이주 도구(migration tool)로 전달하는 단계 - 상기 이주 도구는 하나 이상인 복수의 이주 규칙을 포함하는 규칙 라이브러리에 대한 액세스를 제공받고, 각각의 복수의 이주 규칙은 제각기의 상이한 애플리케이션 호스팅 클라우드에 대응하며, 각각의 복수의 이주 규칙은 코드 규칙, 운영 체제 규칙, 시맨틱(semantics) 규칙, 데이터베이스 규칙 또는 인스톨러(installer) 규칙 중 적어도 하나를 설명함 - 와,
    상기 규칙 라이브러리로부터 상기 타겟 애플리케이션에 적용 가능한 것으로 판정된 하나 이상의 이주 규칙을 식별하기 위해 상기 이주 도구를 이용하여 상기 타겟 애플리케이션의 소스 파일과 구성 파일을 파싱하고 분석하는 단계 - 하나의 이주 규칙은 특정 서비스에 대한 참조를 상기 애플리케이션 호스팅 클라우드에 의해 제공되는 유사한 서비스로 변환하는 것과 관련된 정보를 제공하도록 구성됨 - 와,
    상기 특정 컴퓨터 호스트 플랫폼을 위해 구성되는 것에서 상기 애플리케이션 호스팅 클라우드를 위해 적어도 부분적으로 구성되는 것으로 상기 타겟 애플리케이션의 상기 소스 파일과 상기 구성 파일에 대한 변경을 설명하는 보고서를 생성하도록 상기 식별된 하나 이상의 이주 규칙을 상기 타겟 애플리케이션에 적용하는 단계를 포함하는
    애플리케이션을 이주시키는 방법.
  2. 제1항에 있어서,
    식별된 하나 이상의 이주 규칙 상기 애플리케이션의 시맨틱 거동을 포함하는 조건을 포함하는
    애플리케이션을 이주시키는 방법.
  3. 제2항에 있어서,
    상기 분석하는 단계는 상기 타겟 애플리케이션의 구성 설정을 식별하는 단계를 포함하고, 상기 구성 설정에 대응하는 식별된 규칙은 상기 구성 설정에 관한 엔트리가 상기 보고서에 추가되게 하는
    애플리케이션을 이주시키는 방법.
  4. 제1항에 있어서,
    상기 식별된 하나 이상의 이주 규칙은 상기 애플리케이션 호스팅 클라우드 내에 지속되는 데이터와 관련된 규칙을 포함하는
    애플리케이션을 이주시키는 방법.
  5. 제4항에 있어서,
    상기 식별된 하나 이상의 이주 규칙을 적용하는 단계는 상기 애플리케이션 호스팅 클라우드에 의해 처리되는 기능을 수행하는 상기 타겟 애플리케이션의 부분을 식별하는 단계를 포함하는
    애플리케이션을 이주시키는 방법.
  6. 제1항에 있어서,
    상기 보고서는 상기 애플리케이션 호스팅 클라우드에서의 실행을 가능하게 하기 위한 상기 타겟 애플리케이션에 대해 잠재적 변경을 식별하는
    애플리케이션을 이주시키는 방법.
  7. 제1항에 있어서,
    상기 식별된 하나 이상의 이주 규칙 중 하나는 SQL(structure queried language) 코드 구조 및 대응하는 코드 변경 설명을 정의하고, 상기 식별된 하나 이상의 이주 규칙을 적용하는 단계는 상기 식별된 하나 이상의 이주 규칙 중 하나가 상기 코드 구조에 매칭되는 상기 타겟 애플리케이션의 코드의 일부에 적용 가능한지 판정하는 단계를 포함하는
    애플리케이션을 이주시키는 방법.
  8. 컴퓨터와,
    상기 컴퓨터와 연결되어 상기 컴퓨터로 하여금 상기 컴퓨터에 의해 실행가능한 이주 도구를 실행하도록 하는 정보를 저장하는 저장 하드웨어를 포함하되,
    상기 이주 도구는, PaaS(platform-as-as-service) 클라우드에 이주될 임의의 애플리케이션에 대해 적용될 수 있는 구성, 코드, 운영 체제, 데이터베이스 또는 인스톨러 속성 중 적어도 하나와 소스 코드 특징을 설명하는 이주 규칙을 포함하는 규칙 라이브러리에 대한 액세스를 갖고, 상기 규칙 라이브러리는 상기 PaaS 클라우드 내에 동등한 클라우드 자원을 갖는 애플리케이션 자원을 참조하는 애플리케이션 로직을 식별하도록 구성된 하나 이상의 규칙을 더 포함하며,
    상기 이주 도구는, 타겟 애플리케이션의 코드 파일과 구성 파일을 파싱하도록 구성된 하나 이상의 파서(parser)를 포함하고, 상기 파서는 상기 규칙 라이브러리에서 상기 애플리케이션에 적용가능한 규칙을 식별하기 위해 상기 애플리케이션의 상기 코드 파일과 상기 구성 파일을 파싱하도록 또한 구성되며,
    상기 이주 도구는 또한, 상기 PaaS 클라우드 내에서 상기 애플리케이션의 실행을 가능하게 하거나 향상시키도록 상기 애플리케이션에 행해질 변경을 식별하는 출력을 생성하기 위해 상기 식별된 규칙을 상기 애플리케이션에 적용하도록 구성되고, 상기 식별된 변경은 애플리케이션 자원 참조에 대한 참조를 동등한 클라우드 자원에 대한 참조로 변경하는 것을 포함하는
    장치.
  9. 제8항에 있어서,
    상기 규칙의 일부는 SQL 호출 또는 SQL 선언문을 설명하고,
    상기 적용하는 것은 상기 코드 내의 호출 또는 선언문이 상기 식별된 변경에 따라 변경되는 경우에 상기 PaaS 클라우드에서 실행될 수 있도록 상기 타겟 애플리케이션의 코드에 대한 변경을 식별하는 것을 포함하는
    장치.
  10. 제9항에 있어서,
    상기 코드에 대한 변경은 상기 PaaS 클라우드의 데이터베이스 서비스의 인보킹을 포함하도록 상기 호출 또는 상기 선언문을 변경하는 것에 대응하고,
    상기 데이터베이스 서비스는 상기 PaaS 클라우드에서 실행되는 임의의 애플리케이션에 대해 이용가능한 상기 PaaS 클라우드의 일부를 포함하며,
    상기 데이터베이스 서비스는 상기 애플리케이션에 대해 격리되고 스케일링 가능한 테이터베이스 인스턴스를 각각 제공하는
    장치.
  11. 제8항에 있어서,
    상기 하나 이상의 규칙은 상기 타겟 애플리케이션에 적용되는 경우, 로컬 파일 시스템 상의 저장소를 특정하는 상기 타겟 애플리케이션의 저장 로직을 식별하고, 상기 PaaS 클라우드의 영구 데이터 저장 서비스를 대신 사용하도록 상기 로직에 대한 교정을 식별하는
    장치.
  12. 제8항에 있어서,
    상기 규칙 라이브러리 내의 규칙은 상기 PaaS 클라우드를 포함하는 제각기의 상이한 PaaS 클라우드에 대한 규칙을 포함하고, 상기 이주 도구는 상기 식별된 규칙이 상기 PaaS 클라우드에 특정한 것에 기초하여 적어도 상기 식별된 규칙을 선택하도록 구성되는
    장치.
  13. 제8항에 있어서,
    상기 타겟 애플리케이션은 데이터베이스 스키마(schema)를 포함하고, 상기 이주 도구는 표준 배포 패키지 포맷을 판독하도록 구성된 컴포넌트를 포함하는
    장치.
  14. 애플리케이션을 PaaS 클라우드에 이주시키는 방법으로서,
    상기 PaaS 클라우드에 대한 이주 분석을 위해 선택된 타겟 애플리케이션에 액세스하는 단계 - 상기 타겟 애플리케이션은 상기 이주 분석 전에 특정 컴퓨터 호스트 플랫폼 상에서 실행되도록 구성됨 - 와,
    상기 타겟 애플리케이션을 이주 도구로 전달하는 단계 - 상기 이주 도구는 복수의 이주 규칙을 포함하는 규칙 라이브러리를 포함하고, 상기 복수의 이주 규칙은 코드 규칙, 운영 체제 규칙, 시맨틱 규칙, 데이터베이스 규칙 또는 인스톨러 규칙 중 적어도 하나를 설명함 - 와,
    상기 규칙 라이브러리로부터 상기 복수의 이주 규칙에 액세스하는 단계 - 상기 복수의 이주 규칙은 임의의 애플리케이션에 적용되는 경우 상기 애플리케이션에 의한 소프트웨어 요소의 사용 또는 상기 소프트웨어 요소에 대한 참조를 식별하고, 상기 소프트웨어 요소는 (i) 상기 애플리케이션에 의해 사용될 수 있고, (ii) 상기 PaaS 클라우드에 의해 제공된 등가물을 가지며, 상기 복수의 이주 규칙은 상기 PaaS 클라우드에 호스팅되는 것으로 구성될 경우에 상기 애플리케이션에 행해질 변경을 식별하기 위한 것임 - 와,
    상기 타겟 애플리케이션이 상기 PaaS 클라우드에서 실행되도록 구성되지 않는 동안 상기 규칙 라이브러리로부터의 상기 복수의 이주 규칙을 상기 타겟 애플리케이션에 적용하는 단계 - 상기 타겟 애플리케이션은 상기 PaaS 클라우드가 아닌 시스템에 의해 제공된 상기 소프트웨어 요소 중 하나를 사용하도록 구성되고, 상기 적용하는 단계는 상기 타겟 애플리케이션을 인스톨 또는 컴파일링하여 출력의 형태를 생성하기 위해 사용되도록 구성되는 파일을 파싱하는 단계를 포함하며, 상기 출력은 상기 타겟 애플리케이션으로 하여금 상기 복수의 이주 규칙 내의 상기 이주 규칙 중 하나에 의해 식별된 대응하는 소프트웨어 요소 대신에 상기 PaaS 클라우드에 의해 제공된 소프트웨어 요소를 사용하게 하기 위해 상기 타겟 애플리케이션에 대한 변경을 표시함 - 를 포함하는
    애플리케이션을 PaaS 클라우드에 이주시키는 방법.
  15. 제14항에 있어서,
    추가적인 이주 규칙이 논-클라우드(non-cloud) 자원의 사용으로부터 상기 PaaS 클라우드에 의해 제공된 자원의 사용으로 변환될 수 있는 상기 타겟 애플리케이션의 코드를 식별하는
    애플리케이션을 PaaS 클라우드에 이주시키는 방법.
  16. 제15항에 있어서,
    상기 논-클라우드 자원은 부하 균형화 자원, 데이터베이스 서비스 자원, 데이터 저장 서비스 또는 스케일링 자원을 포함하는
    애플리케이션을 PaaS 클라우드에 이주시키는 방법.
  17. 제16항에 있어서,
    상기 타겟 애플리케이션은 웹 프론트엔드를 적어도 부분적으로 포함하고, 상기 변경은 상기 웹 프론트엔드에 의해 클라이언트 상태가 어떻게 유지되는지와 관련되는
    애플리케이션을 PaaS 클라우드에 이주시키는 방법.
  18. 제14항에 있어서,
    상기 복수의 규칙은 상기 PaaS 클라우드 내에 지속되는 데이터와 관련된 규칙을 포함하는
    애플리케이션을 PaaS 클라우드에 이주시키는 방법.
  19. 제14항에 있어서,
    상기 복수의 규칙 중 하나의 규칙은 상기 타겟 애플리케이션에 적용되는 경우에, 권고 또는 변경을 제공하되, 상기 권고 또는 변경은 구현될 경우, 상기 타겟 애플리케이션과 연관된, 상기 소프트웨어 요소 중 대응하는 하나의 라이센싱 비용을 제거할 수 있는
    애플리케이션을 PaaS 클라우드에 이주시키는 방법.
  20. 제14항에 있어서,
    상기 규칙 라이브러리는 제각기의 PaaS 클라우드에 대응하는 복수의 규칙을 포함하고,
    상기 방법은, 상기 복수의 규칙 중에서 복수의 규칙을 선택하는 단계를 더 포함하는
    애플리케이션을 PaaS 클라우드에 이주시키는 방법.
KR1020187020379A 2011-06-29 2012-05-30 가상 머신 이주 도구 KR101946773B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/171,446 2011-06-29
US13/171,446 US9176773B2 (en) 2011-06-29 2011-06-29 Virtual machine migration tool
PCT/US2012/039963 WO2013002937A2 (en) 2011-06-29 2012-05-30 Virtual machine migration tool

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020137034791A Division KR101881625B1 (ko) 2011-06-29 2012-05-30 가상 머신 이주 도구

Publications (2)

Publication Number Publication Date
KR20180085058A KR20180085058A (ko) 2018-07-25
KR101946773B1 true KR101946773B1 (ko) 2019-05-21

Family

ID=47391778

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020137034791A KR101881625B1 (ko) 2011-06-29 2012-05-30 가상 머신 이주 도구
KR1020187020379A KR101946773B1 (ko) 2011-06-29 2012-05-30 가상 머신 이주 도구

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020137034791A KR101881625B1 (ko) 2011-06-29 2012-05-30 가상 머신 이주 도구

Country Status (9)

Country Link
US (3) US9176773B2 (ko)
EP (1) EP2726976B1 (ko)
JP (1) JP6030646B2 (ko)
KR (2) KR101881625B1 (ko)
CN (1) CN103620551B (ko)
AU (4) AU2012276003B2 (ko)
CA (1) CA2840437C (ko)
TW (1) TWI579769B (ko)
WO (1) WO2013002937A2 (ko)

Families Citing this family (109)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130085810A1 (en) * 2011-09-29 2013-04-04 Volker Driesen Federated business configuration and scoping
US8761101B1 (en) * 2011-10-13 2014-06-24 Excelfore Corporation Network based machine-to-machine system for monitoring
US9152725B2 (en) * 2011-11-04 2015-10-06 Salesforce.Com, Inc. Computer implemented methods and apparatus for configuring and performing a custom rule to process a preference indication
US8627152B1 (en) * 2011-11-14 2014-01-07 Amazon Technologies, Inc. Simultaneous error detection during VM import
US9772830B2 (en) * 2012-01-19 2017-09-26 Syntel, Inc. System and method for modeling cloud rules for migration to the cloud
US9021096B2 (en) * 2012-01-23 2015-04-28 International Business Machines Corporation Performing maintenance operations on cloud computing node without requiring to stop all virtual machines in the node
US8930542B2 (en) * 2012-01-23 2015-01-06 International Business Machines Corporation Dynamically building a set of compute nodes to host the user's workload
US9213580B2 (en) * 2012-01-27 2015-12-15 MicroTechnologies LLC Transportable private cloud computing platform and associated method of use
US9294552B2 (en) 2012-01-27 2016-03-22 MicroTechnologies LLC Cloud computing appliance that accesses a private cloud and a public cloud and an associated method of use
US9465654B2 (en) * 2012-02-07 2016-10-11 Veritas Technologies Llc Intelligent failover or shutdown of an application using input/output shipping in response to loss of connectivity to data storage in a cluster
US20130339424A1 (en) * 2012-06-15 2013-12-19 Infosys Limited Deriving a service level agreement for an application hosted on a cloud platform
US10031782B2 (en) * 2012-06-26 2018-07-24 Juniper Networks, Inc. Distributed processing of network device tasks
US10379910B2 (en) 2012-10-26 2019-08-13 Syntel, Inc. System and method for evaluation of migration of applications to the cloud
US9195294B2 (en) 2012-11-13 2015-11-24 International Business Machines Corporation Cooperatively managing enforcement of energy related policies between virtual machine and application runtime
US9189619B2 (en) * 2012-11-13 2015-11-17 International Business Machines Corporation Runtime based application security and regulatory compliance in cloud environment
US10489214B2 (en) 2012-11-16 2019-11-26 Dell Products L.P. System and method for application deployment in cloud
KR102083289B1 (ko) * 2013-01-29 2020-03-02 삼성전자주식회사 마이크로서버 환경의 소프트웨어 이주 방법 및 이를 지원하는 장치
US20140214886A1 (en) 2013-01-29 2014-07-31 ParElastic Corporation Adaptive multi-client saas database
US11907496B2 (en) * 2013-02-08 2024-02-20 cloudRIA, Inc. Browser-based application management
KR101427562B1 (ko) * 2013-03-08 2014-08-07 주식회사 인프라웨어테크놀러지 안드로이드 어플리케이션의 타이젠 설치가능 패키지 자동변환 방법 및 이를 위한 컴퓨터로 판독가능한 기록매체
KR101447191B1 (ko) 2013-04-03 2014-10-06 에스케이텔레콤 주식회사 단말장치 및 단말장치의 동작 방법
US10469558B2 (en) 2013-04-18 2019-11-05 Microsoft Technology Licensing, Llc Website server request rerouting
JP5911448B2 (ja) * 2013-05-10 2016-04-27 株式会社日立製作所 移行支援装置、移行支援方法およびプログラム
US10776244B2 (en) * 2013-07-09 2020-09-15 Oracle International Corporation Consolidation planning services for systems migration
US11157664B2 (en) 2013-07-09 2021-10-26 Oracle International Corporation Database modeling and analysis
US9996562B2 (en) 2013-07-09 2018-06-12 Oracle International Corporation Automated database migration architecture
US9747311B2 (en) 2013-07-09 2017-08-29 Oracle International Corporation Solution to generate a scriptset for an automated database migration
US9294482B2 (en) * 2013-07-25 2016-03-22 Oracle International Corporation External platform extensions in a multi-tenant environment
US20160041996A1 (en) 2014-08-11 2016-02-11 Netapp, Inc. System and method for developing and implementing a migration plan for migrating a file system
US10860529B2 (en) * 2014-08-11 2020-12-08 Netapp Inc. System and method for planning and configuring a file system migration
US9483646B2 (en) * 2013-09-19 2016-11-01 Remotium, Inc. Data exfiltration prevention from mobile platforms
US9628550B1 (en) * 2013-10-24 2017-04-18 Ca, Inc. Lightweight software management shell
US10795539B2 (en) 2013-12-10 2020-10-06 International Business Machines Corporation Visualizing migration of a resource of a distributed computing environment
EP3090341A1 (en) * 2013-12-30 2016-11-09 Brennan, Edward Colin System and method for allocating resources and managing a cloud based computer system
US10127035B2 (en) * 2014-02-25 2018-11-13 Flexion Mobile Limited System and method to modify run-time behavior of an application by modification of machine-readable instructions
US9703811B2 (en) * 2014-06-14 2017-07-11 Accenture Global Services Limited Assessing database migrations to cloud computing systems
US9350682B1 (en) 2014-07-30 2016-05-24 Amazon Technologies, Inc. Compute instance migrations across availability zones of a provider network
US9836332B2 (en) * 2014-07-31 2017-12-05 Corent Technology, Inc. Software defined SaaS platform
US9632887B2 (en) * 2014-09-19 2017-04-25 International Business Machines Corporation Automatic client side seamless failover
CN104281484B (zh) * 2014-09-23 2018-04-10 华为技术有限公司 一种虚拟机迁移方法和装置
US9684470B2 (en) 2014-09-30 2017-06-20 International Business Machines Corporation Rapid migration to managed clouds with multiple change windows
US10067800B2 (en) * 2014-11-06 2018-09-04 Vmware, Inc. Peripheral device sharing across virtual machines running on different host computing systems
US10411960B1 (en) * 2014-11-12 2019-09-10 Amazon Technologies, Inc. Detaching instances from auto-scaling group
US9647889B1 (en) 2014-11-12 2017-05-09 Amazon Technologies, Inc. Standby instances for auto-scaling groups
US9612765B2 (en) 2014-11-19 2017-04-04 International Business Machines Corporation Context aware dynamic composition of migration plans to cloud
CN104468759B (zh) * 2014-11-27 2018-06-01 中国联合网络通信集团有限公司 PaaS平台中实现应用迁移的方法和装置
US20160162209A1 (en) * 2014-12-05 2016-06-09 Hybrid Logic Ltd Data storage controller
CN104598525B (zh) * 2014-12-25 2018-11-20 华为技术有限公司 一种应用复制方法、设备及系统
US10484297B1 (en) 2015-03-16 2019-11-19 Amazon Technologies, Inc. Automated migration of compute instances to isolated virtual networks
US10635779B2 (en) * 2015-07-29 2020-04-28 Siemens Healthcare Gmbh Devices, methods and computer readable mediums for flexible delivery and deployment of medical applications
WO2017058222A1 (en) * 2015-09-30 2017-04-06 Hewlett Packard Enterprise Development Lp Data transfer requests
CN105338079B (zh) * 2015-10-27 2019-10-11 北京金山安全软件有限公司 一种下载主题包的方法及装置
WO2017095382A1 (en) * 2015-11-30 2017-06-08 Hewlett Packard Enterprise Development Lp Application migration system
JP6727804B2 (ja) * 2015-12-25 2020-07-22 株式会社ユーズテック ミドルウェア
CN105589746B (zh) * 2015-12-30 2019-05-10 中国银联股份有限公司 虚拟机迁移记录管理方法及系统
US10574523B2 (en) 2016-01-15 2020-02-25 RightScale Inc. Systems and methods for cloud-deployments with imperatives
US10133593B1 (en) 2016-03-31 2018-11-20 Amazon Technologies, Inc. Virtual machine migration
US10127066B1 (en) 2016-03-31 2018-11-13 Amazon Technologies, Inc. Server synchronization using continuous block migration in provider network environments
US10616311B2 (en) 2016-06-03 2020-04-07 At&T Intellectual Property I, L.P. Facilitating management of communications systems
US11036696B2 (en) 2016-06-07 2021-06-15 Oracle International Corporation Resource allocation for database provisioning
US10409589B2 (en) 2016-07-12 2019-09-10 Accenture Global Solutions Limited Application centric continuous integration and delivery with automated service assurance
US11223537B1 (en) * 2016-08-17 2022-01-11 Veritas Technologies Llc Executing custom scripts from the host during disaster recovery
US11194558B2 (en) * 2016-10-14 2021-12-07 Accenture Global Solutions Limited Application migration system
US10360242B2 (en) 2016-12-01 2019-07-23 Bank Of America Corporation Automated server analysis and patching for enabling relational database migration to a cloud network
CN106776143A (zh) * 2016-12-27 2017-05-31 北京奇虎科技有限公司 一种针对终端应用程序的镜像备份的方法及终端设备
JP2018173920A (ja) * 2017-03-31 2018-11-08 富士通株式会社 制御プログラム、制御方法および制御装置
CN107122208A (zh) * 2017-04-18 2017-09-01 深圳市金立通信设备有限公司 一种数据转移的方法及终端
KR102166336B1 (ko) * 2017-05-15 2020-10-15 삼성전자주식회사 소프트웨어 플랫폼을 제공하는 서버 및 그 동작방법
US10474438B2 (en) * 2017-07-21 2019-11-12 Accenture Global Solutions Limited Intelligent cloud engineering platform
CN109697120B (zh) * 2017-10-20 2023-06-27 伊姆西Ip控股有限责任公司 用于应用迁移的方法、电子设备
CN109729121B (zh) * 2017-10-31 2022-05-06 阿里巴巴集团控股有限公司 一种云存储系统及用于云存储系统中实现自定义数据处理的方法
CN109828786B (zh) * 2017-11-23 2022-05-13 中标软件有限公司 一种基于代码级支持sw_64架构的自动化工具
CN110134489B (zh) * 2018-02-08 2023-10-13 中兴通讯股份有限公司 应用迁移方法及装置、系统、存储介质、应用上云工具
US10911367B2 (en) 2018-06-27 2021-02-02 Oracle International Corporation Computerized methods and systems for managing cloud computer services
US11115344B2 (en) 2018-06-27 2021-09-07 Oracle International Corporation Computerized methods and systems for migrating cloud computer services
US10785129B2 (en) 2018-06-27 2020-09-22 Oracle International Corporation Computerized methods and systems for maintaining and modifying cloud computer services
US11190599B2 (en) 2018-06-27 2021-11-30 Oracle International Corporation Method and system for cloud service pre-provisioning
US11481616B2 (en) * 2018-06-29 2022-10-25 Microsoft Technology Licensing, Llc Framework for providing recommendations for migration of a database to a cloud computing system
US10846070B2 (en) 2018-07-05 2020-11-24 At&T Intellectual Property I, L.P. Facilitating cloud native edge computing via behavioral intelligence
US11089098B2 (en) * 2018-07-24 2021-08-10 Vmware, Inc. Migration as a service-based server and agent applications migration
US11374971B2 (en) * 2018-08-24 2022-06-28 Micro Focus Llc Deception server deployment
TWI699657B (zh) * 2018-08-31 2020-07-21 碁曄科技股份有限公司 雲端遷移系統
CN109710269A (zh) * 2018-09-07 2019-05-03 天翼电子商务有限公司 一种单应用离散式集群部署装置和方法
US10944640B2 (en) * 2018-11-09 2021-03-09 Microsoft Technology Licensing, Llc Generating and implementing a platform-neutral cloud-native application model
US11099910B2 (en) 2018-11-13 2021-08-24 Microsoft Technology Licensing, Llc Deploying cloud-native services across control planes
US20200244772A1 (en) * 2019-01-30 2020-07-30 Huawei Technologies Co., Ltd. Method and system for cloud application and service integration using pattern-based discovery
US11366723B2 (en) 2019-04-30 2022-06-21 Commvault Systems, Inc. Data storage management system for holistic protection and migration of serverless applications across multi-cloud computing environments
US11907743B2 (en) 2019-05-21 2024-02-20 Oracle International Corporation System and method for relocating customer virtual machine instances in a multi-tenant cloud service
US11106482B2 (en) 2019-05-31 2021-08-31 Microsoft Technology Licensing, Llc Connectivity migration in a virtual execution system
US11258881B2 (en) * 2019-07-12 2022-02-22 Nutanix, Inc. Mobility of user applications across cloud infrastructures
JP7231518B2 (ja) * 2019-08-30 2023-03-01 株式会社日立製作所 パッケージ化支援システムおよびパッケージ化支援方法
US11256671B2 (en) 2019-09-13 2022-02-22 Oracle International Corporation Integrated transition control center
US11531683B2 (en) * 2019-11-06 2022-12-20 Servicenow, Inc. Unified application programming interface for transformation of structured data
US11429631B2 (en) * 2019-11-06 2022-08-30 Servicenow, Inc. Memory-efficient programmatic transformation of structured data
EP4055797A4 (en) * 2019-11-07 2023-05-17 Microsoft Technology Licensing, LLC MIGRATION OF WEB APPLICATION COMPONENTS TO A CLOUD COMPUTING SYSTEM
US11237941B2 (en) * 2019-12-12 2022-02-01 Cognizant Technology Solutions India Pvt. Ltd. System and method for application transformation to cloud based on semi-automated workflow
US11899570B2 (en) 2019-12-12 2024-02-13 Cognizant Technology Solutions India Pvt. Ltd. System and method for optimizing assessment and implementation of microservices code for cloud platforms
US11755394B2 (en) * 2020-01-31 2023-09-12 Salesforce, Inc. Systems, methods, and apparatuses for tenant migration between instances in a cloud based computing environment
US11868622B2 (en) 2020-02-25 2024-01-09 Pure Storage, Inc. Application recovery across storage systems
US11637896B1 (en) 2020-02-25 2023-04-25 Pure Storage, Inc. Migrating applications to a cloud-computing environment
CN111459416B (zh) * 2020-04-24 2021-02-23 杭州网银互联科技股份有限公司 一种基于分布式存储的热迁移系统及其迁移方法
US20220035660A1 (en) * 2020-07-29 2022-02-03 Mythics, Inc. Migration evaluation system and method
CN113515306B (zh) * 2021-04-26 2023-04-25 建信金融科技有限责任公司 一种系统移植的方法及装置
KR102328173B1 (ko) * 2021-07-05 2021-11-17 (주)다윈아이씨티 애플리케이션 마이그레이션 처리 방법, 장치 및 시스템
AU2021458238A1 (en) * 2021-07-27 2024-01-25 Hexaware Technologies Limited System and method for batch and scheduler migration in an application environment migration
US11704118B2 (en) 2021-08-19 2023-07-18 International Business Machines Corporation Application modernization
US20230118880A1 (en) * 2021-10-15 2023-04-20 Red Hat, Inc. Copying computing resources between execution environments
US11838221B2 (en) * 2022-01-13 2023-12-05 Verizon Patent And Licensing Inc. Systems and methods for multi-cloud virtualized instance deployment and execution
CN114924846B (zh) * 2022-07-22 2022-11-15 浙江云针信息科技有限公司 基于云操作系统的虚拟机迁移方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030188036A1 (en) 2002-03-22 2003-10-02 Sun Microsystems, Inc. Methods and systems for program migration
JP2007140845A (ja) 2005-11-17 2007-06-07 Hitachi Ltd プログラム管理方法及びプログラムの移行支援装置
US20070256058A1 (en) 2003-12-15 2007-11-01 Evolveware, Inc. A Corporation Apparatus for Migration and Conversion of Software Code from Any Source Platform to Any Target Platform
US20110035755A1 (en) 2009-08-04 2011-02-10 International Business Machines Corporation Method and system for application migration using per-application persistent configuration dependency
US20110055377A1 (en) 2009-08-31 2011-03-03 Dehaan Michael Paul Methods and systems for automated migration of cloud processes to external clouds
US8321857B1 (en) 2009-09-14 2012-11-27 Symantec Corporation Automated generation of application data for application distribution

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7107589B1 (en) * 2001-09-28 2006-09-12 Siebel Systems, Inc. Infrastructure for the automation of the assembly of schema maintenance scripts
US7503042B2 (en) 2002-03-08 2009-03-10 Microsoft Corporation Non-script based intelligent migration tool capable of migrating software selected by a user, including software for which said migration tool has had no previous knowledge or encounters
US7483757B2 (en) 2005-07-22 2009-01-27 Honeywell International, Inc. Control system migration
TW200725410A (en) * 2005-12-27 2007-07-01 Nat Univ Chung Cheng Universal BSP tool applied to embedded system to assist porting and application method thereof
US8429645B2 (en) 2007-08-14 2013-04-23 International Business Machines Corporation Method for optimizing migration of software applications to address needs
EP2223278A4 (en) * 2007-12-20 2011-11-16 Hewlett Packard Development Co MODELING A COMPUTER BASED COMPANY PROCESS AND SIMULATING OPERATION
JP2009223851A (ja) * 2008-03-19 2009-10-01 Inforce Co Ltd データベースシステム移行方法
US7506037B1 (en) * 2008-05-13 2009-03-17 International Business Machines Corporation Method determining whether to seek operator assistance for incompatible virtual environment migration
US8931038B2 (en) * 2009-06-19 2015-01-06 Servicemesh, Inc. System and method for a cloud computing abstraction layer
US8238256B2 (en) * 2008-09-08 2012-08-07 Nugent Raymond M System and method for cloud computing
US8321862B2 (en) 2009-03-20 2012-11-27 Oracle America, Inc. System for migrating a virtual machine and resource usage data to a chosen target host based on a migration policy
US8751627B2 (en) 2009-05-05 2014-06-10 Accenture Global Services Limited Method and system for application migration in a cloud
US20100332629A1 (en) * 2009-06-04 2010-12-30 Lauren Ann Cotugno Secure custom application cloud computing architecture
TW201044185A (en) * 2009-06-09 2010-12-16 Zillians Inc Virtual world simulation systems and methods utilizing parallel coprocessors, and computer program products thereof
US20100318609A1 (en) 2009-06-15 2010-12-16 Microsoft Corporation Bridging enterprise networks into cloud
KR101626117B1 (ko) * 2009-06-22 2016-05-31 삼성전자주식회사 클라우드 스토리지를 제공하는 클라이언트, 중개 서버 및 방법
US9354944B2 (en) * 2009-07-27 2016-05-31 Advanced Micro Devices, Inc. Mapping processing logic having data-parallel threads across processors
US8850423B2 (en) * 2009-10-29 2014-09-30 International Business Machines Corporation Assisting server migration
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
US20110270968A1 (en) * 2010-04-30 2011-11-03 Salsburg Michael A Decision support system for moving computing workloads to public clouds
US8918439B2 (en) * 2010-06-17 2014-12-23 International Business Machines Corporation Data lifecycle management within a cloud computing environment
EP2591423A4 (en) * 2010-07-09 2017-05-24 State Street Corporation Systems and methods for private cloud computing
US8645529B2 (en) * 2010-10-06 2014-02-04 Infosys Limited Automated service level management of applications in cloud computing environment
CN102033909B (zh) * 2010-11-19 2012-04-25 南京大学 支持弹性云计算平台开发的资源外包方法
CN102098343A (zh) * 2011-02-12 2011-06-15 浪潮(北京)电子信息产业有限公司 云计算操作系统中资源信息的保存、获取方法和系统
JP5678778B2 (ja) * 2011-03-31 2015-03-04 富士通株式会社 システムおよびマイグレーション方法
US9495649B2 (en) * 2011-05-24 2016-11-15 International Business Machines Corporation Workload-to-cloud migration analysis based on cloud aspects
US9037723B2 (en) * 2011-05-31 2015-05-19 Red Hat, Inc. Triggering workload movement based on policy stack having multiple selectable inputs
WO2013133842A1 (en) * 2012-03-08 2013-09-12 Empire Technology Development Llc Secure migration of virtual machines
US10425411B2 (en) * 2012-04-05 2019-09-24 Arizona Board Of Regents On Behalf Of Arizona State University Systems and apparatuses for a secure mobile cloud framework for mobile computing and communication
US9692632B2 (en) * 2012-11-29 2017-06-27 International Business Machines Corporation Migration to managed clouds
US9282166B2 (en) * 2012-11-29 2016-03-08 International Business Machines Corporation Management infrastructure analysis for cloud migration
US9444896B2 (en) * 2012-12-05 2016-09-13 Microsoft Technology Licensing, Llc Application migration between clouds
US9430268B2 (en) * 2014-05-02 2016-08-30 Cavium, Inc. Systems and methods for supporting migration of virtual machines accessing remote storage devices over network via NVMe controllers

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030188036A1 (en) 2002-03-22 2003-10-02 Sun Microsystems, Inc. Methods and systems for program migration
US20070256058A1 (en) 2003-12-15 2007-11-01 Evolveware, Inc. A Corporation Apparatus for Migration and Conversion of Software Code from Any Source Platform to Any Target Platform
JP2007140845A (ja) 2005-11-17 2007-06-07 Hitachi Ltd プログラム管理方法及びプログラムの移行支援装置
US20110035755A1 (en) 2009-08-04 2011-02-10 International Business Machines Corporation Method and system for application migration using per-application persistent configuration dependency
US20110055377A1 (en) 2009-08-31 2011-03-03 Dehaan Michael Paul Methods and systems for automated migration of cloud processes to external clouds
US8321857B1 (en) 2009-09-14 2012-11-27 Symantec Corporation Automated generation of application data for application distribution

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Frey 외 1명. 'Model-Based Migration of Legacy Software Systems ~'. Proceedings of the First International Conference on Cloud Computing, GRIDs, and Virtualization, 2010.11., pp.155-158.

Also Published As

Publication number Publication date
CN103620551B (zh) 2018-04-17
US20170139743A1 (en) 2017-05-18
KR20140041604A (ko) 2014-04-04
AU2017200642B2 (en) 2018-04-26
CN103620551A (zh) 2014-03-05
AU2012276003B2 (en) 2017-02-23
AU2017200642A1 (en) 2017-02-23
US9569259B2 (en) 2017-02-14
US20130007216A1 (en) 2013-01-03
TW201301138A (zh) 2013-01-01
AU2017200645A1 (en) 2017-02-23
US9858114B2 (en) 2018-01-02
AU2017200648A1 (en) 2017-02-23
WO2013002937A3 (en) 2013-04-04
KR101881625B1 (ko) 2018-08-24
US9176773B2 (en) 2015-11-03
JP2014523026A (ja) 2014-09-08
JP6030646B2 (ja) 2016-11-24
US20160034302A1 (en) 2016-02-04
CA2840437C (en) 2020-05-05
CA2840437A1 (en) 2013-01-03
EP2726976A4 (en) 2018-01-03
AU2017200645B2 (en) 2018-07-26
KR20180085058A (ko) 2018-07-25
EP2726976B1 (en) 2022-05-25
WO2013002937A2 (en) 2013-01-03
TWI579769B (zh) 2017-04-21
EP2726976A2 (en) 2014-05-07
AU2017200648B2 (en) 2018-07-26

Similar Documents

Publication Publication Date Title
KR101946773B1 (ko) 가상 머신 이주 도구
US11178207B2 (en) Software version control without affecting a deployed container
AU2012276003A1 (en) Virtual machine migration tool
US20210349706A1 (en) Release lifecycle management system for multi-node application
US9996374B2 (en) Deployment and installation of updates in a virtual environment
US9009663B2 (en) Cartridge-based package management
US10678580B2 (en) Methods and apparatus to publish internal commands as an application programming interface in a cloud infrastructure
US10929115B2 (en) Distribution and execution of instructions in a distributed computing environment
Mavridis et al. Orchestrated sandboxed containers, unikernels, and virtual machines for isolation‐enhanced multitenant workloads and serverless computing in cloud
US10162619B1 (en) Fleet-wide management of software packages
US20230385075A1 (en) Networked Universal Code Package Provider
US11144298B2 (en) Feature installer for software programs
US11050846B2 (en) Program code allocation based on processor features
US20240095003A1 (en) Deployment of a multi-technology-stack application
Sundqvist Guidelines to Convert Legacy Applications into Docker Container Services

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant