本公開內(nèi)容的方面涉及計算硬件和軟件技術,并且具體地涉及對服務升級動態(tài)調整步調。
背景技術:
軟件應用和解決方案越來越多地被交付為來自數(shù)據(jù)中心和俗稱為云的其他遠程計算環(huán)境的服務。將軟件部署在云中允許組織容易地擴大或縮小以適應需求。軟件解決方案有時經(jīng)由由軟件供應商托管的公共云被交付,但是也可以經(jīng)由私有云或以某種混合方式來被交付。
升級這樣的軟件解決方案可以是具有挑戰(zhàn)性的工作,尤其是當考慮許多部署的規(guī)模時。當軟件部署臨時被關閉以適應更新時可能發(fā)生大量的故障時間和損失的生產(chǎn)力。另外,租戶可能已經(jīng)對其給定軟件解決方案的部署做出的定制可能通過升級而被丟失或導致無效。
以一定規(guī)模操作的許多軟件提供者不向它們的客戶給予對何時升級給定軟件解決方案的控制。例如,一些基于云的電子郵件解決方案常規(guī)地從一個版本被自動地升級到下一版本,而不允許客戶控制如何或何時應用升級。
各種升級技術已經(jīng)嘗試緩解這些挑戰(zhàn)。在一個示例中,當服務部署被調度為要被升級時,租戶可以被提前通知并且可以因此準備測試??梢韵蚱洳渴疖浖纳壈姹镜臏y試環(huán)境可以被創(chuàng)建。租戶數(shù)據(jù)可以被移植到測試環(huán)境中并且向選定的人員群體提供訪問使得能夠針對各種租戶情景和定制來測試軟件的新的特征和功能。一旦對新的軟件給予批準,則測試環(huán)境被拆除并且完全新的構建被啟動,伴隨租戶的數(shù)據(jù)被并入到其中。
在簡單的示例中,協(xié)作軟件服務的租戶部署可以跨物理或虛擬服務器群而被實例化。當升級可用時,租戶可以啟動向其部署協(xié)作服務的升級版本的另一服務器群(通常為虛擬的)。一旦升級被租戶測試和批準,則服務器群就被拆除,新的服務器群被創(chuàng)建,并且協(xié)作服務被部署到新的服務器群。
技術實現(xiàn)要素:
本文中提供的是用于增強關于軟件服務部署的升級過程的系統(tǒng)、方法和軟件。本文中描述的各種實現(xiàn)方式使得租戶能夠控制他們的升級進行的步調。
在至少一個實現(xiàn)方式中,呈現(xiàn)了到用于管理軟件服務的初始部署的管理端口的用戶接口并且在其中顯現(xiàn)升級可用的通知。響應于對用戶接口中的通知的選擇,在用戶接口中顯現(xiàn)用于控制關于初始部署的服務組件的升級的步調的升級控件。至少部分地基于經(jīng)由升級控件指定的升級的步調來將升級遞增地應用到服務組件。
提供本概述從而以簡化的形式介紹下面在具體實施方式中進一步描述的一系列概念。可以理解,本概述不旨在標識要求保護的主題的關鍵特征或必要特征,也不旨在用于限制要求保護的主題的范圍。
附圖說明
可以參考以下附圖更好地理解本公開內(nèi)容的許多方面。盡管結合這些附圖描述了若干實現(xiàn)方式,但是本公開內(nèi)容不限于本文中公開的實現(xiàn)方式。相反,意圖是要涵蓋所有備選方案、修改和等效方案。
圖1圖示了實現(xiàn)方式中的服務體系結構。
圖2圖示了實現(xiàn)方式中的升級過程。
圖3圖示了實現(xiàn)方式中的操作情景。
圖4圖示了實現(xiàn)方式中的升級的初始階段。
圖5圖示了實現(xiàn)方式中的升級的中間階段。
圖6圖示了實現(xiàn)方式中的升級的最終階段。
圖7圖示了實現(xiàn)方式中的升級的初始階段。
圖8圖示了實現(xiàn)方式中的升級的最終階段。
圖9圖示了適合于實現(xiàn)本文中關于圖1-9所公開的并且在下面的具體實施方式中討論的應用、服務、過程、體系結構、階段和操作情景中的任一項的計算系統(tǒng)。
具體實施方式
本文中所公開的實現(xiàn)方式實現(xiàn)對軟件服務部署的升級的自定步調。在本文中描述的各種實現(xiàn)方式中,管理人員可以與管理端口交互以控制何時進行對軟件服務的租戶部署的升級。
除了控制升級的步調之外,租戶可以在每個組件的基礎上增量地推進升級。租戶可以在服務組件水平處指定要升級租戶部署的哪些部分以及何時升級,而不是必須將升級部署的完整構建一次全部鋪開。
可以通過當升級正在進行中時允許租戶人員在部署之間巡覽的靈活服務標識符來提供對升級部署的訪問。取決于租戶的滿意水平,升級可以被方便地超前或回滾。一旦升級被完成和批準,則在評價階段期間移植的測試數(shù)據(jù)或其他數(shù)據(jù)可以被保留在升級部署中。
在至少一個實現(xiàn)方式中,一種用于對軟件服務部署的升級動態(tài)調整步調的方法包括,在到用于管理軟件服務的初始部署的管理端口的用戶接口中顯現(xiàn)升級可用于初始部署的通知。響應于對用戶接口中的通知的選擇,在用戶接口中呈現(xiàn)用于控制關于初始部署的服務組件的升級的步調的升級控件??梢灾辽俨糠值鼗诮?jīng)由升級控件指定的升級的步調來將升級遞增地應用到服務組件。
在一些實施方式中,可以啟動軟件服務的升級部署,其中當由升級的步調指定時服務組件中的每個服務組件可以被加載。在適當?shù)那闆r下升級還可以被應用到每個服務組件。
對軟件服務的初始部署的訪問可以通過解析為初始部署的服務標識符的方式被提供。以這種方式,從初始部署遠程運行的服務應用可以使用服務標識符與初始部署通信。在隨著升級向前推進時,可以建立與服務標識符不同的并且解析為升級部署的臨時服務標識符,使得服務應用的至少一部分可以使用臨時服務標識符與升級部署通信。
在完成升級時,服務標識符可以被改變以解析為升級部署而非初始部署,使得服務應用可以使用服務標識符與升級部署通信。服務標識符的示例是初始地解析為與初始部署相關聯(lián)的互聯(lián)網(wǎng)協(xié)議(IP)地址的統(tǒng)一資源定位符(URL)。臨時服務標識符的示例是解析為與升級部署相關聯(lián)的第二IP地址的第二URL。鑒于第一URL可以在升級之前解析為路由至初始部署的第一IP地址,在升級完成之后第一URL將解析為路由至軟件服務的升級部署的第二不同的IP地址。
在一些實現(xiàn)方式中,軟件服務包括具有與軟件服務的多個部署相關聯(lián)的多個租戶的多租戶環(huán)境。在示例中,初始部署和升級部署可以與多個租戶中的特定租戶相關聯(lián),在這種情況下,URL可以包括軟件服務的名稱和該租戶的名稱。第二URL還可以包括軟件服務的名稱和該租戶的名稱,并且另外還可以包括表示臨時服務標識符的臨時狀態(tài)的字符串。例如,如果URL是“contoso.service.com”,則第二URL可以為“contoso-test.service.com”。其他標識符也是可能的并且可以被認為是在本公開內(nèi)容的范圍內(nèi)。
軟件服務的示例包括生產(chǎn)力應用服務(例如,文字處理、電子表格以及演示應用服務)、電子郵件服務、統(tǒng)一通信服務、關系管理服務、數(shù)據(jù)庫服務和在線協(xié)作服務,以及任何其他類型的軟件服務。在協(xié)作服務的情況下,服務組件的示例包括協(xié)作應用或模塊、由軟件服務的初始部署托管并且在應用升級之后由軟件服務的升級部署托管的協(xié)作站點。其他示例包括站點集、文檔存儲庫、定制代碼、小應用程序以及微件。
現(xiàn)在轉到圖1,服務體系結構100包括應用平臺101、應用平臺111和應用平臺131。服務應用103運行在應用平臺101上并允許用戶107經(jīng)由用戶接口105訪問軟件服務123。服務應用113被實現(xiàn)在應用平臺111上并向用戶117提供到軟件服務123的用戶接口115。應用平臺131運行服務應用133,服務應用133還提供到軟件服務123的用戶接口135。
由管理員137表示的管理人員能夠經(jīng)由用戶接口135訪問管理端口141。軟件服務123被實現(xiàn)在服務平臺121上并且包括服務組件125、服務組件127和服務組件129。
在操作時,用戶107和117通過用戶接口105和115與軟件服務123互動,用戶接口105和115分別由服務應用103和113渲染在應用平臺101和111上。管理員137可以經(jīng)由用戶接口135與軟件服務123交互以代表租戶來配置軟件服務123。管理員137可以例如添加或移除用戶、配置服務設置或以其他方式管理軟件服務123的部署。
升級可能不時地變得可用。當升級可用于軟件服務123時,軟件服務123(或某個其他應用)可以將在用戶接口135中并且尤其是在管理端口141中顯現(xiàn)的通知傳達到服務應用133。在管理端口141中顯現(xiàn)的通知143可以包括可選擇以顯現(xiàn)更新控件的控件,由更新控件145和更新控件147表示。更新控件可以由管理員137用以配置用于升級軟件服務123的過程。
圖2圖示了表示可以運行在服務平臺121或其他地方上的過程的升級過程200,以便于支持軟件服務123從一個版本到下一版本的升級。由升級過程200提供的功能可以以程序指令被體現(xiàn)為升級服務、應用或模塊。程序指令可以被實現(xiàn)為獨立服務、應用或模塊,或者可以以分布式方式跨多個服務、應用、或模塊或者其任何組合或變型來被實現(xiàn)。如以程序指令被體現(xiàn)為服務、應用或模塊的升級過程200可以被實現(xiàn)為表示圖9中圖示的計算系統(tǒng)900的適當?shù)挠嬎阍O備或設備集上。
下面順帶指出圖2中圖示的步驟,盡管可以認識到其他步驟能夠被包括在升級過程200中。開始,升級過程200標識進行對軟件服務123的升級的步調(步驟201)。步調可以由管理員137經(jīng)由管理端口141中的更新控件145和147限定。管理員137可以指定升級的各個方面,諸如首先利用哪些組件進行、何時利用每個組件進行等等。
一旦已經(jīng)指定了升級的步調,則升級過程200建立針對可能已經(jīng)啟動的支持升級的升級部署的臨時服務標識符(步驟203)。臨時標識符可以相對于由服務應用103和113用于訪問軟件服務123的服務標識符不同。
在啟動升級部署并且建立了臨時標識符之后,根據(jù)由管理員137指定的升級的步調關于每個服務組件增量地應用升級(步驟205)。當每個服務組件被加載在升級部署中并被評價時,做出對服務組件的升級是否成功的確定(步驟207)。這樣的確定可以由管理員137主觀地做出并且通過用戶輸入被傳達到升級過程200。然而,這樣的確定可以由升級過程200或能夠評價升級的優(yōu)點的某個其他過程自動地做出。
在這一點上,如果對特定服務組件的升級被認為是不成功的,則升級過程200可以暫停以向租戶提供回滾升級的機會或者暫停升級直到使得能夠被應用到服務組件的代碼修正可用。如果回滾發(fā)生,則升級過程200可以關于相同服務組件繼續(xù)。然而,還可能的是,升級過程200被引導為利用另一服務組件進行。
如果對給定服務組件的升級被認為是成功的,則升級過程200進行至另一服務組件。該循環(huán)可以重復直到升級被解散或者直到不再有要被升級的服務組件,其確定可以由升級過程200自動地或利用用戶輸入來做出(步驟209)。最終,軟件服務的初始部署中的服務組件中的全部服務組件或升級可以應用到的服務組件中的全部服務組件被升級。初始地被解析為初始部署的服務標識符可以被改變以解析為軟件服務的升級部署(步驟211)。
圖3圖示了用于支持本文中提出的各種概念和原理的實現(xiàn)方式的操作情景300。操作情景300包括軟件服務的初始部署321。初始部署321包括服務組件325、服務組件327和服務組件329。在初始階段301期間,對初始部署321的升級的步調已經(jīng)由管理人員限定。在該情景中的步調指定升級首先利用服務組件329進行,接著是服務組件327,并且然后是服務組件325。這樣的步調允許與初始部署321相關聯(lián)的租戶在向前推進升級的剩余部分之前在每個組件的基礎上評價升級的優(yōu)點。注意,服務標識符alpha.service.com與初始部署321相關聯(lián)并且用于將流量路由至初始部署321。
一旦已經(jīng)指定了升級的步調,則在下一階段303期間升級開始。在該階段處,服務標識符保持被解析為初始部署321。軟件服務的升級部署322已經(jīng)被啟動并且服務組件329被加載在其中。服務組件329還可以在初始部署321中保持可操作,盡管其能夠可選地被禁用。臨時服務標識符alpha-test.service.com已經(jīng)被創(chuàng)建并解析為升級部署322。以這種方式,租戶人員可以訪問服務組件329的升級版本以便測試其特征和功能。
假定服務組件329的升級被批準,則升級進行至階段305,在階段305期間服務組件327被加載到升級部署322中并且其本身被升級(在其能夠被升級的程度上)。正如服務組件329,服務組件327被加載到升級部署322中。服務組件327可以在初始部署321中保持可操作或能夠被禁用。
在階段307處,服務組件325被加載到升級部署322中并且在升級部署322的上下文中被升級。服務組件325可以在初始部署321中保持可操作。然而,一旦對服務組件325的升級被認為是成功的,則軟件服務的初始部署321的整體將已經(jīng)被升級。因此,服務標識符可以被改變以解析為升級部署322。以這種方式,先前已經(jīng)被引導到初始部署321的流量將被引導至正在向前推進的升級部署322。臨時服務標識符可以被禁用,但是可以可選地保持于服務中。
圖4-6圖示了如關于協(xié)作服務應用的升級過程中的各種階段。參考圖4,在升級過程的初始階段400期間,訪問系統(tǒng)401提供對協(xié)作服務403的訪問。服務標識符alpha.service.com由服務應用用于做出通過訪問系統(tǒng)401被路由的協(xié)作服務403的請求。訪問系統(tǒng)401的示例是來自F5的負載均衡器。
在初始階段400期間協(xié)作服務403根據(jù)版本n來被部署。協(xié)作服務403與租戶內(nèi)容405接口連接,租戶內(nèi)容405可以包括實時數(shù)據(jù)庫407。換言之,與(應用平臺上的)服務應用交互的用戶通過協(xié)作服務403與存儲在實時數(shù)據(jù)庫407中的數(shù)據(jù)和其他內(nèi)容互動。用戶可以諸如通過聯(lián)合地編輯或共享文檔、查看協(xié)作站點等等來在數(shù)據(jù)上協(xié)作。來自的Docs、來自的以及來自的是協(xié)作服務的示例。
升級過程可以進行到圖5中圖示的中間階段500。在該階段處,升級的步調已經(jīng)由管理人員限定并且升級正在相應地前進。臨時標識符已經(jīng)被創(chuàng)建(alpha-test.service.com),如由協(xié)作服務404(版本n+1)表示的,協(xié)作服務403的升級版本已經(jīng)被實例化。另外,租戶內(nèi)容406已經(jīng)被實例化,其包括用于人員來交互的測試數(shù)據(jù)庫408。
站點圖410也已經(jīng)在該情景中被建立。站點圖410允許租戶內(nèi)容405被雙重安裝使得其中的至少一些經(jīng)由除了協(xié)作服務403之外的協(xié)作服務404可訪問。在一些實現(xiàn)方式中,站點圖410被用于關聯(lián)或重定義租戶內(nèi)容405,使得在一段時間內(nèi),其變成租戶內(nèi)容406。站點圖410可以在升級過程的進程期間被改變以將實時數(shù)據(jù)庫407鏈接到協(xié)作服務404,而非實際上復制和移動包括在租戶內(nèi)容405中的數(shù)據(jù)。因此,在測試數(shù)據(jù)庫408被稱為“測試”數(shù)據(jù)時,可以認識到,數(shù)據(jù)可以實際上為實時數(shù)據(jù)的實例并且一旦升級完成就可以被認為是實時數(shù)據(jù)。這允許在升級過程期間的服務的連續(xù)性。一旦升級過程完成,使用臨時服務標識符與測試數(shù)據(jù)庫408交互的人員就能夠繼續(xù)在相同的狀態(tài)中與相同的數(shù)據(jù)交互。利用站點圖410還允許在升級中的任何階段被回滾而不丟失數(shù)據(jù)或其他定制。
總體上,使用服務標識符通信的請求和其他交互由訪問系統(tǒng)401路由至協(xié)作服務403。因此,請求和交互被應用到租戶內(nèi)容405和實時數(shù)據(jù)庫407。同時,使用臨時服務標識符通信的請求和其他交互由訪問系統(tǒng)401路由至協(xié)作服務404,其是協(xié)作服務403的升級版本。請求和交互將通常使用租戶內(nèi)容406和測試數(shù)據(jù)庫408來處理,盡管租戶內(nèi)容405和測試數(shù)據(jù)庫407能夠由協(xié)作服務404訪問。
最終升級過程被完成并且對協(xié)作服務403的更新被批準。在圖6中圖示的該最終階段600處,訪問系統(tǒng)401可以通過任一服務標識符到達,盡管臨時服務標識符可能被停用。更確切地說,主服務標識符alpha.service.com被解析為協(xié)作服務404,而非協(xié)作服務403。實際上,協(xié)作服務403可以在此刻被拆除。實時數(shù)據(jù)庫407有效地被遷移到經(jīng)由協(xié)作服務404可訪問的租戶內(nèi)容406中。租戶內(nèi)容406因此包括實時數(shù)據(jù)庫407和測試數(shù)據(jù)庫408,其如提到的可以被認為是實時數(shù)據(jù),尤其在升級過程的完成之后。
圖7-8圖示了在備選實現(xiàn)方式中的另一升級過程的各個階段。如階段700中所示,訪問系統(tǒng)701提供對服務的兩個版本的訪問:服務703(版本n)和服務704(版本n+1)。用戶可以使用URL www.service.com來訪問服務703,而可以使用URL www.service-test.com來訪問服務704。注意,針對服務704的URL包括相對于針對服務703的URL的經(jīng)修改的域名。服務703和服務704的示例包括電子郵件服務、游戲服務、統(tǒng)一通信服務、協(xié)作服務、社交聯(lián)網(wǎng)服務以及任何其他類型的軟件服務。
服務703和服務704兩者被鏈接到用戶內(nèi)容705。因此,無論用戶是經(jīng)由服務703還是經(jīng)由服務704接近用戶內(nèi)容705,在兩種情況下他或她將能夠與用戶數(shù)據(jù)庫707中的他的或她的數(shù)據(jù)交互。
可以認識到,服務704是服務703的升級版本。可以向用戶提供到服務的不同的路徑以允許他們體驗該服務或以其他方式評價該服務。
圖8中的階段800圖示了一旦個體用戶決定她想要在向前推進的基礎上使用服務的升級版本(服務704)可能發(fā)生什么。用戶可以與管理或設置端口交互以指示服務的哪個版本是她偏好的版本。假設用戶期望向前推進服務704(版本n+1),則訪問系統(tǒng)701可以被配置為將請求路由至針對該用戶的服務704的www.service.com。換言之,訪問系統(tǒng)701可以被配置為在每個用戶的基礎上不同地路由URL。
更一般地,可以考慮其中兩個用戶(用戶A和用戶B)訂閱在線服務的示例。在線服務的第一版本可以使用第一URL來被訪問,而服務的第二版本可以使用第二URL來被訪問,第二URL為第一URL的經(jīng)修改的表示。
可以在到服務的第一版本的登錄屏幕或其他用戶接口中通知用戶作為升級的服務的第二版本可用。用戶可以點擊或以其他方式選擇通知以啟動管理屏幕。在管理屏幕中,用戶可以被報告針對服務的第二版本的URL。另外,可以呈現(xiàn)用于將服務的第二版本作為向前推進的他們的主要版本的選項。
然而,在將第二版本作為他們的主要版本之前,用戶可能期望利用服務的第二版本。他們通過使用用于巡覽至服務的第二版本的第二URL來這樣做。用戶的數(shù)據(jù)可以經(jīng)由服務的任一版本來訪問,并且因此他們幾乎不會經(jīng)歷各版本之間的不連續(xù)性。
最終,給定用戶可能期望將服務的新的第二版本作為他們的主要服務。因此,用戶可以在管理端口中做出選擇,該選擇有效地改變URL和針對該用戶的服務之間的關聯(lián)。向前推進,第一URL將向該用戶提供對服務的第二版本的訪問。假設另一用戶尚未做出這樣的選擇,第一URL將繼續(xù)向用戶提供對服務的第一版本的訪問。
這樣的布置可以通過將兩個URL解析為與訪問系統(tǒng)相關聯(lián)的相同IP地址來完成。因此,無論哪個URL最初由用戶(經(jīng)由適當?shù)膽闷脚_)用于到達服務的一個版本或另一版本,它們的通信將到達相同的訪問系統(tǒng)。訪問系統(tǒng)可以詢問應用平臺和/或運行在其上的應用服務以確定哪個URL被用于發(fā)起通信。備選地,原始URL可以被包括在被尋址到針對訪問系統(tǒng)的IP地址的通信中。
訪問系統(tǒng)可以在每個用戶的基礎上查找將用戶路由至哪個服務。標識用戶可以通過向用戶呈現(xiàn)單個登錄頁面來完成,該單個頁面被呈現(xiàn)給任何用戶(無論他們使用哪個URL)。換言之,登錄頁面可以跨服務的版本是相同的。
取決于被提供在登錄頁面中的用戶的身份,結合用于初始地路由至訪問系統(tǒng)的URL,訪問系統(tǒng)(或者與其相關聯(lián)的或在其后面運行的某個其他子系統(tǒng))可以將用戶路由至設備的適當?shù)陌姹?。因此,嘗試利用URL訪問服務的一個用戶可以被路由至服務的一個版本,而嘗試利用相同URL訪問服務的另一用戶可以被路由至服務的不同版本。
可以認識到,用戶經(jīng)由在服務的上下文中向他們提供的設置或管理菜單來控制服務的哪個版本是他們的主要版本。另外,在升級評價階段期間,兩個URL可用于用戶,使得用戶能夠利用服務的各種特征和功能。這樣的布置允許用戶在個性化的基礎上有效地控制服務升級的步調。一旦用戶對升級滿意,則用戶可以簡單地巡覽至用于改變URL與服務版本之間的關聯(lián)的設置菜單。
可以從圖1-8的前述討論中認識到,當實現(xiàn)如本文中討論的增強的升級過程時可以實現(xiàn)各種技術效果。允許租戶或用戶控制升級進展的步調,減少通常與升級相關聯(lián)的故障時間并且緩解與損失的生產(chǎn)力相關聯(lián)的問題。另外,否則將通過必須建立和拆除升級的軟件服務的實例而消耗的資源能夠通過將租戶以他們自己的步調從初始部署溫和地轉變到軟件服務的升級部署來緩解或避免。
返回參考圖1,應用平臺101、111和132各自表示分別能夠運行服務應用103、113和133的任何物理或虛擬計算系統(tǒng)、設備或其集合。示例包括但不限于圖9中圖示的計算系統(tǒng)901所表示的智能電話、膝上型計算機、平板計算機、臺式計算機、混合計算機、游戲機、電視、娛樂設備和虛擬機,及其任何變型或組合。
服務應用103、113和133各自表示能夠實現(xiàn)到軟件服務123的用戶接口105、115和135的任何軟件應用、模塊、組件或其集合。示例包括但不限于web瀏覽器、電子郵件應用、實時通信應用、博客和微博應用、社交聯(lián)網(wǎng)應用、電子商務應用、抗病毒應用和游戲應用以及能夠渲染用戶接口的任何其他類型的應用。服務應用103、113和133可以是在瀏覽器應用的上下文中執(zhí)行的基于瀏覽器的應用。在一些實現(xiàn)方式中,服務應用103、113和133可以在網(wǎng)頁或網(wǎng)站的上下文中執(zhí)行或與網(wǎng)頁或網(wǎng)站相關聯(lián)地執(zhí)行。服務應用103、113和133各自可以是本地安裝和執(zhí)行的應用、流傳輸?shù)膽?、移動應用或其任何組合或變型。服務應用103、113和133可以各自被實現(xiàn)為獨立應用或可以跨多個應用分布。
服務平臺121表示能夠托管軟件服務130中的全部或部分并且實現(xiàn)升級過程200中的全部或部分的任何物理或虛擬計算系統(tǒng)、設備或其集合。服務平臺121的示例包括但不限于圖9中圖示的計算系統(tǒng)901所表示的服務器計算機、web服務器、應用服務器、機架服務器、刀片服務器、虛擬機服務器或塔式服務器以及任何其他類型的計算系統(tǒng)。在一些情景中,服務平臺121可以被實現(xiàn)在數(shù)據(jù)中心、虛擬數(shù)據(jù)中心或某種其他適當?shù)脑O施中。
圖9圖示了表示可以在其中實現(xiàn)本文中公開的各種操作體系結構、階段、情景和過程的任何系統(tǒng)或系統(tǒng)的集合的計算系統(tǒng)901。計算系統(tǒng)901的示例包括但不限于智能電話、膝上型計算機、平板計算機、臺式計算機、混合計算機、游戲機、虛擬機、智能電視、智能手表和其他可穿戴設備及其任何變型或組合。其他示例包括服務器計算機、機架服務器、web服務器、云計算平臺和數(shù)據(jù)中心設備、以及任何其他類型的物理或虛擬服務器機器、以及任何變型或組合。
計算系統(tǒng)901可以被實現(xiàn)為單個裝置、系統(tǒng)或設備或者可以以分布式方式被實現(xiàn)為多個裝置、系統(tǒng)或設備。計算系統(tǒng)901包括但不限于處理系統(tǒng)902、存儲系統(tǒng)903、軟件905、通信接口系統(tǒng)907和用戶接口系統(tǒng)909。處理系統(tǒng)902與存儲系統(tǒng)903、通信接口系統(tǒng)907和用戶接口系統(tǒng)909操作性地耦合。
處理系統(tǒng)902從存儲系統(tǒng)903加載并執(zhí)行軟件905。軟件905至少包括升級過程906,其表示關于前述實現(xiàn)方式討論的升級過程200。當由處理系統(tǒng)902執(zhí)行以增強如何升級軟件服務時,軟件905引導處理系統(tǒng)902以如本文中描述的針對前述實現(xiàn)方式中的至少各種過程、操作情景和序列操作。計算系統(tǒng)901可以可選地包括出于簡潔的目的未討論的附加的設備、特征或功能。
仍然參考圖9,處理系統(tǒng)902可以包括從存儲系統(tǒng)903獲取并執(zhí)行軟件905的微處理器和其他電路。處理系統(tǒng)902可以被實現(xiàn)在單個處理設備內(nèi),但是也可以跨在執(zhí)行程序指令中協(xié)作的多個處理設備或子系統(tǒng)分布。處理系統(tǒng)902的示例包括通用中央處理單元、專用處理器和邏輯器件,以及任何其他類型的處理設備、其組合或變型。
存儲系統(tǒng)903可以包括由處理系統(tǒng)902可讀取的并且能夠存儲軟件905的任何計算機可讀存儲介質。存儲系統(tǒng)903可以包括以用于存儲信息的任何方法或技術(諸如計算機可讀指令、數(shù)據(jù)結構、程序模塊或其他數(shù)據(jù))實現(xiàn)的易失性存儲器和非易失性存儲器、可移除介質和不可移除介質。存儲介質的示例包括隨機訪問存儲器、只讀存儲器、磁盤、光盤、閃存、虛擬存儲器和非虛擬存儲區(qū)、磁帶盒、磁帶、磁盤存儲或其他磁性存儲設備、或任何其他適當?shù)拇鎯橘|。在任何情況下計算機可讀存儲介質都不是傳播信號。
除了計算機可讀存儲介質之外,在一些實現(xiàn)方式中,存儲系統(tǒng)903還可以包括計算機可讀通信介質,軟件905中的至少一些可以內(nèi)部地或外部地通過計算機可讀通信介質進行通信。存儲系統(tǒng)903可以被實現(xiàn)為單個存儲設備,但是也可以跨相對于彼此共同定位或分布的多個存儲設備或子系統(tǒng)來被實現(xiàn)。存儲系統(tǒng)903可以包括附加的元件,諸如能夠與處理系統(tǒng)902或可能與其他系統(tǒng)通信的控制器。
軟件905可以以程序指令來被實現(xiàn),并且尤其可以當由處理系統(tǒng)902運行時引導處理系統(tǒng)902以如關于本文中圖示的各種操作情景、序列和過程描述的那樣操作。例如,軟件905可以包括用于實現(xiàn)升級過程200及其相關聯(lián)的功能的程序指令。
具體地,程序指令可以包括協(xié)作或以其他方式交互以執(zhí)行本文中描述的各種過程和操作情景的各種組件或模塊。各種組件或模塊可以以經(jīng)編譯或解釋的指令、或以指令的某種其他變型或組合來體現(xiàn)??梢砸酝椒绞交虍惒椒绞?、順序地或并行地、在單線程或多線程環(huán)境中、或根據(jù)其任何其他適當?shù)膱?zhí)行范式、變型或組合來執(zhí)行各種組件或模塊。軟件905可以包括附加的過程、程序或組件,諸如操作系統(tǒng)軟件或其他應用軟件,除了或包括升級過程906。軟件905還可以包括由處理系統(tǒng)902可執(zhí)行的固件或某種其他形式的機器可讀處理指令。
總體上,軟件905可以當被加載到處理系統(tǒng)902中并且被執(zhí)行時將(計算系統(tǒng)901所表示的)適當?shù)难b置、系統(tǒng)或設備從通用計算系統(tǒng)整體變換成被定制用于支持針對軟件服務的增強的升級的專用計算系統(tǒng)。實際上,將軟件905編碼在存儲系統(tǒng)903上可以變換存儲系統(tǒng)903的物理結構。物理結構的具體變換可以取決于本說明書中的不同實現(xiàn)方式的各種因素。這樣的因素的示例可以包括但不限于用于實現(xiàn)存儲系統(tǒng)903的存儲介質的技術和計算機存儲介質是被表征為初級存儲還是次級存儲、以及其他因素。
例如,如果計算機可讀存儲介質被實現(xiàn)為基于半導體的存儲器,則軟件905可以諸如通過變換構成半導體存儲器的晶體管、電容器或其他分立電路元件的狀態(tài)來在程序指令被存儲在半導體存儲器中時變換半導體存儲器的物理狀態(tài)。類似的變換可以關于磁性介質或光學介質發(fā)生。在不脫離本說明書的范圍的情況下物理介質的其他變換是可能的,其中前述示例僅僅被提供用于方便當前討論。
再次參考圖3作為示例,通過計算系統(tǒng)901所表示的一個或多個計算系統(tǒng)的操作,可以關于軟件服務的部署執(zhí)行變換。作為示例,初始部署321可以被標識用于升級。在采用升級過程200時,升級部署322被啟動并且在其中加載和升級服務組件325、327和329。另外,初始地被解析為初始部署321的alpha.service.com被改變以解析為升級部署322。
可以理解,計算系統(tǒng)901通常旨在表示軟件905可以被部署在其上并且在其上執(zhí)行以便實現(xiàn)增強的服務升級的一個或多個計算系統(tǒng)。然而,計算系統(tǒng)901還可以適合作為軟件905可以被展現(xiàn)在其上并且從該處一個或兩者可以被分布、運輸、下載或以其他方式提供到又一計算系統(tǒng)以用于部署和執(zhí)行、或另外的附加分布的任何計算系統(tǒng)。
通信接口系統(tǒng)907可以包括允許通過通信網(wǎng)絡(未示出)與其他計算系統(tǒng)(未示出)通信的通信連接和設備。一起允許系統(tǒng)間通信的連接和設備的示例可以包括網(wǎng)絡接口卡、天線、功率放大器、RF電路、收發(fā)器以及其他通信電路。連接和設備可以通過通信介質通信以與其他計算系統(tǒng)或系統(tǒng)的網(wǎng)絡交換通信,通信介質諸如金屬、玻璃、空氣或任何其他適當?shù)耐ㄐ沤橘|。前述介質、連接和設備是公知的并且不需要長篇幅地在此進行討論。
用戶接口系統(tǒng)909是可選的并且可以包括鍵盤、鼠標、語音輸入設備、用于從用戶接收觸摸手勢的觸摸輸入設備、用于檢測由用戶進行的非觸摸手勢和其他運動的運動輸入設備、以及能夠從用戶接收用戶輸入的其他相當?shù)妮斎朐O備和相關聯(lián)的處理元件。輸出設備(諸如顯示器、揚聲器、觸控設備以及其他類型的輸出設備)還可以被包括在用戶接口系統(tǒng)909中。在一些情況下,輸入和輸出設備可以被組合在單個設備中,諸如能夠顯示圖像并接收觸摸手勢的顯示器。前述用戶輸入和輸出設備是本領域中公知的并且不需要長篇幅地在此進行討論。
用戶接口系統(tǒng)909還包括由處理系統(tǒng)902可執(zhí)行的支持以上討論的各種用戶輸入和輸出設備的相關聯(lián)的用戶接口軟件。單獨地或與彼此以及其他硬件和軟件元件結合,用戶接口軟件和用戶接口設備可以支持圖形用戶接口、自然用戶接口或任何其他類型的用戶接口。例如,用戶接口105、用戶接口115或用戶接口135可以通過用戶接口系統(tǒng)909來呈現(xiàn)。另外,關于用戶接口做出的用戶輸入可以經(jīng)由用戶接口系統(tǒng)909來輸入。
在計算系統(tǒng)901與其他計算系統(tǒng)(未示出)之間的通信可以通過一個或多個通信網(wǎng)絡并且根據(jù)各種通信協(xié)議、協(xié)議的組合或其變型來發(fā)生。示例包括內(nèi)聯(lián)網(wǎng)、互聯(lián)網(wǎng)、因特網(wǎng)、局域網(wǎng)、廣域網(wǎng)、無線網(wǎng)絡、有線網(wǎng)絡、虛擬網(wǎng)絡、軟件定義網(wǎng)絡、數(shù)據(jù)中心總線、計算底板、或任何其他類型的網(wǎng)絡、網(wǎng)絡的組合或其變型。前述通信網(wǎng)絡和協(xié)議是公知的并且不需要長篇幅地在此進行討論。然而,可以使用的一些通信協(xié)議包括但不限于互聯(lián)網(wǎng)協(xié)議(IP、IPv4、IPv6、等等)、傳輸控制協(xié)議(TCP)和用戶數(shù)據(jù)報協(xié)議(UDP),以及任何其他適當?shù)耐ㄐ艆f(xié)議、變型或其組合。
在其中交換數(shù)據(jù)、內(nèi)容或任何其他類型的信息的前述示例中的任何示例中,信息的交換可以根據(jù)各種協(xié)議中的任何協(xié)議來發(fā)生,包括FTP(文件傳輸協(xié)議)、HTTP(超文本傳輸協(xié)議)、REST(表述性狀態(tài)傳輸)、WebSocket、DOM(文檔對象模型)、HTML(超文本標記語言)、CSS(層疊樣式表)、HTML5、XML(可擴展標記語言)、JavaScript、JSON(JavaScript對象表示)以及AJAX(異步JavaScript和XML),以及任何其他適當?shù)膮f(xié)議、變型或其組合。
盡管圖1-8大體描繪了相對少的操作情景和序列,但是可以認識到本文中公開的概念可以以一定規(guī)模并且程式化地針對多個租戶來應用。例如,本文中公開的升級服務能夠被部署為支持任何數(shù)量的軟件服務部署。
附圖中提供的功能框圖、操作情景和序列以及流程圖表示用于執(zhí)行本公開內(nèi)容的新穎方面的示例性系統(tǒng)、環(huán)境和方法。盡管出于簡化解釋的目的,本文中包括的方法可以采用功能圖、操作情景或序列、或流程圖的形式,并且可以被描述為一系列動作,但是要理解這些方法不受動作的順序限制,因為一些動作可以根據(jù)該動作以與來自本文中示出和描述的順序不同的順序發(fā)生和/或與來自本文中示出和描述的動作的其他動作并行地發(fā)生。例如,本領域技術人員將理解并認識到,方法能夠備選地被表示為(諸如在狀態(tài)圖中)一系列相關的狀態(tài)或事件。此外,針對新穎實現(xiàn)方式而言,可能不需要方法中圖示的所有動作。
本文中包括的描述和附圖描繪具體實現(xiàn)方式以教導本領域技術人員如何做出和使用最好的選項。出于教導發(fā)明原理的目的,已經(jīng)簡化或省略了一些常規(guī)方面。本領域技術人員將認識到來自落入本發(fā)明的范圍內(nèi)的這些實現(xiàn)方式的變型。本領域技術人員還將認識到,以上描述的特征能夠以各種方式進行組合以形成多個實現(xiàn)方式。因此,本發(fā)明不限于以上描述的具體實現(xiàn)方式,而是僅僅由權利要求及其等效方案限定。