當好的東西使用的越來越多時,包括云容器在內,那么公有云中成本越來越多。這里有三個選擇可以防止容器蔓延——所有高價標簽都來自于此。
云計算中的容器簡化并加速了程序的部署,但是這種易用性也導致用戶更容易過度使用它。當公有云中發生這種情況時,容器蔓延會導致成本急劇上升。
幸運的是,容器蔓延是可管理的,但是企業需要遲早進行控制,而且要長期堅持。尤其是,不是所有的容器蔓延管理實踐都能應用對云成本問題。
容器蔓延挑戰
虛擬機是第一個流行的虛擬化策略,但很明顯,企業可能會過度采取虛擬化,導致主機管理和應用程序部署更加復雜。
容器在云計算,在數據中心,提供了一種方法創建虛擬主機共享一個系統,并共享物理服務器的一些中間件。這使得組織在服務器可以部署比虛擬機更多的容器。當然,這也意味著數據中心中的主機數量可能會成倍增長更多,同時,為容器系統更容易部署,組織也是像在虛擬中那樣更容易碰到管理的復雜性問題。
公有云中,容器蔓延管理是一個挑戰,但成本卻是一個更大的挑戰。如果云計算中的容器激增,提供商的費用也會大幅增加。更糟糕的是,大多的關于克服容器蔓延的建議都是要降低管理的復雜性,同時對成本不會有影響。
如果你希望為容器化應用控制公有云的費用,那么就減少你部署的容器主機的數量。評估一下下面的三個選擇,來達到減少容器數量,節省成本的目的。
選擇一:組合應用組件許多容器用戶過度配置,這意味著他們將應用打散成可加載的鏡像,他們比所需的更小。如果你不打算重新以不同的方式使用組件的話,就不要分離他們。理想情況下,組合的組件應該在工作流中相鄰,因為這將縮短數據路徑并且提高性能。更少的應用組件也意味著操作更簡單,管理更便宜。
對于那些在你的數據中心中,且期望在公有云中部署的容器化應用,你要審查它們的所有組件。為了減少托管費用,確保在轉向云端之前,你使用是最少的容器服務。
選擇二:云端組合虛擬機與容器第二種減少蔓延成本的選擇是在公有云中組合虛擬機和容器。為了實現這一目標,請在基礎架構即服務平臺中托管你的容器系統,如Docker。如果因為容器服務你使用了多個公有云容器,你可能需要為每一個容器付費。但是,如果你在云中托管了一個虛擬機,并在這個虛擬機中創建你自己的容器托管鏡像,那么結果就是你會在每一個容器上減少成本。然而,但這卻并不同100%保證,這一模型還是存在一些待解決的問題。
例如,在容器系統和裸金屬之間的額外虛擬機將會影響性能。用戶報告稱,這種情況與直接在云計算中運行容器,最好的情況下你可能丟失25%的機器性能,甚至可以達到 40%。你需要看到大幅的成本收益來證明這一方法,并且要仔細選擇你的應用。如果托管應用組件的容器沒有使用過多的資源,如I/O或CPU和內存,但卻需要長時間駐留,那么這種虛擬機和容器的方法就是有效的。
選擇三:無服務器道路第三個選擇是使用無服務器組件代替容器化組件。這種方法直接解決了蔓延問題,因為這讓用戶只對實際使用的流程付費,而不他們消費的托管點。但問題是組織需要經常重設計在無服務器上運行的應用或組件。
使用無服務器計算,應用程序被分成一系列簡單的組件,當組織需要時才會加載他們。就像當你有許多作用的容器化的組件時,托管在容器系統中的虛擬可以良好運行那樣,無服務器計算也做了這樣的應用。你可以調用 上千個應用部件,如果調用不成功,你就不需要付費。
在應用無服務器計算之前 ,審查一下來自重要云提供商的可用框架,例如亞馬遜WEB服務、谷歌云平臺和微軟的Azure。無服務器計算不僅只是一種不同的編程方式;它是一個全新的應用模式。你需要掌握其充分的上下文才能很好地利用它。