云計算是對在遠程位置中可用并且可通過網絡(諸如互聯網)訪問的計算資源(硬件和軟件)的使用。在具有許多計算裝置的計算環境(諸如具有許多服務器計算機的虛擬服務器或云計算環境)中,使用計算資源可提供數個優點,包括成本優點和/或快速適應于變化的計算資源需要的能力。
私有企業網絡關于使用擴展云計算資源的重要考慮因素是將應用程序從私有的基于企業的網絡移動(或遷移)到云計算環境的容易性。例如,現有的基于企業的網絡應用程序的復雜性可導致應用程序遷移任務是耗時的、易出錯的并且是危險的努力。
附圖簡述
圖1是示出根據本公開的示例性實施方案的從基于企業的網絡到計算服務環境的應用程序遷移的網絡圖。
圖2A和圖2B是示出涉及遠程客戶端創建和配置支持應用程序遷移的私有計算機網絡的交互的示例性實施方案的網絡圖。
圖3是示出用于提供支持將應用程序遷移到客戶端的計算機網絡的互連計算系統的示例性實施方案的網絡圖。
圖4是示出根據本公開的示例性實施方案的在多租戶環境中運行的使用應用程序遷移服務的多個虛擬機實例的示例性系統圖。
圖5示出根據一個實施方案的包括與控制平面相關聯的多個管理部件的示例性系統的其他細節,所述多個管理部件可用于遷移一個或多個應用程序。
圖6示出可根據本公開的一個實施方案配置的多個主機計算機、路由器和交換器的實例,所述多個主機計算機、路由器和交換器是用于運行虛擬機實例的硬件資產,其中主機計算機具有應用程序遷移相關的功能。
圖7是根據本公開實施方案的將應用程序從基于企業的網絡遷移到計算服務提供方的多租戶網絡的示例性方法的流程圖。
圖8是根據本公開實施方案的將應用程序從基于企業的網絡遷移到計算服務提供方的多租戶網絡的另一示例性方法的流程圖。
圖9是根據本公開實施方案的將應用程序從基于企業的網絡遷移到計算服務提供方的多租戶網絡的又一示例性方法的流程圖。
圖10描繪其中可實現所描述的創新的合適計算環境的一般化實例。
詳細描述
虛擬機圖像包含啟動虛擬環境中的虛擬機所需的操作系統(例如,Linux)和其他數據。虛擬機圖像類似于物理計算機的磁盤卷,并且可包括文件系統、作為機器開啟所需的操作系統和其他部件。為了啟動虛擬機,需要選擇硬件。硬件選擇可通過實例類型來完成,所述實例類型可允許多種不同大小的存儲器、CPU容量、I/O性能等。虛擬機圖像和實例類型的組合可用于創建可在云計算資源(諸如多租戶網絡環境中的主機服務器計算機)上啟動的“實例”或虛擬機。
如本文所用,術語“虛擬機”和“虛擬機實例”可互換。
如本文所用,術語“計算服務提供方”可以是指能夠將計算和存儲容量作為服務傳遞到一個或多個最終接受方的云提供方。可由組織或代表組織為組織建立計算服務提供方(也就是說,計算服務提供方可提供“私有云環境”)。在其他實例中,計算服務提供方可支持其中多個客戶獨立操作的多租戶環境(即,公共云環境)。就此而言,多個客戶(例如,多個企業)可租用多租戶環境內的資源,諸如服務器計算機。
如本文所用,術語“基于企業的網絡”(或“企業私有網絡”或“企業網絡”)可以是指企業(例如,公司或另一個商業機構)擁有的計算機系統的網絡。通常,限于公司的員工在基于企業的網絡內進行信息訪問。在這種意義上,企業網絡是單租戶系統。然而,外部用戶可通過企業門戶(諸如web接口)獲得數據。通常,企業網絡中的服務器計算機不可由第三方租用。
如本文所用,術語“移動”或“遷移”虛擬機是指將虛擬機從一個服務器計算機移動到另一個服務器計算機。例如,使虛擬機終止或以其他方式暫停在當前服務器計算機處運行終止,并且在另一個服務器計算機處啟動。就此而言,一種或多種軟件包裝和分布格式(例如,開放虛擬化格式或OVF)可用于包裝虛擬機并將虛擬機遷移到新服務器計算機。
如本文所用,術語“資源監測指標”可包括由應用程序(或用于運行應用程序的虛擬機)對計算資源的實際使用。例如,計算資源可與托管應用程序(或虛擬機)的一個或多個服務器計算機相關聯,并且可包括對CPU資源、存儲器資源、可用存儲資源、磁盤I/O利用等的使用。可在確定的(例如,固定的)時間段內來執行對此類指標的監測,并且可生成平均值(具有或不具有標準偏差調整)。可替代地,還可生成此類指標的快照,所述快照可指示某一時間點時的資源使用。
如本文所用,術語“性能指標”可包括與主機服務器(或由服務器托管的虛擬機)的架構相關聯的一個或多個指標或特性。例如,主機服務器架構可由以下性能指標中的一個或多個來表征:CPU速度、存儲器容量、存儲容量、網卡特性(例如,速度)、視頻卡特性(例如,分辨率和視頻處理速度)、磁盤I/O速度等。
圖1是示出根據本公開的示例性實施方案的從基于企業的網絡到計算服務環境的應用程序遷移的網絡圖。參考圖1,計算服務環境100可以是能夠將計算和存儲容量作為服務傳送到最終接受方的社區的計算服務提供方(即,云提供方)。本文參考圖4-6公開關于計算機服務環境/提供方的其他細節。計算服務環境100包括多個主機服務器計算機105a、…、105n、應用程序遷移服務140a和端點145。
主機服務器計算機(例如,105a)可包括CPU 110、存儲器115和存儲裝置120。主機服務器105a可被配置來執行管理程序125或被配置成能夠執行多個虛擬機實例(VMI)130a、…、130n的另一種類型的程序。
web服務通常用于云計算。web服務是在通過web或云在網絡地址下提供的軟件功能。客戶端向服務器發起web服務請求并且服務器處理所述請求并返回適當的響應。客戶端web服務請求通常使用例如API請求來發起。為了簡單目的,下文將通常將web服務請求描述為API請求,但是應理解,可做出其他web服務請求。API請求是到限定的請求響應消息系統的程序性接口,其常常以JSON或XML表達,所述程序性接口通過web暴露—最常見的是借助于基于HTTP的web服務器暴露。因此,在某些具體實施中,API可被定義為一組超文本傳輸協議(HTTP)請求消息連同對響應消息的結構的定義,它們可以呈可擴展標記語言(XML)或JavaScript對象表示(JSON)格式。API可指定執行動作的一組功能或例程,所述動作包括完成特定任務或允許與軟件部件交互。當web服務從客戶端裝置接收API請求時,web服務可生成對請求的響應并且將所述響應發送到所述請求中所標識的端點。
計算服務環境100包括端點145,所述端點145是設計來接收并處理API請求(諸如來自應用程序遷移服務140a的API請求190)的DNS地址。具體感興趣的API請求是與私有子網信息150、相關性信息155和資源監測指標160相關聯的API請求190,如下文所描述。
應用程序遷移服務140a可包括合適的電路、邏輯和/或代碼并且可以可操作來遷移在遠程服務器計算機(例如,客戶端私有網絡170內的主機計算機175a)上運行的一個或多個應用程序(例如,應用程序185)。應用程序的遷移可基于例如從客戶端私有網絡170處的應用程序遷移服務140b接收的私有子網信息150、相關性信息155和資源監測指標160中的一個或多個。
客戶端私有網絡170可以是遠程客戶端網絡,諸如基于企業的網絡。客戶端網絡170可包括多個主機服務器計算機175a、…、175n。示例性主機服務器計算機(例如,175a)可包括CPU 171、存儲器172和存儲裝置173。主機服務器(例如,175a)可被配置來運行一個或多個VMI,諸如VMI 180a-180c。一個或多個應用程序(諸如應用程序185)可在VMI(例如,VMI 180a)上運行。應用程序185可依賴于一個或多個另外的VMI(例如,VMI 180b-180c)。例如,應用程序185可安裝在VMI 180a上,但是應用程序185所使用的另外的功能(例如,一個或多個數據庫或另外的軟件模塊)可安裝在其他VMI(例如,VMI180b-180c)上。就此而言,在實例中,當選擇應用程序185來遷移(例如,從客戶端私有網絡170遷移到計算服務提供方100)時,運行應用程序185的VMI(即,VMI 180a)可與應用程序185所依賴于(或使用)的任何剩余VMI(即,VMI 180b-180c)一起遷移。
客戶端私有網絡還可包括應用程序遷移服務部件140b,其可以可操作來向計算服務環境100提供私有子網信息150、相關性信息155或資源監測指標160中的一個或多個。例如,應用程序遷移服務140b可通過端點145與應用程序遷移服務140a直接通信(例如,140b可定期地發起通信以報告信息,諸如150、155或160;可替代地,140b可響應于API請求190提供此類信息)。應用程序遷移服務140a和140b可以是例如分別在計算服務環境100和客戶端私有網絡170內的服務器計算機的操作系統上運行的軟件應用程序。
在操作中,可(例如,由用戶)正主機計算機175a處激活用戶接口122。用戶接口122可包括文本框122a(或另一接口),其用于接收標識將要從客戶端私有網絡170遷移到計算服務環境100的應用程序的輸入。例如,用戶可在文本框122a中指示應用程序185的名稱,然后可通過點擊“遷移”按鈕122b(或通過激活另一種類型的用戶接口,諸如屏幕輕敲等)發起遷移過程。
在接收應用程序185的名稱之后,計算服務環境100中的應用程序遷移服務140a可使用API請求190中的一個獲取私有子網信息150,私有子網信息150可指示主機175a以及VMI 180a-180c中的一個或多個是否在客戶端私有網絡170的私有子網絡(或子網)(例如,虛擬私有云、虛擬局域網等)中。應用程序遷移服務140a然后可在計算服務環境100內創建私有網絡(例如,虛擬私有云)并且分配用于在遷移之后托管VMI的子網(例如,VPC/子網創建和分配141a)。
應用程序遷移服務140a可從應用程序遷移服務140b獲取相關性信息155。相關性信息155可包括標識應用程序185在其上運行的虛擬機(即,VMI 180a)以及應用程序185可使用(或依賴于)的其他任何VMI(即,VMI 180b-180c)的信息。應用程序遷移服務140a然后可從應用程序遷移服務140b獲取資源監測指標160。資源監測指標160可指示由應用程序185中的一個或多個、運行應用程序185的VMI(即,VMI 180a)以及應用程序185所依賴于的VMI(即,VMI 180b-180c)中的任一個對計算資源的使用。例如,資源監測指標160可包括與主機計算機175a相關聯(由于主機計算機175a用于運行VMI 180a-180c)的CPU資源、存儲器資源、可用存儲資源、磁盤I/O利用等。在實例中,當相關的VMI 180b-180c中的一個或多個根據服務器計算機175a、…、175n中的另一個運行時,那么資源監測指標160還將指示也與所述主機計算機相關聯的資源的計算資源使用。例如,資源監測指標160可由CPU 171或由主機計算機175a(或剩余主機計算機175a、…、175n中的任一個)內的專用模塊(未示出)收集。
在獲取相關性信息155和資源監測指標160之后,應用程序遷移服務140a可使資源監測指標160中的一個或多個與主機服務器105a(或剩余主機服務器105a、…、105n中的任一個)的性能指標139匹配,以選擇計算服務環境100內的虛擬機實例類型(用于遷移VMI180a-180c)和主機服務器計算機類型來托管來自客戶端私有網絡170的所遷移VMI(與所遷移應用程序)。性能指標139可包括主機服務器計算機105a(或剩余主機服務器105a、…、105n中的任一個)的CPU速度、存儲器容量、存儲容量、網卡特性(例如,速度)、視頻卡特性(例如,分辨率和視頻處理速度)、磁盤I/O速度等中的一個或多個。
在示例性實施方案中,VMI 180a(運行應用程序185)和相關的VMI 180b-180c都可由客戶端私有網絡170中的主機服務器計算機175a托管。資源監測指標160可指示由VMI 180a-180c使用的主機175a的計算資源的量(例如,VMI 180a-180c可使用總共5GB的磁盤空間、1GB的RAM、1.7GHz的CPU時鐘速度等)。在虛擬私有云(VPC)和子網創建和分配(在141a處)之后,應用程序遷移服務140a可通過使資源監測指標160與主機服務器計算機105a、…、105n中的一個或多個的性能指標139匹配,來選擇虛擬機實例類型和主機服務器計算機類型(用于在遷移應用程序185之后啟動VMI 108a-108c)。VMI和主機計算機類型選擇在圖1中反映為141b。
例如,應用程序遷移服務140a可選擇與1GB的RAM和5GB的磁盤空間相關聯的虛擬機實例類型,以及與2GHz的CPU時鐘速度、1.5GB的RAM和7GB的磁盤空間相關聯的主機服務器計算機類型(例如,主機服務器計算機105a)。就此而言,通過使資源監測指標160與性能指標139匹配,可實現計算服務環境100內的計算資源的有效利用,并且可選擇VMI和主機服務器計算機類型以用于將應用程序185遷移到所選擇VMI類型的VMI上并且在所述VMI上啟動相關性信息155所標識的VMI(即,VMI 108a-180c),所選擇VMI類型的VMI由所選擇主機計算機類型的主機計算機托管。
在實例中,當相關的VMI 180b-180c(即,應用程序185所依賴于的VMI,其由相關性信息155標識符)由客戶端私有網絡170中的不同主機計算機(例如,175n)托管時,資源監測指標160可包括對與主機服務器計算機175a以及175n相關聯的計算資源的使用。應用程序遷移服務140a然后可通過使資源監測指標160與主機服務器計算機105a、…、105n中的一個或多個的性能指標139匹配,來針對兩個主機服務器計算機選擇VMI類型和主機服務器計算機類型(用于啟動第一主機服務器計算機上的VMI 180a,以及第二主機服務器計算機上的VMI 180b-180c)。
VMI 180a-180c然后可從客戶端私有網絡170遷移到計算服務環境100。更具體地說,至少一個文件打包格式(例如,OVF)可用于包裝VMI 180a-180c,將它們遷移到計算服務環境100,然后在所選擇VMI類型的并且由所選擇主機服務器計算機類型的主機服務器托管的VMI上啟動它們,如由主機/VMI類型選擇141b所指示。所遷移VMI 180a-180c可傳遞到由所選擇主機服務器計算機中的一個或多個托管的所選擇VMI(即,VMI傳遞141c)并在其上啟動。就此而言,應用程序遷移服務140a可以可操作來將遷移實例從資源格式(例如,與客戶端私有網絡170兼容的VMI格式)變換成目標格式(例如,與計算服務環境100兼容的VMI格式)。在變換期間,應用程序遷移服務140a還可安裝在計算服務環境100處運行呈目標格式的所遷移VMI所必需的一個或多個驅動器。
根據本公開的示例性實施方案,應用程序遷移服務140a還可獲取托管VMI 180a-180c的主機服務器(或多個服務器)的名稱,以及與托管服務器相關聯的IP地址(例如,主機服務器175a的IP1地址)和/或VMI 180a-180c的IP地址。應用程序遷移服務140a然后可通過將托管所遷移VMI的主機服務器(105a)的名稱和IP地址改變成先前的托管服務器(175a)的名稱和IP地址來執行IP和主機名稱改變141d。此外,IP和主機名稱改變141d可將所遷移VMI的IP地址改變成與VMI 180a-180c的IP地址相同。
根據本公開的另一個示例性實施方案,在應用程序遷移服務140a執行資源監測指標160與性能指標139的匹配之后,所確定的用于托管所遷移應用程序和VMI的VMI類型和服務器計算機類型可被傳達到私有網絡170以用于確認或替代性選擇。例如,客戶端私有網絡170可使用用戶接口(諸如122)來顯示由計算服務環境100執行的對VMI類型和主機服務器計算機類型的自動選擇。客戶端私有網絡170處的用戶然后可確認這種自動選擇,或者可指定對用于啟動所遷移應用程序185和VMI 180a-180c的不同的VMI類型和服務器計算機類型的替代性選擇。
圖2A和圖2B是示出涉及遠程客戶端創建和配置支持應用程序遷移的私有計算機網絡的交互的示例性實施方案的網絡圖。圖2A是示出計算服務提供方205的示例性實施方案的網絡圖,所述計算服務提供方205允許遠程客戶端創建并配置計算機網絡以供客戶端使用。在這個實例中,創建并配置的計算機網絡是對客戶端的現有私有計算機網絡的私有網絡擴展,并且計算服務提供方205通過一個或多個公共網絡2200(例如,通過互聯網)來向客戶端(未示出)提供這種功能。因此,遠程客戶端可使用CSP計算服務提供方(“CSP”)205來動態地修改它們私有計算機網絡的大小和/或能力,諸如通過在公共網絡200上使用云計算技術。
具體地說,在圖2A的實例中,數個客戶端(未示出)通過公共網絡200與CSP管理器模塊210交互以創建并配置對遠程現有客戶端私有網絡230的各種私有計算機網絡擴展220,其中計算機網絡擴展220中的至少一些被配置來使得能夠從一個或多個對應客戶端私有網絡230通過公共網絡200(例如,借助于通過互連200a和200b建立的VPN連接)進行安全私有訪問。在這個示例性實施方案中,管理器模塊210有助于向遠程客戶端提供CSP 205的功能、諸如結合CSP 205的各種其他模塊(未示出)以及由CSP 205使用的各種計算節點和聯網裝置(未示出),以提供私有計算機網絡擴展220。在至少一些實施方案中,CSP管理器模塊210可在CSP 205的一個或多個計算系統(未示出)上執行,并且可提供一個或多個API,所述一個或多個API使得遠程計算系統能夠與模塊210以編程方式交互,從而代表客戶端訪問CSP 205的一些或所有功能(例如,創建、配置私有網絡擴展220和/或發起對其的使用)。此外,在至少一些實施方案中,客戶端替代地可與模塊210手動地交互(例如,通過由模塊210提供的用戶接口)以執行一些或所有此類動作。CSP 205還可包括具有如參考圖1描述的功能的應用程序遷移服務140a。
公用網絡200可以是例如可能由不同方操作的鏈接網絡的公共可訪問網絡,諸如互聯網。遠程客戶端私有網絡230各自可包括一個或多個現有私有網絡,諸如公司或其他私有網絡(例如,家庭、大學網絡等),所述網絡是非特權用戶部分或完全不可訪問的并且包括客戶端的計算系統和/或其他聯網裝置。在示例性實施方案中,客戶端私有網絡230可包括運行應用程序的一個VMI(例如,VMI1,類似于圖1中的VMI 180)以及多個VMI(例如,VMI2和VMI3,是在VMI1上運行的應用程序所依賴的)。VMI VMI1-VMI3可連接在私有子網245中(例如,運行VMI1-VMI3的主機服務器計算機可連接在子網245中)。
在所示實例中,所提供網絡擴展220各自包括多個計算節點(未示出),所述多個計算節點中的至少一些由CSP 205提供或者以其他方式在CSP 205的控制下提供,并且所提供網絡擴展220中的每一個可由它們被提供用于的客戶端以各種方式配置。所示實施方案中的網絡擴展220中的每一個可以是僅可由創建它的客戶端訪問的私有計算機網絡,盡管在其他實施方案中,由CSP 205為客戶端提供的至少一些計算機網絡可以是公共可訪問的和/或可以是并非是對其他現有計算機網絡的擴展的獨立計算機網絡。類似地,雖然實例中的所提供計算機網絡220是對是私有網絡的遠程客戶端計算機網絡230的擴展,但是在其他實施方案中,所提供計算機網絡220可以是對不是私有網絡的客戶端計算機網絡230的擴展。
根據本公開的示例性實施方案,應用程序遷移服務140a可將應用程、所述應用在其上運行的VMI(例如,VMI1)以及任何相關的VMI(例如,VMI2-VMI3)從客戶端私有網絡230遷移到所提供計算機網絡220內的一個或多個服務器計算機(類似于參考圖1描述的應用程序遷移功能)。此外,所遷移VMI1-VMI3可連接在計算服務提供方205內的私有子網250中,如圖2A所示。
可以各種方式實現遠程客戶端私有計算機網絡230與為客戶端提供的對應私有計算機網絡擴展220之間的私有訪問,諸如通過在它們之間建立允許以安全私有方式通過公共網絡200互通的VPN連接或其他安全連接。例如,CSP 205可在其計算節點和其他計算系統上自動執行適當的配置以實現對客戶端的具體私有網絡擴展220的VPN訪問,諸如通過自動地配置由CSP 205托管的一個或多個VPN機構(例如,軟件和/或硬件VPN機構),和/或可自動地將適當的配置信息(例如,憑證、接入點和/或其他參數)提供給客戶端以允許托管在遠程客戶端私有網絡230上的VPN機構建立VPN訪問。在已適當地實現和/或配置VPN訪問之后,可在遠程客戶端私有網絡與私有網絡擴展之間建立VPN連接,諸如由客戶端使用IPsec(“互聯網協議安全”)或其他適當的通信技術發起。例如,在一些實施方案中,可建立到使用MPLS(“多協議標簽交換”)進行數據傳輸的網絡或其間的VPN連接或其他安全連接,諸如替代基于IPsec的VPN連接。
此外,在所示實施方案中,各種網絡可訪問的遠程資源服務240通過公共網絡200對遠程計算系統可用,包括對遠程客戶端私有網絡230上的計算系統可用。資源服務240可向遠程計算系統提供各種功能,諸如對資源服務240中的至少一些來說,向遠程計算系統提供對各種類型的計算相關的資源的訪問權。此外,由CSP 205提供的私有網絡擴展220中的至少一些可被配置來對遠程資源服務240中的至少一些提供私有或其他專門化訪問,其中所提供訪問任選地對如通過虛擬連接215本地提供的私有網絡擴展220的計算節點(它們是私有網絡擴展220的一部分)呈現,盡管與遠程資源服務240的實際通信可通過公共網絡200(例如,通過互連200b和200c)發生。在其他地方更詳細地討論了關于建立和使用對遠程資源服務的此類私有或其他專門化訪問的另外細節。
如先前所指出,所提供網絡擴展220各自可由客戶端以各種方式來配置。例如,在至少一些實施方案中,CSP 205提供多個計算節點,所述多個計算節點可供用于與向客戶端提供的網絡擴展一起使用,使得每個所提供網絡擴展220可包括客戶端配置數量的多個計算節點,這些計算節點專用作所提供網絡擴展的一部分。具體地說,客戶端可與模塊210交互以配置為客戶端提供的計算機網絡中初始地將要包括的計算節點的數量(例如,通過與由CSP 205提供的API進行的一個或多個程序性交互)。此外,在至少一些此類實施方案中,稍后可動態地向所提供客戶端計算機網絡添加或從其移除計算節點(例如,通過與由CSP 205提供的API進行的一個或多個程序性交互),諸如在所提供計算機網絡已由客戶端置于使用中(例如,通過指示在特定計算節點上發起或終止具體程序的執行)之后。此外,在至少一些實施方案中,CSP 205可提供多個不同類型的計算節點,例如像具有各種性能特性(例如,處理器速度、可用存儲器、可用存儲裝置等)和/或其他能力的計算節點。如果是這樣的話,在至少一些此類實施方案中,客戶端可指定所提供客戶端計算機網絡中將要包括的計算節點的類型。
此外,在至少一些實施方案中,客戶端可與模塊210交互以配置為客戶端提供的計算機網絡的網絡地址(例如,通過與由CSP 205提供的API進行的一個或多個程序性交互),并且在至少一些此類實施方案中,稍后可針對所提供客戶端計算機網絡動態地添加、移除或修改網絡地址,諸如在所提供計算機網絡已經由客戶端置于使用中之后。例如,如果被配置的特定所提供計算機網絡是對現有遠程客戶端計算機網絡的擴展,那么客戶端可指定一個或多個地址范圍(例如,無類別域間路由(“CIDR”)地址碼組)或其他網絡地址組(所述其他網絡地址組是現有遠程客戶端計算機網絡所使用的網絡地址的子集),使得所指定網絡地址得以用于所提供計算機網絡的計算節點。在一些情況下,此類配置的網絡地址可以是從公共網絡200上的計算系統不可直接尋址的虛擬或私有網絡地址(例如,如果現有遠程客戶端計算機網絡和對應所提供網絡擴展使用用于客戶端計算機網絡和它的所提供網絡擴展的網絡地址轉換技術和/或虛擬網絡技術),而在其他情況下,所配置網絡地址中的至少一些可以是可從公共網絡200上的計算系統直接尋址的公共網絡地址(例如,是靜態互聯網可路由IP地址或其他不改變的網絡地址的公共網絡地址)。
在其他實施方案中,CSP 205可自動地選擇將要用于至少一些所提供計算機網絡擴展的至少一些計算節點的網絡地址,諸如基于可供用于由CSP 205使用的網絡地址,基于選擇是由對應于所提供計算機網絡的遠程現有計算機網絡使用的相關網絡地址的網絡地址等。此外,在至少一些實施方案(其中CSP 205通過諸如在基礎網絡之上使用疊加網絡來向客戶端提供虛擬網絡)中,每個客戶端可被允許指定將要用于它們的所提供計算機網絡的任何網絡地址,即使多個客戶端為它們的相應所提供計算機網絡指定相同或疊加的網絡地址也是如此—在此類實施方案中,CSP 205管理相異地為每個客戶端管理網絡地址,使得第一客戶端可具有與第一客戶端的所提供計算機網絡的具體指定的網絡地址相關聯的第一計算節點,而相異的第二客戶端可具有與第二客戶端的所提供計算機網絡地址的相同的具體指定的網絡地址相關聯的相異的第二計算節點。
一旦為所提供計算機網絡配置或以其他方式確定網絡地址,CSP205就可通過使用DHCP(“動態主機配置協議”)或用于網絡地址動態分配的其他技術等以諸如隨機方式將網絡地址分配給針對所提供計算機網絡選擇的各個計算節點。此外,即使針對特定計算機網絡使用了公共網絡地址,CSP 205也可以其他方式(諸如使用特定公共網絡地址來充當特定遠程資源服務的訪問機構,如在其他地方更詳細描述的)映射要使用的那些公共網絡地址中的一個或多個,使得由那個特定計算機網絡的計算節點向那個特定公共網絡地址發送的通信將轉發到對應遠程資源服務而不是互聯網或那個特定公共網絡地址被分配給的其他網絡上的另一個計算系統。圖2B提供關于使用所配置網絡地址來在所提供計算機網絡內路由通信的實例的另外細節。
此外,在至少一些實施方案中,客戶端可與模塊210交互以配置為客戶端提供的計算機網絡的網絡拓撲信息(例如,通過與由CSP 205提供的API進行的一個或多個程序性交互),并且在至少一些此類實施方案中,隨后可針對所提供計算機網絡動態地修改此類網絡拓撲信息,諸如在所提供計算機網絡已經由客戶端置于使用中之后。例如,客戶端可指定將要作為所提供計算機網絡的一部分的聯網裝置(例如,路由器、交換器等)和/或其他網絡裝置或節點(例如,防火墻、代理服務器、網絡存儲裝置、打印機等)的具體類型,和/或可指定將要分組在一起或以其他方式享有共同互通特性的所提供計算機網絡的計算節點的子集(例如,是互通未得到過濾的子網的一部分和/或與特定聯網裝置相關聯的計算節點的特定子集)。
此外,在至少一些實施方案中,所提供計算機網絡的指定配置信息可包括聯網裝置和/或計算裝置組之間的路由信息或其他互連性信息。此外,在至少一些實施方案中,CSP 205可在多個地理位置中(例如,在多個地理分布的數據中心中)提供可用計算節點,并且由客戶端針對所提供計算機網絡指定的配置信息可進一步指示一個或多個地理位置,所提供計算機網絡的計算節點將要定位在所述一個或多個地理位置中(例如,以便通過將它們定位在多個地理位置中來在所提供計算機網絡的計算節點之中提供故障容許),和/或可以其他方式提供關于所提供計算機網絡的計算節點如何交互操作的偏好或要求的信息,所述信息由CSP 205使用來選擇一個或多個此類地理位置(例如,用于計算節點互通的最小或最大網絡延遲或帶寬;計算節點之間的最小或最大網絡接近度;計算節點之間的最小或最大地理近度;具有對在所有此類地理位置中不可用的特定資源或功能的本地訪問權;具有相對于其他外部計算系統(諸如相對于客戶端的遠程計算機網絡和/或相對于遠程資源服務;等等)指定的位置等)。
如其他地方更詳細地討論,在至少一些實施方案中,使用CSP 205的底層基礎網絡來管理所提供計算機網絡的計算節點之間的互連和互通,并且如果是這樣的話,在至少一些此類似實施方案中,可使用CSP 205的底層基礎網絡和對應模塊來模擬一些或所有所配置網絡拓撲信息。例如,由CSP 205提供的計算節點中的每一個可與CSP 205的節點通信管理器模塊相關聯,所述節點通信管理器模塊管理去往和來自其相關聯計算節點的通信。如果是這樣的話,可通過使用計算節點的相關聯通信管理器模塊模擬防火墻裝置以便以與一個或多個模擬的防火墻裝置一致的方式拒絕或以其他方式處置去往和/或來自計算節點的通信。此類節點通信管理器模塊可通過控制互通如何和是否在計算節點之間傳遞,并且通過用適當的響應信息對來自計算節點的對信息的請求(例如,ARP請求或地址解析協議)作出響應,來類似地模擬路由器和子網。CSP 205的一個或多個外部通信管理器模塊可管理由CSP 205提供的計算節點與外部計算系統之間的通信,諸如以便類似地模擬防火墻裝置并且強制執行指定的網絡訪問約束,以及以便管理遠程資源服務的所配置訪問機構和到遠程客戶端私有計算機網絡的安全連接。可類似地模擬其他類型的網絡拓撲信息,并且可參考圖3在下文討論關于在一些實施方案中使用CSP 205的各種模塊的另外細節。
此外,在至少一些實施方案中,客戶端可與模塊210交互以配置為客戶端提供的計算機網絡的網絡訪問約束信息(例如,通過與由CSP 205提供的API進行的一個或多個程序性交互),并且在至少一些此類實施方案中,隨后可針對所提供計算機網絡動態地修改此類網絡訪問約束信息,諸如在所提供計算機網絡已經由客戶端置于使用中之后。例如,客戶端可基于諸如以下各項中的一項或多項來指定關于所提供計算機網絡的一些或所有計算節點是否和如何被允許與所提供計算機網絡的其他計算節點通信和/或與其他外部計算系統通信的信息:通信的方向(傳入對比傳出);通信的類型(例如,基于所包括內容的類型和/或所使用通信協議的類型,諸如以允許對文本而不是圖像的HTTP請求并且不允許FTP請求);其他計算系統的位置(例如,是否是所提供計算機網絡的一部分、對應于所提供計算機網絡的遠程客戶端計算機網絡的一部分、私有或其他專門化訪問已經對其建立的遠程資源服務的一部分、在所提供計算機網絡和任何對應遠程客戶端計算機網絡的外部等);其他計算系統的類型;等等。此外,如其他地方更詳細討論,在至少一些實施方案中,所提供計算機網絡可被配置來對一個或多個遠程資源服務提供私有或其他專門化訪問,諸如通過是所提供計算機網絡的一部分或以其他方式在所提供計算機網絡本地的所配置訪問機構。以類似于用于網絡拓撲信息和其他路由信息的方式,CSP 205可以各種方式強制執行所提供計算機網絡的網絡訪問約束信息。參考圖3在下文討論了與在一些實施方案中管理所提供計算機網絡的通信有關的另外細節。
圖2B示出關于可由CSP 205(或計算服務提供方的其他實施方案)為客戶端提供的示例性計算機網絡220A的另外細節,其中在這個實例中,所提供計算機網絡220A是對客戶端的遠程私有計算機網絡(諸如圖2A的遠程私有計算機網絡230中的一個)的私有網絡擴展。在這個實例中,以概念性方式示出用于所提供計算機網絡220A的各種連接和通信路徑以展示可配置網絡訪問約束和網絡拓撲的類型,并且圖3展示關于可用于創建所提供計算機網絡(諸如示例性所提供計算機網絡220A)的底層基礎網絡和連接的實例的另外細節。
具體地說,在圖2B中,所提供計算機網絡220A包括位于第一地理位置1 260處(例如,地理位置1處的第一數據中心處)的由CSP205提供的各種計算節點(或主機服務器計算機),其中在這個實例中,各種計算節點被配置到邏輯組264、265和266中(例如,以對應于不同子網和/或相關聯的所配置聯網裝置,未示出)。在這個實例中,單個概念性虛擬路由器262被示出為在地理位置1處以控制那些計算節點與其他計算系統之間的通信,以便展示可能發生的通信的不同類型,盡管所提供計算機網絡220A實際上可在地理位置1處具有多個或沒有所配置聯網裝置,并且計算機網絡220A可由地理位置1處的可配置網絡服務以各種方式來實現,諸如借助于多個物理互連路由器或其他聯網裝置,通過使用底層基礎網絡和控制底層基礎網絡之上的通信的相關聯模塊等。在這個實例中,虛擬路由器262根據用于所提供計算機網絡220A的所配置信息(包括所配置網絡拓撲信息、對遠程資源服務的所配置私有或其他專門化訪問以及其他所配置網絡訪問約束信息),諸如以便將發送到所提供計算機網絡220A內的網絡地址的通信路由到所提供計算機網絡220A上的對應目的地計算節點,并且視情況將其他通信路由到所提供計算機網絡220A外部的其他網絡地址。此外,虛擬路由器262可阻斷或以其他方式管理所配置防火墻裝置、所配置網絡拓撲信息或其他所配置網絡訪問約束所不允許的通信。
在這個實例中,計算機網絡220A被提供用于示例性客戶端1,并且是對客戶端1的遠程計算機網絡的網絡擴展。客戶端1的遠程計算機網絡包括在第一遠程位置位點A 290處的多個計算系統(未示出),并且虛擬路由器262被配置來通過地理位置1處的虛擬通信鏈路270與那多個計算系統通信。例如,所提供計算機網絡220A可包括到位點A 290處的多個計算系統的一個或多個所配置VPN連接,并且通信鏈路270可對應于一個或多個此類VPN連接。此外,客戶端1的遠程計算機網絡可任選地包括一個或多個其他位置處的計算系統,諸如示出的任選位點B 292,并且如果是這樣的話,虛擬路由器262還可被配置來與其他位置處的那些其他計算系統通信,諸如通過到位點B 292的任選虛擬通信鏈路272(例如,通過直接到位點8的一個或多個其他所配置VPN連接)。
當多個VPN連接或其他安全連接用于遠程計算機網絡的遠程計算系統時,每個連接可對應于遠程計算系統的子集(例如,通過與遠程計算機網絡的對應于那些遠程計算系統的網絡地址的子集相關聯),以使得通信被路由到適當的連接。在其他實施方案中,多個VPN連接或其他安全連接可用于一個或多個位置處的遠程計算系統,但是各自可支持到任何遠程計算系統的通信,諸如如果多個連接是冗余替代(例如,用于負載平衡)的話。此外,在一些實施方案中,客戶端的遠程計算機網絡可包括多個位點處的多個計算系統,但是可以僅使用到遠程計算系統的單一VPN連接或其他安全連接,其中遠程計算機網絡負責將通信路由到適當的位點和計算系統。
此外,所提供計算機網絡220A可被配置來允許所提供計算機網絡220A的計算節點與通常可在互聯網296或其他公共網絡上訪問的其他外部計算系統之間的所有通信、一些通信或不允許其間的通信。如果至少一些此類外部通信得到允許,那么虛擬路由器262還可被配置來諸如結合用于所提供計算機網絡220A的任選虛擬邊界路由器255,通過所提供計算機網絡220A的任選虛擬通信鏈路278與外部那多個計算系統通信。虛擬邊界路由器255可以各種方式物理地實現,諸如由CSP 205使用管理外部計算系統與地理位置1處的由CSP 205提供的各種計算節點之間的通信的一個或多個實際防火墻裝置或邊界路由器裝置(例如,支持由CSP 205向使用CSP 205的那些計算節點的客戶端提供的眾多計算機網絡的實際裝置),通過使用底層基礎網絡和控制底層基礎網絡之上的通信(例如,以阻止被拒絕通信由所提供計算機網絡220a的計算節點發送到基礎網絡上)的相關聯模塊等。此外,在概念上,虛擬邊界路由器255還可有助于管理到提所供計算機網絡220A外部的其他計算系統的其他通信,諸如到位點A和B處的遠程客戶端計算機網絡的通信、到一個或多個遠程資源服務的通信等。
此外,所提供計算機網絡220A可被配置來對一個或多個遠程資源服務提供私有或其他專門化訪問,諸如通過分配所提供計算機網絡220A的一個或多個網絡地址以表示那些一個或多個遠程資源服務,以及通過任選地配置將要采取以用于發送到那些所分配網絡地址的通信的特定動作。在這個實例中,虛擬路由器262已被配置來通過所提供計算機網絡220a的虛擬通信鏈路274274對遠程資源服務294提供本地訪問。因此,例如,如果所提供計算機網絡220a的計算節點中的一個將通信發送到所提供計算機網絡220a的映射到通信鏈路274274的特定網絡地址,那么虛擬路由器可將那個通信轉發到所提供計算機網絡220a外部的遠程資源服務294(例如,通過互聯網或其公他共網絡)。在其他實施方案中,遠程資源服務294可實現是CSP205的一部分或以其他方式在地理位置1處的接口,并且如果是這樣的話,發送到所提供計算機網絡220A的映射到通信鏈路274的特定網絡地址的通信替代地可轉發到遠程資源服務的那個接口以進行處置。
此外,在至少一些實施方案中,虛擬通信鏈路274可被配置來以各種方式管理通過鏈路發送的通信,諸如以便在那些通信被轉發到遠程資源服務294之前以一種或多種方式對它們進行修改,或者否則以專門化方式訪問遠程資源服務294。例如,在所示實施方案中,虛擬通信鏈路274可被配置成對應于遠程資源服務294內的特定命名空間,其中由遠程資源服務294提供的計算相關的資源的子集是那個命名空間的一部分。相應地,虛擬通信鏈路274可被配置來訪問特定命名空間內的資源,諸如通過修改或轉換通信以使用與特定命名空間相關聯的名稱或其他標識符,通過使用遠程資源服務的支持指示特定命名空間的特定接口等。
此外,如果虛擬通信鏈路274被配置成對應于特定命名空間或以其他方式對應于由遠程資源服務294提供的資源的子集,那么所提供計算機網絡220A可任選地進一步被配置成包括也對應于相同遠程資源服務294但被配置來以其他方式訪問遠程資源服務294的一個或多個其他虛擬通信鏈路。例如,所提供計算機網絡220A可任選地包括相異虛擬通信鏈路276,所述相異虛擬通信鏈路276被配置來以與虛擬通信鏈路274相異的方式訪問遠程資源服務294,諸如以對應于相異第二命名空間,以不對應于任何特定命名空間,以使用遠程資源服務294的客戶的與用于通信鏈路274的客戶標識符相異的標識符,等等。在這個實例中,虛擬通信鏈路274和276被配置來使用在這個實例中分別表示為鏈路274和276的ID 1和ID 2的不同的標識符(例如,不同的命名空間標識符)。因此,所提供計算機網絡220a的計算節點可能能夠訪問來自遠程資源294的不同類型的功能。此外,雖然此處未示出,但是所提供計算機網絡220A可類似地被配置來使用到一個或多個其他遠程資源服務(未示出)的其他虛擬通信鏈路訪問那些其他遠程資源服務。
除了或替代配置虛擬鏈路274以訪問遠程資源服務294的特定命名空間,在至少一些實施方案中,虛擬通信鏈路可被配置來向遠程資源服務294提供另外的信息以允許遠程資源服務294驗證通信的位置或其他源是所提供計算機網絡220a。例如,在所示實施方案中,虛擬通信鏈路274可被配置成對應于一個或多個特定標識符或者與由計算服務提供方或由遠程資源服務294、294提供的計算機網絡220a相關聯的其他訪問控制指示符,使得由通過虛擬通信鏈路274訪問的遠程資源服務294提供的新的和/或現有的計算相關的資源的子集與訪問控制指示符相關聯,供遠程資源服務294使用來限制對那些資源的訪問。
相應地,虛擬通信鏈路274可被配置來以各種方式使用與所提供計算機網絡220a相關聯的指定的另外指示符,諸如以便將通信修改成包括另外的指示符,在不修改通信的情況下連同通信一起發送另外的指示符,使用遠程資源服務的支持包括此類另外的指示符的特定接口,等等。另外,如果虛擬通信鏈路274被配置成對應于一個或多個另外的指示符,那么所提供計算機網絡220A可任選地進一步被配置成包括也對應于相同遠程資源服務294但被配置來以其他方式訪問遠程資源服務294的一個或多個其他虛擬通信鏈路。例如,所提供計算機網絡220A可任選地配置相異虛擬通信鏈路276來訪問遠程資源服務294而不使用任何另外的指示符(例如,以便對遠程資源服務294提供與否則將可公共獲得的訪問相同的訪問),以使用與虛擬通信鏈路274一起使用的那些相異的一個或多個其他另外的訪問控制指示符,以使用遠程資源服務294的客戶的與用于虛擬通信鏈路274的客戶標識符相異的標識符,等等。此外,雖然此處未示出,但是所提供計算機網絡220a可類似地被配置來使用到一個或多個其他遠程資源服務(未示出)的其他虛擬通信鏈路(諸如,被配置來與虛擬通信鏈路274使用相同的一個或多個另外的指示符或以其他方式配置的其他虛擬通信鏈路)來訪問那些其他遠程資源服務。
根據本公開的示例性實施方案,應用程序280d可在由客戶端私有網絡位點A 290的主機服務器托管的VMI 280a上運行。應用程序280d還可利用(即,可依賴于)由VMI 280b-280c提供的功能。此外,所提供計算機網絡220A可使用提供如參考圖1描述的功能的應用程序遷移服務140a。例如,應用程序遷移服務140a可用于將應用程序280d遷移到所提供網絡220A內的主機服務器264。更具體地說,VMI280a-280c可被遷移,如參考圖1所解釋,并且在主機計算機264處分別作為VMI1、VMI2和VMI3來啟動。在實例中,當例如VMI280b-280c和VMI 280a由兩個不同的服務器計算機托管時,那么在遷移所有VMI之后,VMI 280b-280c可在所提供計算機網絡220A處作為一個不同服務器(例如,主機服務器265)處的VMI2-VMI3來啟動。此外,由于原始的VMI 280a-280c在私有子網280e中,所以在遷移之后,新的VMI VMI1-VMI3也可放置在私有子網250A中。
在所示實施方案中,除了CSP 205的地理位置1處的計算節點之外,所提供計算機網絡220A還可包括位于第二地理位置2 280處(例如,在地理位置2處的相異第二數據中心處)的由CSP 205提供的計算節點284。相應地,虛擬路由器262可被配置成包括到所提供計算機網絡220a在地理位置2處的部分的任選虛擬通信鏈路268。在這個實例中,所提供計算機網絡220A在地理位置2處的部分類似地以概念性虛擬路由器282示出,以便管理去往和來自計算節點284的通信,包括通過虛擬通信鏈路288與所提供計算機網絡220A在地理位置1處的部分通信。在各種實施方案中,CSP 205在不同地理位置處的計算節點之間的此類通信可以各種方式來處置,諸如通過借助于互聯網或其他公共網絡發送通信(例如,作為安全通道的一部分,所述安全通道諸如使用CSP 205所支持的加密的安全通道),通過以私有安全方式發送通信(例如,通過地理位置之間的專用租借線),等等。此外,雖然此處未示出,但是所提供計算機網絡220A在地理位置2處的部分可類似地包括針對地理位置1處的部分示出的一些或所有相同類型的其他虛擬通信鏈路,所述其他虛擬通信鏈路諸如到遠程客戶端私有網絡(例如,通過與到地理位置1的任何VPN連接相異的一個或多個VPN連接)、到遠程資源服務、到互聯網等。
應理解,出于示例性目的而包括圖2B的示例性所提供計算機網絡220A,并且由CSP 205為客戶端提供的其他計算機網絡可不包括所有類型的所配置通信鏈路和網絡拓撲信息,和/或可包括此處未示出的其他類型的所配置通信鏈路和網絡拓撲信息。例如,在一些實施方案和情況中,除了或替代計算節點,所提供計算機網絡可包括所配置裝置和其他資源,并且如果是這樣的話,每個這樣的其他資源可任選地被分配所提供計算機網絡的網絡地址。此外,可使用多種類型的底層物理裝置、連接和模塊來實現圖2B中示出的概念性裝置和通信鏈路。此外,雖然此處未示出,但是客戶端可執行與遠程資源服務進行的多種其他類型的交互,不管是從所提供計算機網絡還是替代地其他遠程計算系統,諸如以預訂/登記來使用資源,接收/創建各種憑證(例如,用戶ID、密碼等)、從其他遠程計算系統(例如,是遠程私有公司網絡的一部分)創建稍后從所提供計算機網絡(例如,對私有公司網絡的網絡擴展)訪問的資源和/或命名空間,等等。
圖3是用于諸如通過計算服務提供方的實施方案來提供計算機網絡的計算系統的示例性實施方案的網絡圖。具體地說,在這個實例中,數個物理計算系統共同位于數據中心300中并且通過各種聯網裝置和一個或多個物理網絡互連。在這個實例中,由計算服務提供方使用物理計算系統和其他裝置通過以下方式為客戶端提供多個計算機網絡:將所提供計算機網絡中的每一個建立并保持為虛擬網絡,并且將物理網絡用作虛擬網絡疊加在其上的基礎網絡。例如,關于圖2B的實例,數據中心300可位于地理位置1處,并且所示物理計算系統可用于提供所提供計算機網絡220A的計算節點264、265和266。在至少一些實施方案中,疊加網絡和底層基礎網絡的使用可對所提供計算機網絡的計算節點透明。
因此,在這個實例中,由計算服務提供方提供的計算機網絡被實現為通過底層物理基礎網絡發送通信的虛擬疊加網絡。在各種實施方案中,所提供虛擬疊加網絡可以各種方式實現,諸如在一些實施方案中不對通信進行封裝(例如,通過將針對物理基礎網絡的網絡協議配置的虛擬網絡的虛擬網絡地址信息嵌入在通信中)。作為一個說明性實例,可使用32位1Pv4(“第四版互聯網協議”)網絡地址來實現虛擬網絡,并且那些32-位虛擬網絡地址可作為由物理基礎網絡使用的128-位1Pv6(“第六版互聯網協議”)網絡地址的一部分嵌入,諸如通過重設通信包或其他數據傳輸的報頭(例如,使用無狀態IP/ICMP轉換或SIIT),或以其他方式修改此類數據傳輸以將它們從它們被配置所針對的第一聯網協議轉換成相異第二聯網協議。
作為另一個說明性實例,可使用相同的網絡尋址協議(例如,1Pv4或1Pv6)來實現虛擬網絡和基礎網絡兩者,并且使用虛擬網絡地址的通過所提供虛擬疊加網絡發送的數據傳輸可在其通過基礎網絡被發送時被修改成使用對應于基礎網絡的不同的物理網絡地址,但是原始虛擬網絡地址被存儲在已修改數據傳輸中或以其他方式被跟蹤,使得數據傳輸在它們離開基礎網絡時可被恢復至它們的原始形式。在其他實施方案中,可使用通信的封裝來實現疊加網絡中的至少一些。
圖3所示的實例包括由計算服務提供方的實施方案操作的具有多個物理計算系統的數據中心300。數據中心300連接到數據中心300外部的一個或多個公共網絡335,所述一個或多個公共網絡335提供通過私有網絡340對一個或多個遠程計算系統345a的訪問、對在其他地理位置處的各自具有多個計算系統的一個或多個其他全局可訪問數據中心360的訪問、以及對一個或多個其他遠程計算系統345b的訪問。公共網絡335可以是例如可能由各個相異方操作的公共可訪問網絡的網絡(諸如互聯網),并且私有網絡340可以是例如從私有網絡340外部的計算系統完全或部分不可訪問的公司網絡。計算系統345b各自可以是例如直接連接到互聯網(例如,通過電話線、電纜調制解調器、數字用戶線(“DSL”)等)的家庭計算系統。
在這個實例中,計算服務提供方的管理器模塊3310有助于對虛擬的所提供計算機網絡進行配置,并且計算服務提供方的多個其他模塊用于通過修改進入和/或離開基礎網絡的通信而諸如從物理基礎網絡的邊緣實現所提供計算機網絡的功能。具體地說,在這個實例中,計算服務提供方的多個節點通信管理器模塊各自管理去往和來自相關聯計算節點的通信,諸如所示節點通信管理器模塊309a、309d和350。此外,在這個實例中,計算服務提供方的外部通信管理器模塊370管理數據中心300內的物理計算系統與外部計算系統之間的通信,如下文更詳細地討論。雖然在這個實例中僅示出了單個外部通信管理器模塊370,但是應理解,可使用多個裝置實現模塊370的功能,諸如用于冗余和負載平衡。
數據中心300包括數個物理計算系統(例如,運行一個或多個虛擬機實例的主機服務器計算機)305a-305d和355a-355n,以及計算服務提供方的CSP節點通信管理器模塊350和管理器模塊310,模塊350在一個或多個其他計算系統(未示出)上執行以管理相關聯計算系統355a-355n的通信,模塊310在一個或多個計算系統(未示出)上執行。在這個示例性實施方案中,每個物理計算系統305a-305d托管多個虛擬機計算節點并且還包括虛擬機(“VM”)節點通信管理器模塊(例如,作為用于物理計算系統的虛擬機管理程序監測器的一部分),諸如計算系統305a上的CSP VM節點通信管理器模塊309a和虛擬機307a,并且諸如計算系統305d上的CSP VM節點通信管理器模塊309d和虛擬機307d。虛擬機計算節點中的每一個可由計算服務提供方用作為客戶端提供的計算機網絡的相異計算節點。在這個實例中,物理計算系統355a-355n不執行任何虛擬機,并且因此各自可用作相異計算節點,所述相異計算節點是由計算服務提供方為客戶端提供的計算機網絡的一部分。在其他實施方案中,數據中心處的所有物理計算系統可托管或不托管虛擬機。
例如,遠程計算系統345a可以是基于企業的網絡的一部分。應用程序APP1可在由基于企業的網絡的遠程計算系統345a的主機服務器390托管的VMI1上運行。應用程序APP1還可利用(即,可依賴于)由同樣由同一主機服務器390托管的VMI2和VMI3提供的功能。計算服務提供方(例如,公共云網絡)的數據中心300可使用提供如參考圖1描述的功能的應用程序遷移服務140a。例如,應用程序遷移服務140a可用于將應用程序APP1遷移到數據中心300內的主機服務器305b。更具體地說,VMI1-VMI3可從主機390遷移,如參考圖1所解釋,并且在數據中心300內的主機計算機305b處分別作為VMI1、VMI2和VMI3來啟動。
原始VMI(在遠程計算系統345a內的主機390上運行的VMI1-VMI3)可連接在私有子網391中。在遷移之后,新啟動的VMI(主機服務器305b中的VMI1-VMI3)還可被放置在私有子網393中。此外,作為遷移過程的一部分,可將主機服務器計算機305b的名稱和IP地址改變成與計算系統345a的基于企業的網絡內的主機服務器390的名稱(例如,“HOST 1”)和IP地址(例如,IP1)相同。
這個示例性數據中心還包括多個物理聯網裝置,諸如交換器315a和315b、邊緣路由器325a-325c和核心路由器330a-330c。交換器315a是包括物理計算系統305a-305c的物理網絡的一部分,并且連接到邊緣路由器325a。交換器315b是包括物理計算系統305d、355a-355n以及提供CSP節點通信管理器模塊350和CSP系統管理器模塊310的計算系統的相異物理網絡的一部分,并且連接到邊緣路由器325b。由交換器315a-315b建立的物理網絡進而通過中間互連網絡320連接到彼此和其他網絡(例如,公共網絡335),所述中間互連網絡320包括邊緣路由器325a-325c和核心路由器330a-330c。邊緣路由器325a-325c在兩個或更多個網絡之間提供網關。例如,邊緣路由器325a在由交換器315a建立的物理網絡與互連網絡320之間提供網關。邊緣路由器325c在互連網絡320與公共網絡335之間提供網關。核心路由器330a-330c管理互連網絡320內的通信,諸如視情況通過基于此類數據傳輸的特性(例如,包括源和/或目的地基礎網絡地址、協議標識符等的報頭信息)和/或互連網絡320本身的特性(例如,基于物理網絡拓撲等的路線)轉發包或其他數據傳輸。
所示節點通信管理器模塊管理向和從相關聯計算節點發送的通信。例如,節點通信管理器模塊309a管理相關聯虛擬機計算節點307a,節點通信管理器模塊309d管理相關聯虛擬機計算節點307d,并且其他節點通信管理器模塊中的每一個可類似地管理一個或多個其他相關聯計算節點的群組的通信。所示節點通信管理器模塊可管理計算節點之間的通信,以便在中間物理基礎網絡(例如,互連網絡320以及與交換器315a和315b相關聯的物理網絡)之上疊加特定虛擬網絡,并且可實現防火墻策略和其他網絡訪問約束以控制此類通信。外部通信管理器模塊370管理進入和離開數據中心300的外部通信,諸如以關于此類外部通信進一步在數據中心300內的基礎網絡之上實現疊加網絡。外部通信管理器模塊370可采取動作以實現防火墻策略和其他網絡訪問約束,包括針對所提供計算機網絡配置的允許對數據中心300外部的遠程資源服務進行私有或其他專門化訪問的訪問機構,并且任選地包括到外部遠程客戶端計算機網絡的至少一些VPN連接,或替代地可結合實現此類VPN連接的計算服務提供方的部分的其他硬件和/或軟件(未示出)操作。
因此,作為一個說明性實例,計算系統305a上的虛擬機計算節點307a中的一個連同以下各項可以是客戶端的特定所提供虛擬計算機網絡(例如,圖2B的所提供計算機網絡220A)的一部分:計算系統305d虛擬機計算節點307d中的一個和計算系統355a(以及任選地這個數據中心中或同樣由計算服務提供方使用的一個或多個其他數據中心360中的其他計算節點),以及用于表示虛擬網絡的虛擬網絡地址的1Pv4。其他虛擬機計算節點307a、虛擬機計算節點307d以及計算系統355b-355n(以及其他所示計算節點)當前可專用于向其他客戶端提供的其他計算機網絡,當前可未被分配給所提供計算機網絡并且可供計算服務提供方使用,和/或也可以是同一特定所提供虛擬計算機網絡的一部分。為客戶端而在是特定所提供虛擬計算機網絡的一部分的虛擬機計算節點307a上執行的程序然后可將傳出通信(未示出)引導到特定所提供虛擬計算機網絡的虛擬機計算節點307d,諸如通過指定那個所提供虛擬計算機網絡的被分配給目的地虛擬機計算節點307d的虛擬網絡地址。節點通信管理器模塊309a接收傳出通信,并且在至少一些實施方案中確定是否要授權發送傳出通信,諸如基于關于發送虛擬機計算節點307a和/或關于目的地虛擬機計算節點307d的先前配置的信息,和/或通過與系統管理器模塊310動態地交互(例如,以獲得授權確定、以獲得一些或所有此類信息等)。
如果節點通信管理器模塊309a確定傳出通信被授權(或不執行這種授權確定),那么模塊309a確定對應于通信的目的地虛擬網絡地址的實際物理基礎網絡位置。在這個實例中,互連網絡使用1Pv6來表示通過互連網絡連接的計算節點的實際網絡地址,并且模塊309a重設傳出通信的報頭,使得其被定向到使用實際1Pv6基礎網絡地址的節點通信管理器模塊309d。節點通信管理器模塊309a可通過例如與系統管理器模塊310動態地交互來確定要使用的對應于目的地虛擬計算節點307d的虛擬網絡地址的實際1Pv6目的地網絡地址,或可先前確定并存儲了那個信息(例如,響應于來自發送虛擬機計算節點307a的對關于那個目的地虛擬網絡地址的信息的先前請求,諸如使用地址解析協議或ARP的請求)。在這個實例中,所使用的實際1Pv6目的地網絡地址內嵌虛擬目的地網絡地址和另外的信息,以便在不進行封裝的情況下通過疊加網絡發送通信。
當節點通信管理器模塊309d通過互連網絡320接收通信時,它從實際1Pv6目的地網絡地址提取虛擬目的地網絡地址和另外的信息,并且確定通信要被引導到虛擬機計算節點307d中的哪一個。節點通信管理器模塊309d接著任選地諸如通過以下方式來針對目的地虛擬機計算節點307d確定通信是否被授權:從實際1Pv6源網絡地址提取虛擬源網絡地址和另外的信息,并且確認具有那個虛擬源網絡地址的計算節點實際上由轉發通信的節點通信管理器模塊(在這個實例中,節點通信管理器模塊309a)管理,以便阻止惡意發送方盜用源網絡地址。如果確定通信被授權(或節點通信管理器模塊309d不執行這種授權確定),那么模塊309d諸如通過以下方式來重設傳入通信的報頭以使得其被引導到使用虛擬網絡的適當1Pv4網絡地址的目的地虛擬機計算節點307d:使用發送虛擬機計算節點的虛擬網絡地址作為源網絡地址并且使用目的地虛擬機計算節點的虛擬網絡地址作為目的地網絡地址。
在重設傳入通信的報頭之后,模塊309d然后將已修改通信轉發到目的地虛擬機計算節點。在至少一些實施方案中,在將傳入通信轉發到目的地虛擬機之前,模塊309d還可執行與安全性相關的另外的步驟。例如,模塊309d可檢驗發送虛擬機計算節點被授權與目的地虛擬機通信(例如,基于屬于同一虛擬網絡和/或基于針對那個所提供虛擬網絡指定的網絡訪問約束信息,與同一客戶或其他實體相關聯,與計算節點被授權互通的不同實體相關聯,等等),和/或檢驗傳入通信是所允許類型的,諸如基于由模塊309d先前獲取的信息或基于與系統管理器模塊310交互。
如果發送虛擬機計算節點307a替代地(或另外地)將傳出通信(未示出)引導到數據中心300外部的一個或多個預期目的地計算系統,那么節點通信管理器模塊309a以類似方式接收并處理傳出通信。預期外部目的地計算系統可以是例如是同一特定所提供虛擬計算機網絡的一部分的另一計算節點(例如,在特定所提供計算機網絡是其擴展的遠程虛擬客戶端計算機網絡上,或在同樣由計算服務提供方用來提供特定虛擬計算機網絡的一部分的另一數據中心360處)、遠程資源服務的計算系統、在互聯網上公共可訪問的計算系統等。在至少一些實施方案和情況中,模塊309a可首先確定是否要對發送傳入通信進行授權,并且如果是的話,確定對應于通信的目的地網絡地址的實際物理基礎網絡位置。在這個實例中,所確定物理基礎網絡位置對應于外部通信管理器模塊370,諸如如果模塊370與在其他情況下未被分配給節點通信管理器模塊的所有虛擬和/或實際網絡地址相關聯的話。當模塊370通過互連網絡320接收通信時,它類似地從所接收通信提取目的地網絡地址和另外的信息,并且確定是否和如何轉發通信,包括任選地針對預期的目的地確定通信是否被授權。如果確定通信被授權(或模塊370不執行這種授權確定),那么模塊370重設傳入通信的報頭以使得其被引導到使用適當的1Pv4公共網絡地址(或適用于公共網絡335的其他網絡地址)的目的地,然后通過公共網絡335轉發已修改通信。
因此,如以上所指出,在所示實施方案中,外部通信管理器模塊370處理來自所提供計算機網絡的傳出通信,包括通過針對遠程資源服務配置的訪問機構發送到那些遠程資源服務的傳出通信。在至少一些實施方案和情況中,如果通過針對特定所提供計算機網絡配置的訪問機構將傳出通信發送到遠程資源服務,那么模塊370和/或發送計算節點的相關聯節點通信管理器模塊可采取進一步動作。例如,特定所提供虛擬計算機網絡可具有針對特定遠程資源服務配置的映射到所述遠程資源服務的特定命名空間的訪問機構(例如,通過計算系統345b中的一個或多個或者通過另一數據中心360處的一個或多個計算系統提供的遠程資源服務),并且發送虛擬機計算節點307a可通過所配置訪問機構發送通信。針對特定所提供計算機網絡配置的到遠程資源服務的訪問機構可以是例如特定所提供計算機網絡的虛擬網絡地址,所述虛擬網絡地址被分配以表示那個所配置訪問機構,并且如果是這樣的話,那個分配的虛擬網絡地址可與模塊370相關聯以使得傳出通信被引導到模塊370。
在通過公共網絡335將這種傳出通信轉發到遠程資源服務之前,模塊370可采取各種動作以反映所使用訪問機構的配置,諸如以修改輸出通信以參考或以其他方式使用訪問機構所對應于的特定命名空間。在此類情況中,模塊370可以各種方式確定訪問機構的命名空間和其他配置信息,諸如通過本地存儲配置信息、聯系系統管理器模塊310以獲取配置信息等。此外,模塊370可以各種方式確定如何和何時修改通信以使用特定命名空間,諸如通過遠程資源服務先前將對應配置信息提供給計算服務提供方(例如,指示命名空間的一個或多個特定消息參數的指示;用于命名或參考資源的一個或多個特定消息參數的指示,其任選地可包括命名空間標識符;允許指示命名空間或以其他方式使用命名空間信息的消息的類型的指示;等等)。
作為一個具體說明性實例,遠程資源服務可提供數據存儲服務,并且傳出通信可以是對訪問特定的存儲相關的資源(例如,以檢索所存儲數據的所存儲對象或其他群組)的請求。如果是這樣的話,特定存儲資源可先前已由客戶端創建為由客戶端限定的命名空間的一部分,諸如通過使用所提供計算機網絡外部(例如,客戶端的遠程私有計算機網絡上的計算系統。通過配置用于特定所提供計算機網絡的訪問機構以使用那同一個命名空間,所提供計算機網絡的計算節點可訪問并使用客戶端的現有所存儲資源。作為說明性實例,如果客戶端的遠程私有計算機網絡是公司網絡,那么客戶端可使用不同的命名空間來存儲不同類型的數據,諸如以將敏感的人力資源數據存儲在第一命名空間中,將限制的軟件開發軟件和其他數據存儲在第二命名空間中,并且通過第三命名空間存儲在整個公司一般可用的其他公司數據。
如果計算服務提供方的所提供計算機網絡僅由公司的特定子集(例如,人力資源人員)使用,那么特定所提供計算機網絡的到遠程資源服務的訪問機構可被配置來使用第一命名空間獲得敏感的人力資源數據。此外,特定所提供計算機網絡可任選地具有第二訪問機構,所述第二訪問機構被配置到遠程資源服務(例如,使用所提供計算機網絡的不同的所分配虛擬網絡地址),諸如以使用第三命名空間獲得一般可用的公司數據,使得特定所提供計算機網絡的計算節點可與特定所提供計算機網絡的不同的本地虛擬網絡地址交互以獲取對不同資源群組的訪問權。
作為另一說明性實例,特定所提供計算機網絡的到遠程資源服務的訪問機構替代地可被配置來僅允許特定所提供計算機網絡的計算節點具對由那些計算節點創建并使用的存儲資源進行訪問。如果是那樣的話,計算服務提供方可諸如通過自動地生成新的命名空間(例如,在未將那個信息提供給特定所提供計算機網絡的計算節點的情況下)或通過使用由客戶端利用配置信息指示的新的命名空間來確定新的命名空間以與特定所提供計算機網絡一起使用,并且可配置訪問機構以使用新的命名空間。根據遠程資源服務,計算服務提供方或者特定所提供計算機網絡的計算節點還可能需要采取初始動作以在遠程資源服務內創建新的命名空間。一旦新的命名空間可用,特定所提供計算機網絡的計算節點可類似地使用所配置訪問機構來與遠程資源服務交互,從而創建是新的命名空間的一部分的新的所存儲資源并且訪問此類所存儲資源,并且外部通信管理器模塊370將視情況類似地修改傳出通信以使用新的命名空間。
在一些實施方案中,除了或替代被配置來實現對應于特定遠程資源服務內的特定命名空間的所配置訪問機構,外部通信管理器模塊370可被配置成包括與對通過訪問機構發送到遠程資源服務的一些或所有通信的訪問控制相關的一個或多個另外的指示符,并且發送虛擬機計算節點307a可通過那個所配置訪問機構發送這種通信。在通過公共網絡335將這種傳出通信轉發到遠程資源服務之前,模塊370可采取各種行動以反映所使用訪問機構的配置,諸如以將傳出通信修改成包括訪問機構所對應于的一個或多個另外的指示符,諸如通過以特定于遠程資源服務的方式修改通信的報頭和/或正文(例如,如果遠程資源服務允許客戶端指定一個或多個訪問控制指示符,以便以遠程資源服務所支持的方式包括一個或多個另外的指示符,不管是否替代或除了由發送虛擬機計算節點307a指定的任何指示符)。在此類情況中,模塊370可以各種方式確定訪問機構的另外的指示符,諸如通過本地存儲信息、聯系系統管理器模塊310以獲取信息等。此外,模塊370可以各種方式確定如何和何時修改通信以使用特定的另外指示符,諸如通過遠程資源服務先前將對應配置信息提供給計算服務提供方(例如,指示此類訪問控制指示符的一個或多個特定消息參數的指示;用于訪問資源的一個或多個特定消息參數的指示,其可任選地包括一個或多個此類訪問控制指示符;允許指定一個或多個此類訪問控制指示符或以其他方式使用此類訪問控制指示符的消息的類型的指示;等等)。
以與先前關于將命名空間信息用于所配置訪問機構討論的實例類似的方式,遠程資源服務可提供數據存儲服務,并且傳出通信可以是對訪問特定的存儲相關的資源(例如,以檢索所存儲數據的所存儲對象或其他群組)的請求。如果是這樣的話,特定存儲資源先前可已經由發送虛擬機計算節點307a所屬于的所提供計算機網絡的計算節點中的一個創建,或可作為當前通信的一部分被新創建或訪問。在一些實施方案中,根據遠程資源服務,計算服務提供方還可能需要采取初始行動以指定用于在遠程資源服務內使用(例如,以對它們進行限定)的一個或多個另外的指示符。發送虛擬機計算節點307a和相關聯客戶端可不知道另外的指示符的使用,但是雖然如此,外部通信管理器模塊370也將視情況修改傳出通信以使用相關聯指示符。
此外,如以上所指出,在所示實施方案中,外部通信管理器模塊370處置從所提供計算機網絡擴展到所述擴展所對應于的遠程計算機網絡的傳出通信,諸如通過到特定遠程計算機網絡的所配置VPN連接發送的傳出通信。在至少一些實施方案中,計算服務提供方提供遠程訪問建立API,所述API允許客戶端以編程方式發起對從在數據中心300遠程的位置到在數據中心300處為客戶端提供的計算機網絡的這種VPN連接的建立,諸如以使得將適當的硬件裝置、軟件和/或配置信息傳遞到遠程位置以供由客戶端建立VPN連接。例如,計算系統345b中的一個可對應于出售或以其他方式提供此類硬件裝置和/或軟件的網上零售商,并且如果是這樣的話,計算服務提供方可使用由零售商提供的單獨的API來對此類硬件裝置和/或軟件下單,以便遞送到對應于客戶端的遠程位置或其他指定位置(例如,如作為調用計算服務提供方的所提供API的一部分,由客戶端基于由計算服務提供方先前為客戶端存儲的信息、基于由零售商先前為客戶端存儲的信息等指定)。一旦建立了這種VPN連接或其他安全連接以允許客戶端遠程訪問所提供計算機網絡,模塊370就可進一步采取行動以支持安全連接,諸如通過使用安全連接來發送傳出通信,所述傳出通信的目標在于安全連接所對應于的遠程位置處的一個或多個目的地計算系統。
因此,如上文關于圖3所描述,在至少一些實施方案中,計算服務提供方通過使用底層基礎網絡(諸如使用計算服務提供方的各種節點通信管理器模塊和計算服務提供方的一個或多個外部通信管理器模塊)將虛擬計算機網絡實現為疊加網絡來將它們提供給客戶端。在至少一些實施方案中,一個或多個系統管理器模塊還可有助于配置計算節點之間的通信,諸如通過跟蹤和/或管理哪些計算節點屬于哪些所提供虛擬網絡,并且通過(例如,諸如由特定客戶或其他實體)提供關于對應于用于具體虛擬網絡的虛擬網絡地址的實際物理基礎網絡地址的信息。此外,系統管理器模塊可接收目標物理計算系統上的虛擬機計算節點的指示以及虛擬機將要與其相關聯的所提供虛擬網絡的指示,并且然后發起針對目標物理計算系統配置虛擬機節點通信管理器模塊,以便使虛擬機與虛擬網絡相關聯,或者節點通信管理器模塊替代地可發起所述配置(例如,當虛擬機首先發起或接收通信時)。
在至少一些實施方案中,對未授權通信的檢測和/或阻止可至少部分地基于一個或多個中間基礎網絡的拓撲,虛擬網絡疊加在所述拓撲上,如先前所指出。在此類實施方案中,供這種計算節點用來通過基礎網絡進行通信的物理網絡地址包括計算節點的虛擬網絡地址的指示,并且包括與計算節點的相關聯節點通信管理器模塊的位置(例如,基礎網絡的子網絡或其他部分,節點通信管理器模塊為所述子網絡或其他部分管理通信)對應的基礎網絡的局部網絡地址。因此,惡意用戶為了正確地構建用于是虛擬網絡的一部分的計算節點的有效物理網絡地址,惡意用戶將需要獲得對關于計算節點所屬于的虛擬網絡的信息的訪問權,獲得對關于計算節點的物理基礎網絡位置的拓撲的信息的訪問權,以便確定相關聯節點通信管理器模塊的局部網絡地址,并且確定如何使用那個信息來構建物理網絡地址。
可以各種方式檢查所構建物理網絡地址的有效性,諸如通過標識嵌入所構建物理網絡地址中的虛擬地址所對應于的計算節點,并且檢驗那個所標識計算節點的位置對應于基礎網絡的與局部網絡地址對應的部分中的計算節點中的一個(例如,由局部網絡地址所對應于的節點通信管理器模塊管理的計算節點中的一個)。此外,可由諸如以下各項在各個時間檢查所構建物理網絡地址的有效性:接收目標在于目的地計算節點的傳入通信(例如,以檢驗源物理網絡地址是有效的)的節點通信管理器模塊,據稱從代表所指示的受管理計算節點的節點通信管理器模塊接收消息(例如,請求所關注預期目的地計算節點的物理網絡地址的消息)的管理器模塊,等等。
圖4是示出根據本公開的示例性實施方案的在多租戶環境中運行的使用應用程序遷移服務的多個虛擬機實例的示例性系統圖。更具體地說,圖4是示出其中可使用本文描述的實施方案的一個實施方案的基于網絡的計算服務提供方400的計算系統圖。通過背景,計算服務提供方400(即,云提供方)能夠將計算和存儲能力作為服務傳遞到最終接受方(例如,租戶或客戶)的社區。
在示例性實施方案中,計算服務提供方400可由組織或代表組織為所述組織建立。也就是說,計算服務提供方400可提供“私有云環境”。在另一實施方案中,計算服務提供方400支持其中多個客戶獨立地操作的多租戶環境(即,公共云環境)。就此而言,多個客戶(例如,多個企業)可租用多租戶環境內的資源,諸如服務器計算機。
總而言之,計算服務提供方400可提供以下模型:基礎架構即服務(“IaaS”)、平臺即服務(“PaaS”)和/或軟件即服務(“SaaS”)。可提供其他模型。對于IaaS模型,計算服務提供方400可提供計算機作為物理機或虛擬機和其他資源。虛擬機可由管理程序作為客機運行,如下文進一步描述。PaaS模型傳遞計算平臺,所述計算平臺可包括操作系統、編程語言執行環境、數據庫和web服務器。應用程序開發者可在計算服務提供方平臺上開發并運行他們的軟件解決方案而無采購和管理底層硬件和軟件的成本。SaaS模塊允許應用程序軟件在計算服務提供方中安裝和運行。在一些實施方案中,終端用戶使用聯網客戶裝置(諸如運行web瀏覽器或其他輕型客戶應用程序的臺式計算機、膝上型計算機、平板、智能手機等)訪問計算服務提供方400。本領域的技術人員將認識到計算服務提供方400可描述為“云”環境。
具體示出的計算服務提供方400包括多個服務器計算機402A-402D。雖然僅示出了四個服務器計算機,但是可使用任何數目的服務器計算機,并且大的中心可包括數以千計的服務器計算機。服務器計算機402A-402D可提供用于執行軟件實例406A-406D的計算資源。在一個實施方案中,實例406A-406D是虛擬機。如本領域中已知的,虛擬機是像物理機一樣執行應用程序的機器(即,計算機)的軟件實現方式的實例。在所述實例中,服務器計算機402A-402D中的每一個可被配置來執行管理程序408或被配置成能夠在單個服務器上執行多個實例406的另一種類型的程序。例如,服務器402A-402D中的每一個可被配置(例如,通過管理程序408)來支持一個或多個虛擬機分區,其中每個虛擬機分區能夠運行一個虛擬機實例(例如,服務器計算機402A能夠被配置來支持各自運行對應虛擬機實例的三個虛擬機分區)。此外,實例406中的每一個可被配置來執行一個或多個應用程序。
在示例性實施方案中,服務器計算機402A-402D中的每一個還可包括應用程序遷移服務(AMS)(例如,440A-440D)和性能指標模塊(例如,441A-441D)。應用程序遷移服務440A-440D可具有與參考圖1描述的應用程序遷移服務140a類似的功能。此外,當應用程序遷移服務將應用程序(以及相關聯虛擬機實例)從基于企業的網絡遷移到計算服務提供方400的云網絡時,性能指標模塊441A-441D可提供對應主機(402A-402D)的性能指標以便確定VMI類型和主機服務器類型。性能指標模塊441A-441D具有與圖1中的性能指標模塊139類似的功能。
計算服務提供方400還可包括應用程序遷移服務440。應用程序遷移服務440可包括合適的電路、邏輯和/或代碼并且可以可操作來執行本文所述的功能(例如,類似于參考圖1-3描述的應用程序遷移服務140a的功能),所述功能包括使用資源監測指標、相關性信息以及私有子網信息來將應用程序從基于企業的網絡(即,私有客戶端網絡)遷移到計算服務提供方的云網絡。應用程序遷移服務440可實現為提供方400內的獨立服務、實現為專用服務器(類似于服務器402A-402D),和/或可實現為執行管理功能的服務器計算機404的一部分(或實現為單獨服務器計算機402A-402D的一部分,如上文所解釋)。例如,應用程序遷移服務440可實現為在服務器的操作系統上運行的軟件應用程序(例如,實現為管理部件410(如圖5所示)的一部分)。
應理解,盡管本文所公開的實施方案主要是在虛擬機的情境中描述的,但是其他類型的實例也可與本文所公開的概念和技術一起使用。例如,本文所公開的技術可與存儲資源、數據通信資源以及其他類型的計算資源一起使用。本文所公開的實施方案也可直接在計算機系統上執行應用程序的全部或一部分,而不利用虛擬機實例。
一個或多個服務器計算機404可專留用于執行用于管理服務器計算機402、實例406、管理程序408和/或應用程序遷移服務440的操作的軟件部件。例如,服務器計算機404可執行管理部件410。客戶可訪問管理部件410以配置客戶所購買的實例406的操作的各個方面。例如,客戶可購買、租用或租借實例并且對實例的配置做出改變。客戶還可指定關于所購買實例如何響應于需求而縮放的設置。管理部件410還可包括策略文檔(例如,圖5中的564)以實現客戶策略,諸如與應用程序遷移服務440有關的策略。
服務器計算機404還可包括存儲器452,其可由應用程序遷移服務440用作處理存儲器。自動縮放部件412可基于由客戶限定的規則縮放實例406。在一個實施方案中,自動縮放部件412允許客戶指定用于確定何時應實例化新實例的放大規則以及用于確定何時應終止現有實例的縮小規則。自動縮放部件412可由在不同服務器計算機402或其他計算裝置上執行的數個子部件組成。自動縮放部件412可通過內部管理網絡監測可用計算資源并且基于需要修改可用資源。
部署部件414可用于幫助客戶部署計算資源的新實例406。部署部件可訪問與實例相關聯的賬戶信息,諸如誰是賬戶的所有者、信用卡信息、所有者的國家等。部署部件414可接收來自客戶的配置,所述配置包括描述應如何配置新實例406的數據。例如,所述配置可以:指定將要在新實例406中安裝的一個或多個應用程序,提供將要被執行用于配置新實例406的腳本和/或其他類型的代碼,提供指定應如何準備應用程序高速緩存的高速緩存邏輯以及其他類型的信息。部署部件414可以利用客戶提供的配置和高速緩存邏輯來配置、預先準備和啟動新實例406。所述配置、高速緩存邏輯和其他信息可由客戶使用管理部件410來指定或通過直接將此信息提供給部署部件414來指定。實例管理器(例如,圖5中的550)可被認為是部署部件414的一部分。
客戶賬戶信息415可包括與多租戶環境的客戶相關聯的任何期望的信息。例如,客戶賬戶信息可包括客戶的唯一標識符、客戶地址、帳單信息、許可信息、用于啟動實例的自定義參數、調度信息、自動縮放參數、用于訪問賬戶的先前IP地址等。
網絡430可用于互連服務器計算機402A-402D和服務器計算機404。網絡430可以是局域網(LAN)并且可連接到廣域網(WAN)440,使得終端用戶可訪問計算服務提供方400。應理解,圖4中示出的網絡拓撲已簡化,并且可利用更多的網絡和聯網裝置來互連本文所公開的各種計算系統。
圖5示出根據一個實施方案的包括與控制平面相關聯的多個管理部件的示例性系統的其他細節,所述多個管理部件可用于遷移一個或多個虛擬機實例。更具體地說,圖5更詳細地示出管理部件410,所述管理部件410可在計算服務提供方400的多租戶環境內實現不連續的遷移服務120。
為了訪問和利用實例(諸如圖4的實例406),可使用客戶裝置。客戶裝置510可以是多種計算裝置、移動裝置或其他裝置(包括蜂窩電話、智能手機、手持式計算機、個人數字助理(PDA)、臺式計算機等)中的任一種。客戶裝置510可通過端點512與計算服務提供方400通信,所述端點512可以是被設計來接收并處理應用程序接口(API)請求的DNS地址。具體地說,端點512可以是被配置來暴露API的web服務器。使用API請求(例如,圖1中的190),客戶裝置510可請求實現本文所述的任何功能(例如,請求用于遷移應用程序的相關性信息155、資源監測指標160和私有子網信息150,如參考圖1所描述)。可以在計算服務提供方400內部的其他服務515可同樣地向端點512做出API請求。例如,客戶裝置510可使用API請求(例如,圖1中的190)來傳達與遷移應用程序相關聯的客戶請求(例如,客戶可響應于來自計算服務提供方的推薦,確認對用于選擇VMI目的的VMI類型和主機服務器類型以及用于遷移應用程序的主機的推薦;客戶還可提供他們自己對用于遷移的VMI和主機的具體類型的選擇)。來自客戶端114的API請求(例如,190)可通過準入控制514并且到達應用程序遷移服務440上以便訪問策略文檔564和/或請求遷移相關的服務。管理門戶566可由客戶或計算服務提供方300的管理員訪問和改變策略文檔564。
當將應用程序從基于企業的網絡遷移到計算服務提供方時,策略文檔564可指定例如與選擇VMI類型和服務器計算機類型相關的一個或多個策略。更具體地說,策略文檔564可指定一個或多個VMI類型和一個或多個服務器架構類型(例如,基于存儲器、CPU速度、磁盤空間等),并且可提供對VMI類型和服務器架構類型兩者的推薦,這可基于資源監測度量與可用主機服務器和VMI的性能度量的匹配自動地選擇。
可能包括在或可能未包括在計算服務提供方400中(和/或管理部件410內)的其他一般管理服務包括準入控制514,例如,一起作為準入控制web服務操作的一個或多個計算機。準入控制514可對API請求進行認證、檢驗和拆包以用于計算服務提供方400內的數據服務或存儲。容量跟蹤器516負責根據容量的預測、預配置以及實時配置和分配確定服務器需要如何被配置以便通過管理并配置實際庫存來滿足對不同實例類型的需要。容量跟蹤器516將可用庫存的池保持在容量池數據庫518中。容量跟蹤器516還可監測容量水平,從而知道資源是容易獲得的還是有限的。
實例管理器550控制網絡中的虛擬機實例的啟動和終止。當接收到指令(諸如通過API請求)以啟動實例時,實例管理器550從容量池518拉取資源并且在所決定主機服務器計算機上啟動實例。存儲管理器522和網絡資源管理器524與實例管理器類似。存儲管理器522與存儲卷的起動和終止有關,而網絡資源管理器524與路由器、交換器、子網等的起動和終止有關。分區網絡540關于圖6得到進一步描述,并且包括實例在其上啟動的物理層。
應用程序遷移服務440可執行本文描述(例如,如參考140a和/或140b所描述)的遷移相關的功能。應用程序遷移服務440可與容量跟蹤器516通信以接收關于可用于遷移和啟動實例(或客戶實體所請求的其他網絡資源)的可用分區和/或主機服務器的信息。此外,與準入控制514的通信可用于啟動所遷移實例,并且與分區網絡540的通信可用于執行影響多個分區的遷移相關的功能(例如,遷移在一個或多個服務器計算機上運行的多個VMI)。
圖6示出可根據本公開的一個實施方案配置的多個主機計算機、路由器和交換器的實例,所述多個主機計算機、路由器和交換器是用于運行虛擬機實例的硬件資產,其中主機計算機具有應用程序遷移相關的功能。更具體地說,圖6示出分區網絡640和與其相關聯的物理硬件。分區網絡640可包括由路由器(諸如路由器616)聯接在一起的多個數據中心(諸如數據中心610a、…、610n)。
路由器616讀取所接收包中的地址信息并且確定包的目的地。如果路由器判定不同的數據中心包含主機服務器計算機,那么包被轉發到那個數據中心。如果包被定址到數據中心610a中的主機,那么所述包被傳遞到網絡地址轉換器(NAT)618,其將包的公共IP地址變換成私有IP地址。NAT 618還將私有地址轉換成綁定在數據中心610a的外部的公共地址。另外的路由器620可聯接到NAT 618以將包路由到主機服務器計算機的一個或多個機架630。每個機架630可包括聯接到多個主機服務器計算機的一個交換器632。具體的主機服務器計算機在641處的放大視圖中示出。
每個主機641具有底層硬件650,其可包括網絡接口卡、一個或多個CPU、存儲器等(未在圖6中示出)。管理程序或內核層660在硬件650上方運行層。管理程序或內核層660可分類為1型或2型管理程序。1型管理程序直接在主機硬件650上運行以控制硬件并且管理客機操作系統。2型管理程序在常規的操作系統環境內運行。因此,在2型環境中,管理程序可以是在操作系統上方運行的相異層,并且操作系統與系統硬件交互。不同類型的管理程序包括Xen-基礎、Hyper-V、ESXi/ESX、Linux等,但也可使用其他管理程序。
管理層670可以是管理程序的一部分或與其分離,并且通常包括訪問硬件650所需的裝置驅動器。分區680是由管理程序隔離的邏輯單元。每個分區680可被分配其自己的硬件層內存、CPU分配、存儲等的部分。此外,每個分區可包括虛擬機和其自己的主機操作系統(例如,VMI1可在分區1上運行并且VMIn可在分區n上運行)。這樣,每個分區680是被設計來獨立于其他分區支持其自己的虛擬機的抽象容量部分。
此外,當虛擬機實例(例如,VMI1)被遷移時(例如,從計算系統345a的客戶端私有網絡340內的主機服務器390遷移到計算服務提供方的數據中心300中的主機服務器305b),新啟動的VMI1將與跟計算系統345a的先前VMI1所使用相同的公共和私有IP地址相關聯。這在NAT 618的放大視圖643處示出。如在643處所見,即使在應用程序/VMI遷移之后在數據中心610a中啟動的每個VMI(或在數據中心610a中運行VMI的每個服務器)與跟所遷移的基于企業的網絡VMI的公共/私有IP地址相同的公共IP地址(IP1、…、IPn)和私有IP地址(PIP1、…、PIPn)相關聯。此外,路由信息(即,用于托管VMI的特定服務器計算機的路由信息)也可保持不同(例如,路由信息“路由1”與VMI1相關聯并且路由信息“路由n”與VMIn相關聯)。
圖7是根據本公開實施方案的將應用程序從基于企業的網絡遷移到計算服務提供方的多租戶網絡的示例性方法的流程圖。參考圖1-3和圖7,示例性方法700可在702處開始,此時,在基于企業的網絡內接收到遷移在第一虛擬機實例上運行的應用程序的請求。例如,用戶可使用接口122指定應用程序名稱(例如,應用程序185的名稱)并且可通過激活軟件按鈕122b來發起遷移。
在704處,可通過標識基于企業的網絡內的至少第二虛擬機實例來確定應用程序的相關性,所述至少第二虛擬機實例與應用程序相關聯。例如,應用程序遷移服務140a可使用API請求190中的一個來獲取相關性信息155。相關性信息155可標識被選擇來遷移的應用程序(例如,185)、所述應用程序在其上運行的VMI(例如,180a)以及應用程序185所使用或依賴于的一個或多個另外的VMI(例如,VMI180b-180c)。
在706處,可接收與由第一虛擬機實例和至少第二虛擬機實例使用的硬件資源相關聯的資源監測指標。例如,應用程序遷移服務140a可使用API請求190中的一個來獲取資源監測指標160,其提供關于由VMI 180a-180c對主機服務器計算資源(即,與托管VMI 180a-180c的主機服務器175a相關聯的計算資源)的使用的信息。在708處,可基于資源監測指標針對至少第一虛擬機實例和第二虛擬機實例中的每一個確定多租戶網絡處的服務器計算機類型和虛擬機實例類型。
例如,在獲取相關性信息155和資源監測指標160之后,應用程序遷移服務140a可使資源監測指標160中的一個或多個與主機服務器105a(或剩余主機服務器105a、…、105n中的任一個)的性能指標139匹配,以選擇或以其他方式確定(例如,從策略文檔,諸如564)計算服務環境100內的虛擬機實例類型(用于遷移VMI 180a-180c)和主機服務器計算機類型來托管來自客戶端私有網絡170的所遷移VMI(與所遷移應用程序)。性能指標139可包括主機服務器計算機105a(或剩余主機服務器105a、…、105n中的任一個)的CPU速度、存儲器容量、存儲容量、網卡特性(例如,速度)、視頻卡特性(例如,分辨率和視頻處理速度)、磁盤I/O速度等中的一個或多個。
在710處,可將第一虛擬機實例和至少第二虛擬機實例從基于企業的網絡遷移到所確定虛擬機實例類型的至少一個虛擬機實例。例如,可將VMI 180a-180c從客戶端私有網絡170遷移到計算服務環境100。更具體地說,至少一種文件打包格式(例如,OVF)可用于包裝VMI180a-180c,將它們遷移到計算服務環境100,然后在所選擇VMI類型的并且由所選擇主機服務器計算機類型的主機服務器托管的VMI上啟動它們,如由主機/VMI類型選擇141b所指示。所遷移VMI180a-180c可傳輸到由所選擇主機服務器計算機中的一個或多個托管的所選擇VMI(即,VMI傳遞141c)并在其上啟動。
第一虛擬機實例(例如,180a)可從基于企業的網絡(170)遷移到計算服務環境100處的所確定虛擬機實例類型的至少第一虛擬機實例(例如,130a、…、130n中的一個)。至少第二虛擬機實例(180b-180c)可從基于企業的網絡(170)遷移到所確定虛擬機實例類型的至少第二虛擬機實例,至少第一虛擬機實例和至少第二虛擬機實例由多租戶網絡(100)內的服務器計算機(105a)托管。
基于企業的網絡(170)可包括私有網絡。應用程序遷移服務140a可確定第一虛擬機實例(180a)和至少第二虛擬機實例(180b-180c)是否在私有網絡的子網絡中。如果第一虛擬機實例(180a)和至少第二虛擬機實例(180b-180c)在私有網絡的單個子網絡(245)中,那么應用程序遷移服務140a可針對運行所遷移應用程序的至少一個虛擬機實例(VMI1)在多租戶網絡(205)內創建子網絡(250)。
應用程序遷移服務140a可確定基于企業的網絡中托管第一虛擬機實例(180a)和至少第二虛擬機實例(180b-180c)的至少一個主機服務器計算機(175a)的名稱和IP地址。應用程序遷移服務140a可將名稱和IP地址分配給多租戶網絡內的所述服務器計算機類型的服務器計算機(例如,105a),所述名稱和IP地址與跟基于企業的網絡(170)中的至少一個主機服務器計算機(例如,175a)相關聯的名稱和IP地址相同。
圖8是根據本公開實施方案的將應用程序從基于企業的網絡遷移到計算服務提供方的多租戶網絡的另一示例性方法的流程圖。參考圖1-3和圖8,示例性方法800可在802處開始,此時,可在多租戶網絡處接收到與由基于企業的網絡處的服務器計算機托管的至少一個應用程序對計算資源的使用相關聯的資源監測指標。例如,應用程序遷移服務140a可使用API請求190中的一個來獲取資源監測指標160,其提供關于由與應用程序185相關聯的VMI 180a-180c對主機服務器計算資源(即,與托管VMI 180a-180c的主機服務器175a相關聯的計算資源,所述資源由應用程序185使用)的使用的信息。
在804處,可至少部分地基于資源監測指標來選擇由計算服務提供方的多租戶網絡內的服務器計算機托管的虛擬機實例的虛擬機實例類型。例如,在獲取相關性信息155和資源監測指標160之后,應用程序遷移服務140a可使資源監測指標160中的一個或多個與主機服務器105a(或剩余主機服務器105a、…、105n中的任一個)的性能指標139匹配,以選擇或以其他方式確定(例如,從策略文檔,諸如564)計算服務環境100內的虛擬機實例類型(用于遷移VMI 180a-180c)和主機服務器計算機類型來托管來自客戶端私有網絡170的所遷移VMI(與所遷移應用程序)。性能指標139可包括用于主機服務器計算機105a(或剩余主機服務器105a、…、105n中的任一個)的CPU速度、存儲器容量、存儲裝置容量、網卡特性(例如,速度)、視頻卡特性(例如,分辨率和視頻處理速度)、磁盤I/O速度等。
在806處,可將至少一個應用程序從基于企業的網絡遷移到由多租戶網絡內的服務器計算機托管的虛擬機實例。例如,可將VMI180a-180c從客戶端私有網絡170遷移到計算服務環境100。更具體地說,至少一種文件打包格式(例如,OVF)可用于包裝VMI 180a-180c,將它們遷移到計算服務環境100,然后在所選擇VMI類型的并且由所選擇主機服務器計算機類型的主機服務器托管的VMI上啟動它們,如由主機/VMI類型選擇141b所指示。所遷移VMI 180a-180c可傳輸到由所選擇主機服務器計算機中的一個或多個托管的所選擇VMI(即,VMI傳遞141c)并在其上啟動。
圖9是根據本公開實施方案的將應用程序從基于企業的網絡遷移到計算服務提供方的多租戶網絡的又一示例性方法的流程圖。參考圖1-3和圖9,示例性方法900可在902處開始,此時,響應于接收對遷移托管在基于企業的網絡內的第一虛擬機實例上的應用程序的請求,可確定基于企業的網絡內托管應用程序的至少第二虛擬機實例。例如,應用程序遷移服務140a可使用API請求190中的一個來獲取相關性信息155。相關性信息155可標識應用程序185在其上運行的虛擬機(即,VMI 180a)以及應用程序185可使用(或依賴于)的任何其他VMI(即,VMI 180b-180c)。
在904處,可將由應用程序對基于企業的網絡中的計算資源的使用映射到與多租戶網絡內的計算資源相關聯的性能指標。在906處,可至少部分地基于映射來在多租戶網絡內選擇虛擬機實例類型和服務器計算機類型。例如,在獲取相關性信息155和資源監測指標160之后,應用程序遷移服務140a可將資源監測指標160中的一個或多個映射到主機服務器105a(或剩余主機服務器105a、…、105n中的任一個)的性能指標139,以選擇計算服務環境100內的虛擬機實例類型(用于遷移VMI 180a-180c)和主機服務器計算機類型來托管來自客戶端私有網絡170的所遷移VMI(與所遷移應用程序)。性能指標139可包括用于主機服務器計算機105a(或剩余主機服務器105a、…、105n中的任一個)的CPU速度、存儲器容量、存儲裝置容量、網卡特性(例如,速度)、視頻卡特性(例如,分辨率和視頻處理速度)、磁盤I/O速度等。
在908處,可將第一虛擬機實例從基于企業的網絡遷移到所選擇虛擬機實例類型的并且由多租戶網絡內的所選擇服務器計算機類型的服務器計算機托管的第一虛擬機實例,從而將應用程序從基于企業的網絡遷移到多租戶網絡。例如,可將VMI 180a-180c從客戶端私有網絡170遷移到計算服務環境100。更具體地說,至少一種文件打包格式(例如,OVF)可用于包裝VMI 180a-180c,將它們遷移到計算服務環境100,然后在所選擇VMI類型的并且由所選擇主機服務器計算機類型的主機服務器托管的VMI上啟動它們,如由主機/VMI類型選擇141b所指示。所遷移VMI 180a-180c可傳輸到由所選擇主機服務器計算機中的一個或多個托管的所選擇VMI(即,VMI傳遞141c)并在其上啟動。
根據本公開的示例性實施方案并且參考圖7-9中描述的任何方法,在主機/VMI類型選擇(141b)和VMI傳遞(141c)之前,作為初始步驟,應用程序遷移服務140a可執行VPC和子網創建和分配(141a)。
可鑒于以下條款對本公開的各個實施方案進行描述:
1.一種將應用程序從基于企業的網絡遷移到計算服務提供方的多租戶網絡的方法,所述方法包括:
接收對遷移在所述基于企業的網絡內的第一虛擬機實例上運行的應用程序的請求;
通過標識所述基于企業的網絡內的至少第二虛擬機實例來確定所述應用程序的相關性,所述至少第二虛擬機實例與所述應用程序相關聯;
接收與由所述第一虛擬機實例和所述至少第二虛擬機實例使用的硬件資源相關聯的資源監測指標,所述硬件資源與托管所述第一虛擬機實例和所述至少第二虛擬機實例的至少一個主機服務器計算機相關聯;
基于所述資源監測指標針對至少所述第一虛擬機實例和所述第二虛擬機實例中的每一個確定所述多租戶網絡處的服務器計算機類型和虛擬機實例類型;以及
將所述第一虛擬機實例和所述至少第二虛擬機實例從所述基于企業的網絡遷移到所確定虛擬機實例類型的至少一個虛擬機實例,從而將所述應用程序從所述基于企業的網絡遷移到所述多租戶網絡,所述至少一個虛擬機實例由所述多租戶網絡內的所確定服務器計算機類型的服務器計算機托管。
2.根據條款1所述的方法,其中所述遷移包括:
將所述第一虛擬機實例從所述基于企業的網絡遷移到所確定虛擬機實例類型的至少第一虛擬機實例;以及
將所述至少第二虛擬機實例從所述基于企業的網絡遷移到所確定虛擬機實例類型的至少第二虛擬機實例,所述至少第一虛擬機實例和所述至少第二虛擬機實例由所述多租戶網絡內的所述服務器計算機托管。
3.根據條款1所述的方法,其中所述基于企業的網絡包括私有網絡并且所述方法還包括:
確定所述第一虛擬機實例和所述至少第二虛擬機實例是在所述私有網絡的單個子網絡中還是分開的子網絡中。
4.根據條款3所述的方法,其包括:
當所述第一虛擬機實例和所述至少第二虛擬機實例在所述私有網絡的單個子網絡中時,針對運行所遷移應用程序的所述至少一個虛擬機實例在所述多租戶網絡內創建子網絡;以及
當所述第一虛擬機實例和所述至少第二虛擬機實例在所述私有網絡的分開的子網絡中時,在所述多租戶網絡中創建至少第一子網絡和第二子網絡,所述第一子網絡用于托管所確定虛擬機實例類型的至少第一虛擬機實例,并且所述第二子網絡用于托管所確定虛擬機實例類型的至少第二虛擬機實例。
5.根據條款1所述的方法,其包括:
確定所述基于企業的網絡中托管所述第一虛擬機實例和所述至少第二虛擬機實例的所述至少一個主機服務器計算機的名稱和IP地址。
6.根據條款5所述的方法,其包括:
將名稱和IP地址分配給所述多租戶網絡內的所述服務器計算機類型的所述服務器計算機,所述名稱和所述IP地址與跟所述基于企業的網絡中的所述至少一個主機服務器計算機相關聯的名稱和IP地址相同。
7.一種在其上包括指令的計算機可讀存儲裝置,所述指令用于執行將應用程序從基于企業的網絡遷移到計算服務提供方的多租戶網絡的方法,所述方法包括:
在所述多租戶網絡處接收與由所述基于企業的網絡處的服務器計算機托管的至少一個應用程序對計算資源的使用相關聯的資源監測指標;
選擇由所述計算服務提供方的所述多租戶網絡內的服務器計算機托管的虛擬機實例的虛擬機實例類型,所述選擇至少部分地基于所述資源監測指標;以及
將所述至少一個應用程序從所述基于企業的網絡遷移到由所述多租戶網絡內的所述服務器計算機托管的所述虛擬機實例。
8.如條款7所述的計算機可讀存儲裝置,其中所述選擇包括使所述資源監測指標與跟所述多租戶網絡內的所述服務器計算機相關聯的性能指標匹配。
9.如條款8所述的計算機可讀存儲裝置,其中:
所述資源監測指標包括所述至少一個應用程序對所述基于企業的網絡中的CPU、存儲器和磁盤I/O的實際使用;并且
所述性能指標包括所述多租戶環境中的所述服務器計算機的CPU速度、存儲器容量和磁盤I/O速度。
10.如條款7所述的計算機可讀存儲裝置,其還包括:
從所述基于企業的網絡內的遷移服務獲得相關性信息,所述相關性信息標識與所述應用程序相關聯并且在所述基于企業的網絡中運行的一個或多個虛擬機實例。
11.如條款10所述的計算機可讀存儲裝置,其中所述遷移所述至少一個應用程序還包括:
將所述一個或多個虛擬機實例從所述基于企業的網絡遷移到由所述多租戶網絡內的所述服務器計算機托管的對應的一個或多個虛擬機實例,其中所述遷移包括將所述一個或多個虛擬機實例從與所述基于企業的網絡兼容的虛擬機實例格式變換成與所述多租戶網絡兼容并且使用與所述多租戶網絡兼容的至少一個驅動器的虛擬機實例格式。
12.如條款7所述的計算機可讀存儲裝置,其中所述選擇由所述多租戶網絡內的所述服務器計算機托管的所述虛擬機實例的所述虛擬機實例類型自動地發生并且無需用戶干預。
13.如條款7所述的計算機可讀存儲裝置,其還包括:
提供對所述虛擬機實例類型和所述多租戶網絡內的所述服務器計算機的服務器計算機類型中的一個或兩個的至少一個推薦;以及
響應于所述至少一個推薦,接收對所述虛擬機實例類型和所述服務器計算機的所述服務器計算機類型的選擇。
14.如條款7所述的計算機可讀存儲裝置,其還包括:
響應于對來自所述多租戶網絡的信息的API請求,接收所述資源監測指標。
15.如條款14所述的計算機可讀存儲裝置,其還包括:
響應于所述API請求,接收標識與由所述基于企業的網絡處的所述至少一個應用程序使用的所述計算資源相關聯的至少一個私有網絡的信息,其中所述計算資源由主機名稱和主機IP地址標識。
16.如條款15所述的計算機可讀存儲裝置,其還包括:
針對所述多租戶網絡內的所述服務器計算機創建私有網絡;以及
分配所述多租戶網絡內的所述服務器計算機的名稱和IP地址,所述名稱和所述IP地址與所述基于企業的網絡處的所述計算資源的所述名稱和所述IP地址相同。
17.一種用于將應用程序從基于企業的網絡遷移到計算服務提供方的多租戶網絡的系統,所述系統包括:
多個主機服務器計算機,其聯接在一起以形成所述多租戶網絡,所述主機服務器計算機的至少一部分用于執行與客戶賬戶相關聯的多個虛擬機;以及
應用程序遷移服務,其可操作來:
響應于接收對遷移托管在所述基于企業的網絡內的第一虛擬機實例上的應用程序的請求,確定所述基于企業的網絡內托管所述應用程序的至少第二虛擬機實例;
將由所述應用程序對所述基于企業的網絡中的計算資源的使用映射到與所述多租戶網絡內的計算資源相關聯的性能指標;
至少部分地基于所述映射,在所述多租戶網絡內選擇虛擬機實例類型和服務器計算機類型;以及
將所述第一虛擬機實例從所述基于企業的網絡遷移到所選擇虛擬機實例類型的并且由所述多租戶網絡內的所選擇服務器計算機類型的服務器計算機托管的第一虛擬機實例,從而將所述應用程序從所述基于企業的網絡遷移到所述多租戶網絡。
18.根據條款17所述的系統,其中所述應用程序遷移服務可操作來:
將所述至少第二虛擬機實例從所述基于企業的網絡遷移到所選擇虛擬機實例類型的并且由所述多租戶網絡內的所選擇服務器計算機類型的所述服務器計算機托管的至少第二虛擬機實例。
19.根據條款17所述的系統,其中所述應用程序遷移服務可操作來:
在所述多租戶網絡處接收指示由所述基于企業的網絡中的所述應用程序對計算資源的所述使用的資源監測指標。
20.根據條款17所述的系統,其中所述應用程序遷移服務可操作來:
響應于API請求,接收指示與所述基于企業的網絡中托管所述第一虛擬機實例和所述至少第二虛擬機實例的至少一個服務器計算機相關聯的私有子網絡的信息;
在所述多租戶網絡處創建虛擬私有網絡;并且
在所述虛擬私有網絡內啟動用于所述服務器計算機的私有子網絡。
圖10描繪其中可實現所描述的創新的合適計算環境1000的一般化實例。計算環境1000并不意在對使用范圍或功能提出任何限制,因為創新可在不同的通用或專用計算系統中實現。例如,計算環境1000可以是多種計算裝置中的任一種(例如,臺式計算機、膝上型計算機、服務器計算機、平板計算機等)。
參考圖10,計算環境1000包括一個或多個處理單元1010、1015和存儲器1020、1025。在圖10中,這種基本配置1030被包括在虛線內。處理單元1010、1015執行計算機可執行指令。處理單元可以是通用中央處理單元(CPU)、專用集成電路(ASIC)中的處理器或任何其他類型的處理器。在多處理系統中,多個處理單元執行計算機可執行指令以提高處理能力。例如,圖10示出中央處理單元1010以及圖形處理單元或協處理單元1015。有形存儲器1020、1025可以是易失性存儲器(例如,寄存器、高速緩存、RAM)、非易失性存儲器(例如,ROM、EEPROM、閃存等)或這兩種存儲器的可由處理單元訪問的一些組合。存儲器1020、1025以適用于由處理單元執行的計算機可執行指令的形式存儲實現本文所述的一個或多個創新的軟件1080。
計算系統可具有另外的特征。例如,計算環境1000包括存儲裝置1040、一個或多個輸入裝置1050、一個或多個輸出裝置1060以及一個或多個通信連接1070。諸如總線、控制器或網絡互連的互連機構(未示出)將計算環境1000的部件互連起來。通常,操作系統軟件(未示出)為在計算環境1000中執行的其他軟件提供操作環境,并且協調計算環境1000的部件的活動。
有形存儲裝置1040可以是可移動或不可移動的,并且包括磁盤、磁帶或盒式磁帶、CD-ROM、DVD或任何其他介質,它們可用于以非暫時性方式存儲信息并且可在計算環境1000內被訪問。存儲裝置1040存儲實現本文所述的一個或多個創新的軟件1080的指令。
輸入裝置1050可以是觸摸輸入裝置(諸如鍵盤、鼠標、筆或跟蹤球)、語音輸入裝置、掃描裝置或向計算環境1000提供輸入的另一種裝置。輸出裝置1060可以是顯示器、打印機、揚聲器、CD刻錄機或提供來自計算環境1000的輸出的另一種裝置。
通信連接1070允許通過通信介質與另一計算實體通信。通信介質在已調制數據信號中傳達信息,諸如計算機可執行指令、音頻或視頻輸入或輸出或其他信息。已調制數據信號是一種信號,所述信號使得其一個或多個特性被設定或改變,其方式為使得對信號中的信息進行編碼。以舉例而非限制的方式,通信介質可使用電、光、RF或其他載體。
盡管為了便于呈現而以特定的順序次序描述了所公開方法中的一些的操作,但應理解,這種描述方式包括重排,除非下文陳述的特定語言要求特定排序。例如,順序地描述的操作在某些情況下可重排或同時執行。此外,為了簡單起見,附圖可不示出所公開方法可與其他方法結合使用的各種方式。
任何所公開方法可實現為存儲在一個或多個計算機可讀存儲介質(例如,一個或多個光學介質光盤、易失性存儲器部件(諸如DRAM或SRAM)或非易失性存儲器部件(諸如閃存或硬盤驅動器))上并且在計算機(例如,任何可商購獲得的計算機,包括智能電話或包括計算硬件的他移動裝置)上執行的計算機可執行指令。術語計算機可讀存儲介質不包括通信連接,諸如信號和載波。用于實現所公開技術的任何計算機可執行指令以及在所公開實施方案的實現期間創建和使用的任何數據可存儲在一個或多個計算機可讀存儲介質上。計算機可執行指令可以是例如專用軟件應用程序或通過web瀏覽器訪問或下載的軟件應用程序或其他軟件應用程序(諸如遠程計算應用程序)的一部分。此類軟件可使用一個或多個網絡計算機例如在單個本地計算機(例如,任何合適的可商購獲得的計算機)上或在網絡環境(例如,通過互聯網、廣域網、局域網、客戶-服務器網絡(諸如云計算網絡)或其他此類網絡)中執行。
為了清楚起見,僅描述了基于軟件的具體實施的某些選定方面。省略了本領域中眾所周知的其他細節。例如,應理解,所公開技術不限于任何特定計算機語言或程序。例如,所公開技術可由以C++、Java、Perl、JavaScript、Adobe Flash或任何其他合適的編程語言寫入的軟件來實現。類似地,所公開技術不限于任何特定計算機或硬件類型。合適的計算機和硬件的某些細節是眾所周知的并且不需要在本公開中進行詳細陳述。
還應很好地理解,可至少部分地由一個或多個硬件邏輯部件替代軟件來執行本文所述的任何功能。例如而非進行限制,可使用的說明性類型的硬件邏輯部件包括現場可編程門陣列(FPGA)、程序特定集成電路(ASIC)、程序特定標準產品(ASSP)、片上系統的系統(SOC)、復雜可編程邏輯裝置(CPLD)等。
此外,可通過合適的通信手段上傳、下載或遠程訪問任何基于軟件的實施方案(包括,例如,用于致使計算機執行任何所公開方法的計算機可執行指令)。此類合適的通信手段包括例如互聯網、萬維網、內聯網、軟件應用程序、電纜(包括光纖電纜)、磁通信、電磁通信(包括RF、微波和紅外通信)、電子通信或其他此類通信手段。
所公開的方法、設備和系統不應以任何方式理解為是限制性的。相反,本公開涉及單獨地以及彼此間呈各種組合和子組合的各種所公開實施方案的所有新穎且非顯而易見的特征和方面。所公開的方法、設備和系統不限于任何特定的方面或特征或其組合,所公開的實施方案也不要求呈現任何一個或多個特定的優點或解決問題。
鑒于所公開發明的原理可應用于的許多可能實施方案,應認識到,所示實施方案僅僅是本發明的優選實例并且不應被認為是對本發明的范圍進行限制。相反,本發明的范圍是由所附權利要求書限定。因此,我們要求落入這些權利要求范圍內的所有內容都是我們的發明。