我認為,我們終于不必停留在談論公共云在企業的效用這個階段了。公共云服務提供商已經證明,就算公共云不比本地基礎設施來得可靠,至少一樣可靠。安全也不是一個大問題。比如說,谷歌計算引擎網絡對實例安全采取了零信任的方法。為云基礎設施構建新的應用程序有其道理。然而,下一個合乎邏輯的問題是,哪些應用程序適合遷移到云端,哪些不適合。
如今有一大批的應用程序托管在云端。一般情況下,很難說哪一種類型的應用程序適合云,而另一種類型的應用程序不適合云。首先,想分析你的應用程序是否適合遷移到云基礎設施,一個辦法就是權衡云基礎設施和本地解決方案之間的差異。
1. 虛擬化基礎設施
要問的一個根本的問題是,首先工作負載如何進入到云端。以谷歌計算引擎為例,谷歌允許導入RAW磁盤鏡像和VirtualBox鏡像。還有第三方可以幫助用戶遷移到云端。另一種方案是,選擇一個預制的操作系統鏡像,利用二進制文件重新安裝應用程序,并復制數據集。
從實用的角度來看,我們在談論基本的x86虛擬化。遷移實際上是虛擬機到虛擬機(V2V)的遷移。所以,從純技術的角度來看,如果你的應用程序目前在虛擬基礎設施上運行,它就很適合遷移到云端。然而,應用程序的物理遷移是個次要的考慮因素。
2. 冗余性
為云重構的應用程序要考慮到底層基礎設施的可用性。云原生應用程序設計假設,基礎設施的各個部件會出現故障。遷移到云之前考慮應用程序在可用性方面的要求很重要。如果應用程序需要五個9(99.999%)的正常運行時間,而且你已構建了一套冗余的基礎設施來支持這個正常運行時間要求,在遷移到云端之前應認真考慮。谷歌計算引擎的服務級別協議(SLA)是99.95%。這需要在遷移之前為可靠性較差的基礎設施重構應用程序。
3. 許可
軟件許可是個潛在的重大障礙。一些軟件提供商在多年后才開始正視并應對無所不在的虛擬化環境。一些軟件廠商對于虛擬化環境仍有懲罰性的許可模式。
云基礎設施正在經歷相似的轉變。一些特殊的操作系統或軟件可能需要為云購買額外的許可證。一些解決方案甚至可能不提供云選項。數據庫層是個很好的切入點。討論你在使用的數據庫引擎,問問它是否擁有目標云提供商的許可。另一個辦法就是,充分利用云提供商提供的數據庫服務。
4. 支持
類似許可,軟件廠商的支持是另一個重要的非技術考慮因素。許多高性能或關鍵業務型應用程序在支持的基礎設施方面有著嚴格要求。比如說,除了支持的存儲配置外,一些內存分析平臺對內存和處理器組合還有著嚴格要求。雖然某種解決方案從技術上來說可以用在公共云,但是一旦出現了問題,軟件提供商提供的支持卻很有限,或者根本就沒有。
有必要看一下云提供商和傳統廠商提供的集成解決方案。AWS SAP解決方案就是一個例子。AWS最近宣布了面向HANA的4TB向上擴展實例,提供全面支持。
5. 數據局部性
最后要考慮的一個因素就是監管問題。工程師在將數據遷移到云端之前要考慮數據方面的法規。大多數云提供商完成了這一標準程序:讓物理基礎設施和流程通過合規規則的認證,比如面向支付卡行業(PCI)的那些規則。
不過,數據局部性有時是個挑戰。一些政府要求,某些類型的數據得留在境內。如果數據位置是個考慮因素,不要止步于驗證主要工作負載的位置。故障切換同樣是個考慮因素。如果一家提供商在你的國家只有一個服務區域,由于監管要求,你就面臨單一故障點。
那么,哪些應用程序適合遷移到云,哪些應用程序應仍留在自家的數據中心里面?作為一名管理顧問,我的回答是:“那得看情況”。從純技術的角度來看,在虛擬化環境中運行的大多數應用程序可以在云端運行,但是你還得考慮正常運行時間、許可、支持和監管要求。