淺談云上應用自動化的發展趨勢
【譯者序】
隨著Docker公司那難以抑制的宏圖壯志的逐漸顯露,其他人關于未來趨勢的聲音也許值得關注。
午夜一點,你收到了一封系統自動發送的來自“應用移植經理”的郵件,其中講到量控制程序(它本身也是一個容器化形式的應用)已經自動將你的AWS實例遷移到了你的新的Google實例。此外,你所有容器已經啟動并運行,原有和企業數據庫的連接也已經完成重建,同時所有的安全和管控服務也已經重置成功。
這一切都是自動發生的,甚至在跨云遷移前你自己都不清楚這樣的遷移即將發生,而這是系統分別對在AWS和Google上運行容器化應用的成本差異進行對比之后,自動作出的決定。而后者一旦被證明更具成本效益后,基于預定義規則的跨云自動移植即可開始,所有容器即可跨公有云遷移。當然,同樣也可以是跨私有云遷移或者公有云/私有云之前遷移。
當下,這樣的場景也許聽起來更像是科幻小說,但也許不久我們即將具備這種能力。這種能夠對容器進行混合和配對、自動跨云遷移,并針對不同云完成本地化工作的可能性,也許會改變我們對云計算的發展,對公有/私有IAAS和PAAS的一些看法。
發現新價值
在如下這樣一個數據中心中,它具有云編排層(cloud-orchestration layer),能夠支持容器運行、支持容器在線遷移,并能在容器遷移后監控其狀態。使用容器并不算是一件新鮮事,甚至在Docker出現之前人們已經在使用各種容器了。但是,“自動資源調配”和“自動遷移”之前更多仍是停留在概念上,在實際的實踐推廣過程中仍然面臨很多困難。Docker的出現為將概念變為現實提供了更多可能性:
通過容器層的抽象來降低復雜性
容器屏蔽了對底層基礎設施服務的依賴,降低了和這些平臺打交道的復雜度。容器具有非常明確的定義,即支持應用程序或服務的“小平臺”。
通過自動化,***化容器的可移植性和容器自身的價值。
通過自動化,我們可以通過腳本實現容器的跨云遷移。這意味著需要重新配置容器間的各種通訊,如不同層級間的通訊,同數據服務的通訊。今天,在對應用進行自動化遷移時,效果依然很難盡如人意。事實上,自動化遷移通常需要依賴于很多經常變化的外部條件,一旦不再具備這些條件,遷移就會非常困難。盡管這些問題依然存在,但幸運的是,這些問題并非不可解決的。
提供更好的安全和治理服務
通常在許多情況下,安全和治理服務是基于特定平臺并與其綁定,而不是和特定應用程綁定的。通過在容器外圍部署安全和治理服務,而不是在容器內部或者應用域(application domain)部署,可以提供更好的移植性,降低遷移操作時的復雜度。
提供更好的分布計算的能力
這主要是因為應用程序容器化之后可以更容易的分到許多不同的域,而這些域中都是各自容器形式存在的應用。這些容器可以以任意數量運行在不同的云平臺,特別是那些提供***性價比的云平臺。換句話所,就是容器化的應用在分布部署時可以根據容器對各平臺的利用率進行優化。比如說:可以將i/o密集型應用程序更多在部署在裸機上,以提供***的性能,將一個計算密集型的應用程序更多部署在可以提供適當的縮放和負載平衡的公有云上,甚至可以將其中一部分有選擇地部署在傳統的硬件和軟件。總之,應用程序可以被分割為優化的組件,而這些組件結合在一起則構成完整的應用程序.
提供基于預定義規則的優化和自管理的自動化服務
對于容器所在的云平臺,如果沒有一個可以自動應對配置變化的自動化層(auto-magically)這一切都是空談的。
#p#
回到現實
雖然可能有其他更好的方式來利用新興的云計算平臺,并且看起來仍有許多障礙需要克服,但器化仍然可說是分布式應用的重大變革。
雖然目前技術確實可以管理機器實例,甚至基于簡單策略和腳本,已經可以實現策略驅動(policy-driven)的自動化跨云的容器遷移,包括自動配置、自動本地化,但當下的自動化和編排技術仍然達不到我們所期望的程度。
此外,Docker推出的時日尚短,關于Docker及其所代表的容器虛擬化的潛力和局限性仍需探索。以之前的容器和分布式推廣經驗來看,這項技術可以發揮***價值的途徑是提供容器的跨云協調(cloud coordination)。是的,能夠成為跨云的標準是一件激動人心事情,但歷史告訴我們,供應商和廠商都傾向于在自己的標準和方向上繼續前進,以確保自己的市場份額利益。如果出現這種情況,則一切都會變成空談了。
***的問題。 雖然我們盡力讓事情簡化,隨著時間的過去,使用容器作為平臺的一種抽象意味著應用程序將朝著更加復雜和更分布的方面變化。未來,你有可能發現你的應用程序運行在很多不同的型號和品牌的云平臺的成百上千的容器中。如此復雜的情況,可能是脆弱并且難以維護的。
考慮到所有的一切,在云上構建應用仍然可能是一個較好的選擇。PaaS和IaaS云仍將提供平臺,甚至提供基礎的開發能力。然而,隨著Docker 商品化的進展,應用也許會基于容器化的平臺。如果有較大的廠商希望能夠推動容器大規模推廣、大規模商用的進程,那將會是有趣的一件事情,因為出于利益的考慮,這也很可能是Docker公司自己的方向。
現在的核心問題:如果自管理/自遷移是容器技術的目標,那么對于企業應用基于云平臺的組織而言,是否應該重組組織資源以面對新的愿景? 我懷疑大部分組織在云計算的道路并沒有走到強烈需要容器化的程度,目前的云遷移(cloud migration)工作仍需要繼續發展。但是要知道,通過自動化、可遷移的實現更好的云應用架構終將是我們的最終目標。