開發(fā)人員應(yīng)查看容器中的多道程序、多用戶分區(qū),以及虛擬機之間的事情。所以他們必須管理容器隔離的應(yīng)用程序的組件,了解容器管理工具,如Docker的作用,并解決容器發(fā)展所需的每個操作系統(tǒng)和容器管理相結(jié)合的具體問題。
容器(例如虛擬機)可以容納應(yīng)用程序組件,允許服務(wù)器共享多個組件或組件實例。它們共享基本的操作系統(tǒng)服務(wù),在某些情況下,甚至共享一些中間件服務(wù)。他們管理例如能見度和命名等元素,以減少相互作用。
由于容器是在云計算中使用“高于”傳統(tǒng)的虛擬化技術(shù),容器是跨多個云使用的,無論是公共云或私有云,基本上是便攜式的,并可以任意組合。因為操作系統(tǒng)是共享的,容器具有低開銷和可用于細分的基礎(chǔ)設(shè)施即服務(wù)或虛擬機實例來充分利用這種可移植性。這很可能是大多數(shù)開發(fā)人員的容器開發(fā)應(yīng)用程序針對這個可移植性任務(wù)的主要好處。
容器的工作將取決于兩個因素——操作系統(tǒng)的主機和管理平臺的部署。雖然有Linux和其他操作系統(tǒng)的其他容器管理系統(tǒng),最常見的平臺是Linux和Docker。開發(fā)人員的第一個任務(wù)是確定容器應(yīng)用程序的運行環(huán)境,確保選定的管理工具和中間件兼容所有的目標。流行的容器管理系統(tǒng)將適應(yīng)容器運行的不同的軟件平臺,但不是所有這樣的系統(tǒng)都可以解決所有的問題。
記錄這些工具的任何依賴關(guān)系,因為如果將應(yīng)用程序移植到另一個云計算的開發(fā)環(huán)境中,你也需要移植工具。
容器實現(xiàn)的一般方法是指定資源分配,隔離操作系統(tǒng)容器系統(tǒng),并通過容器管理系統(tǒng)來管理容器和操作系統(tǒng)和資源之間的關(guān)系。在Linux中,例如,用戶信息,文件系統(tǒng)名稱和進程空間,網(wǎng)絡(luò)的操作系統(tǒng)和容器管理系統(tǒng),如Docker管理。容器可以沒有管理工具進行部署,但它們從根本上簡化了中間件工具和網(wǎng)絡(luò)連接的版本控制的事情。這意味著選擇容器工具需要仔細評估,無論是開始開發(fā)還是早期應(yīng)用規(guī)劃。
擁有成功的容器項目的用戶建議,建設(shè)任何容器應(yīng)用程序應(yīng)該認真考慮承諾容器如何承載其發(fā)展。在建立和維護容器時取得的經(jīng)驗對于基于容器的應(yīng)用程序很有幫助。還可以測試出應(yīng)用程序生命周期管理辦法和使用開發(fā)容器的實例的可移植性,降低了實際應(yīng)用程序測試的風(fēng)險。
開放源碼和系統(tǒng)軟件和工具經(jīng)常從一個中央庫加載,其中包含了所支持的軟件。還有其他來源的基于容器的圖像,但開發(fā)人員需要注意的是,他們選擇的圖像仍然支持其操作系統(tǒng)和容器管理系統(tǒng)的當前版本。這個級別的版本控制是基于容器的應(yīng)用程序的關(guān)鍵,所以基準圖像版本有任何更改,一定要進行測試。測試將依賴于操作系統(tǒng)和容器管理系統(tǒng)的結(jié)合。雖然使用一個通用的容器管理工具可以在用戶主機服務(wù)器中對可以運行的應(yīng)用程序進行限制,但總體上更為高效。容器及其內(nèi)容是暫時性的,而最大的錯誤是新的容器開發(fā)人員可能在應(yīng)用程序設(shè)計中不了解需求。所有容器應(yīng)用程序應(yīng)被看作是一個集合的微服務(wù),都是無狀態(tài)的,在應(yīng)用程序中沒有持久性數(shù)據(jù)存儲。用戶需要提供狀態(tài)控制和數(shù)據(jù)持久性的組件工具。使用數(shù)據(jù)驅(qū)動的智能,后臺狀態(tài)控制要與持久性組件數(shù)據(jù)外置數(shù)據(jù)庫記錄一致。一定要記錄這些工具的任何依賴關(guān)系,因為如果應(yīng)用程序移植到另一個云計算的開發(fā)環(huán)境,所需要的端口,或者提供接入,這些工具都會發(fā)生改變。
最后需要考慮的是容器的應(yīng)用網(wǎng)絡(luò)和工作流程的整合。需要對公共云進行特殊的考慮,因為它們涉及到復(fù)雜的“私有IP”的使用。采用工具(如Docker)建立網(wǎng)絡(luò)并設(shè)定組件集成策略。開發(fā)人員將需要采取這兩個工具關(guān)閉需要關(guān)閉的應(yīng)用程序。
容器越來越受用戶歡迎,更可能是因為直接的容器托管方式更加適合用戶的云計算或容器的目標供應(yīng)商。這些可能需要特定的容器管理工具,甚至是基于云的開發(fā)環(huán)境。容器和虛擬機還融合了工具意義。工作人員不僅要跟蹤其所使用的工具,還要在開發(fā)應(yīng)用程序時考慮整個容器空間,以確保有更好的選擇。另外,應(yīng)用程序要足夠靈活,以適應(yīng)容器技術(shù)的發(fā)展趨勢。容器將是應(yīng)用前景的一部分,所以要更好使用它們。