容器技術允許管理員在不同平臺之間輕松移動應用負載,但是同時也存在一些限制。
容器在虛擬環境當中如何完成實時遷移和負載均衡?
對于大部分虛擬機當中的容器來說,都可以從一個系統遷移到另外一個系統當中。遷移過程可以根據需求手動進行或者自動完成,這樣就能夠為一些關鍵任務提供支持,比如服務器負載均衡。限制遷移的主要因素在于底層主機操作系統內核。由于多個容器共享一個主機操作系統內核,因此目標服務器必須使用具有兼容內核的操作系統。這些操作系統并不需要是相同的發型版本或者編譯版本,但是內核必須是相同的;不能在Windows服務器上運行Linux容器——至少現在還不行。
容器為企業提供了多種應用程序虛擬化方式。容器技術所提供的系統和應用程序架構為軟件開發和部署帶來了一種全新方式。相比于同一領域的競爭對手——虛擬機來說,容器技術需要使用的計算資源更少、速度更快并且更加易于使用。管理員可以快速創建多個容器以滿足大量應用程序需求,比如Web服務器。
但是容器的作用不僅僅限于輕松創建或者銷毀實例。容器的靈活性和可擴展性在軟件設計的微服務架構當中發揮了日益重要的作用。在傳統的“整體”軟件設計思想當中,所有特性和功能都被集成到單個應用程序當中。當某個特性或功能的帶寬超過限制——或者程序不能處理更多的用戶請求——那么企業就需要再次部署整個應用程序以進行擴展。對于軟件設計來說,這是一種成本很高、但是效率很低的方式。
通過采用服務分離——也就是應用程序組件——這種軟件架構方式,可以將應用程序的不同部分可以分散到多個容器當中,再從邏輯上聯系在一起,形成完整的應用程序。這種方式允許管理員針對單個組件安裝補丁或者進行升級,同時不會影響其他組件容器。此外,當某種特性需要提高性能時,還可以創建更多的容器來擴展規模——或者當某種特性需要降低性能時,可以減少容器數量以縮減規模。這種方式使得基于微服務的軟件設計方式和容器技術完美匹配,為企業提供同時兼顧高可擴展性和高效率的應用程序。微服務容器還可以在相互兼容的操作系統當中進行遷移,以實現負載均衡和應用程序性能優化。