想避免每月的云價(jià)位震撼?使用容器、容量預(yù)購(gòu)等更多的云成本管理策略將幫助你牽制失控的云支出。
在云中經(jīng)營(yíng)業(yè)務(wù)與在本地部署中經(jīng)營(yíng)業(yè)務(wù)有著根本的不同。當(dāng)操作不同時(shí),牽制成本的策略也有所不同。
從經(jīng)濟(jì)方面來(lái)說(shuō),數(shù)據(jù)中心需要大量的建設(shè)資本支出,服務(wù)器和軟件許可證的額外資本支出,以及為服務(wù)器和冷卻系統(tǒng)供電以及維護(hù)和管理的較小但重要的運(yùn)營(yíng)支出。
在云中沒(méi)有資本支出。相反,它有明顯的運(yùn)營(yíng)支出,以服務(wù)器虛擬機(jī)實(shí)例、存儲(chǔ)、網(wǎng)絡(luò)流量、軟件許可證和其它繁瑣的細(xì)節(jié)來(lái)計(jì)費(fèi)。
從成本管理的角度來(lái)看,將計(jì)算負(fù)載轉(zhuǎn)移到云中有很大的好處,但也有巨大的風(fēng)險(xiǎn)。
當(dāng)有人想要在你的數(shù)據(jù)中心使用新的服務(wù)器機(jī)架時(shí),就需要審批采購(gòu)訂單并掂量其合理性,而這個(gè)過(guò)程是完全受管控的。這需要許可。很多公司也需要6個(gè)月的時(shí)間。一旦安裝了機(jī)架,沒(méi)有人會(huì)注意它的使用強(qiáng)度是多少,除非它的負(fù)載太重以至于性能不佳。是的,這從成本的角度來(lái)考慮是低效的——因此需要推動(dòng)數(shù)據(jù)中心中的虛擬機(jī)和容器(如Docker)來(lái)提高服務(wù)器利用率。
如果有人想要在云中建立一個(gè)新的虛擬服務(wù)器集群,則可能需要幾分鐘的時(shí)間才能將其遷移。雖然你可能需要有新的云資源管理審批或?qū)γ總€(gè)部門的云資源進(jìn)行配額管理的政策,但幾乎所有訪問(wèn)云端賬戶的人都可以在需要時(shí)創(chuàng)建自己想要的內(nèi)容,并先斬后奏——如果管理層發(fā)現(xiàn)的話。
這種自由是好是壞都取決于你的觀點(diǎn)。從業(yè)務(wù)靈活性和功能的角度來(lái)看,這是很好的。從財(cái)務(wù)管理的角度來(lái)看,如果做到正確,可能會(huì)很好,否則這是一個(gè)潛在的災(zāi)難。
在本文中,我將討論如何避免“云價(jià)位震撼”。我將從以優(yōu)化云支出的個(gè)人技術(shù)手段開始,并以云支出管理為主題。
資產(chǎn)利用
據(jù)埃森哲云計(jì)算(Accenture Cloud)的全球董事Michael Liebow稱,云服務(wù)可能導(dǎo)致“僵尸啟示錄”——不是人類僵尸,而是僵尸服務(wù)器。僵尸服務(wù)器利用率低或根本沒(méi)被使用:它們耗費(fèi)你的金錢,但不做任何事情。
Liebow和他的同事們還在其它地方寫了關(guān)于孤立虛擬機(jī)(orphan)的消息,這些是在使用它們的資源被刪除后剩下的服務(wù),以及超大的虛擬機(jī)的過(guò)渡消耗(glutton)。如果管理不當(dāng),這三種病態(tài)的情況可能會(huì)使你的云計(jì)算費(fèi)用增加20%至40%。
要及時(shí)發(fā)現(xiàn)云中未充分利用的資產(chǎn)并不容易、也并非自動(dòng)化。云提供商的賬單只能按月計(jì)一次費(fèi),對(duì)于擁有大量云資產(chǎn)的大型企業(yè)來(lái)說(shuō),可能會(huì)收取超過(guò)1億的費(fèi)用。如果你等收到賬單才行動(dòng),你可能會(huì)因?yàn)樘摂M機(jī)和其它已經(jīng)閑置了30天的服務(wù)而被收取大量費(fèi)用,而它們很久以前就被關(guān)閉或縮減了。
當(dāng)你必須用多個(gè)賬戶管理多個(gè)云時(shí),這更加困難。好消息是,你通常可以每天以電子化的形式提取云計(jì)算提供的信息;壞消息是,你可能需要許可或開發(fā)新的工具來(lái)管理你的云資產(chǎn)。
容量預(yù)購(gòu)
減少你期望使用一年或多年的云資源支出的一種方法是以折扣的形式預(yù)先購(gòu)買你的基礎(chǔ)容量。每個(gè)云提供商的做法都略有不同,并定期更改其計(jì)費(fèi)策略。警告:這是一個(gè)令人困惑的領(lǐng)域,即使提供者聲稱其定價(jià)是透明的。
亞馬遜解釋其預(yù)購(gòu)計(jì)劃:
“與按需實(shí)例的定價(jià)相比,預(yù)留實(shí)例為你提供了巨大的折扣(高達(dá)75%)。此外,當(dāng)預(yù)留實(shí)例被分配到特定的可用區(qū)域時(shí),預(yù)留實(shí)例會(huì)提供容量預(yù)留,在你需要時(shí)啟動(dòng)實(shí)例時(shí)讓你信心倍增。”
“對(duì)于具有穩(wěn)態(tài)或可預(yù)測(cè)使用量的應(yīng)用程序,與使用按需實(shí)例相比,預(yù)留實(shí)例可以顯著地節(jié)省成本。”
亞馬遜推薦預(yù)留實(shí)例:
·穩(wěn)態(tài)使用的應(yīng)用
·可能需要預(yù)留容量的應(yīng)用程序
·可以承諾在1年或3年期限內(nèi)使用EC2以減少其計(jì)算總成本的客戶
作為一個(gè)具體的例子,試想一下運(yùn)行Linux的西弗吉尼亞地區(qū)中的為計(jì)算而優(yōu)化的c4.8xlarge虛擬機(jī)實(shí)例,每小時(shí)按需支付1.591美元,并提供36個(gè)虛擬CPU和60GB內(nèi)存。如果你保留實(shí)例一年并提前付清,你的費(fèi)用可能會(huì)下降到每小時(shí)0.947美元,節(jié)省了40%。如果提前付清標(biāo)準(zhǔn)的3年使用期,費(fèi)用降至每小時(shí)0.621美元,節(jié)省了61%。對(duì)于能讓你更靈活可轉(zhuǎn)換的3年使用期,每小時(shí)收費(fèi)0.739美元,節(jié)省了54%。預(yù)付款每減少一點(diǎn),實(shí)際費(fèi)用就隨之上漲一點(diǎn),但差異大致與時(shí)間成本一致。
客戶可以靈活地更改可用區(qū)域,實(shí)例大小和標(biāo)準(zhǔn)預(yù)留實(shí)例的網(wǎng)絡(luò)類型。可轉(zhuǎn)換的3年預(yù)留實(shí)例提供了額外的靈活性,例如在預(yù)留實(shí)例的期限內(nèi)使用不同實(shí)例群、操作系統(tǒng)或租約的能力。
Azure在其通用D32-v3實(shí)例中具有類似大小的虛擬機(jī)(更少的CPU,更多的RAM),它提供32個(gè)虛擬CPU和128GB內(nèi)存,每小時(shí)按需支付1.60美元。Azure不提供預(yù)留實(shí)例:而是提供了一個(gè)企業(yè)協(xié)議,該協(xié)議承諾制定一個(gè)可以降低價(jià)格的預(yù)付款,盡管折扣級(jí)別尚未公布。
谷歌 提供一個(gè)有32個(gè)虛擬CPU和120GB內(nèi)存的n1-standard-32虛擬機(jī),每小時(shí)1.52美元,每月都有持續(xù)使用的折扣。你不必承諾延長(zhǎng)使用以獲得持續(xù)使用折扣:相反,它將自動(dòng)應(yīng)用于25%,50%和75%使用水平的增量分鐘數(shù)。
谷歌還為虛擬機(jī)提供了承諾使用折扣,你可以通過(guò)購(gòu)買一到三年的承諾合同來(lái)激活。任何使用折扣的資源都不符合持續(xù)使用折扣的條件。通過(guò)使用折扣,虛擬機(jī)價(jià)格比常規(guī)虛擬機(jī)價(jià)格便宜57%。折扣適用于區(qū)域內(nèi)vCPU或內(nèi)存的總數(shù),以便它們不受實(shí)例機(jī)器類型更改的影響。承諾使用折扣沒(méi)有預(yù)付費(fèi)用。承諾使用折扣每個(gè)月都會(huì)應(yīng)用到你的賬單。圈套就在于,無(wú)論你是否使用它們,你都將為承諾付費(fèi)。
競(jìng)價(jià)和低優(yōu)先級(jí)實(shí)例
Amazon EC2 競(jìng)價(jià)實(shí)例允許你對(duì)備用的Amazon EC2計(jì)算能力進(jìn)行出價(jià)。與按需實(shí)例相比,競(jìng)價(jià)實(shí)例常常打折,因此可以顯著降低運(yùn)行應(yīng)用程序的成本,在同樣的預(yù)算下增加應(yīng)用程序的計(jì)算容量和吞吐量,并啟用新型的云計(jì)算應(yīng)用程序。
當(dāng)你的出價(jià)超過(guò)現(xiàn)貨價(jià)格時(shí),并且與按需實(shí)例相比能提供50-90%的折扣時(shí),即可運(yùn)行競(jìng)價(jià)實(shí)例。使用競(jìng)價(jià)實(shí)例,收取的費(fèi)用就不會(huì)超過(guò)你指定的最高價(jià)格。當(dāng)你的實(shí)例運(yùn)行時(shí),你將按該期間生效的競(jìng)價(jià)價(jià)格付費(fèi)。如果競(jìng)價(jià)價(jià)格超過(guò)你的指定價(jià)格,你的實(shí)例將在終止前收到兩分鐘的通知,你的實(shí)例運(yùn)行的超出部分的時(shí)間將不會(huì)被收費(fèi)。
如果你的競(jìng)價(jià)實(shí)例請(qǐng)求包含持續(xù)時(shí)間要求,你的實(shí)例將繼續(xù)運(yùn)行,直到你選擇終止它為止,或者直到指定的持續(xù)時(shí)間結(jié)束為止;由于競(jìng)價(jià)價(jià)格的變化,你的實(shí)例將不會(huì)被終止。我查了一下,目前,一臺(tái)帶有Linux的c4.8xlarge虛擬機(jī)的競(jìng)價(jià)實(shí)例在北弗吉尼亞地區(qū)每小時(shí)的成本為0.3591美元,而按需則為每小時(shí)1.591美元。
Azure將其等同于AWS的競(jìng)價(jià)實(shí)例的東西稱為“低優(yōu)先級(jí)”。當(dāng)我查看時(shí),東區(qū)的低優(yōu)先級(jí)D32-v3實(shí)例每小時(shí)成本為0.345美元,而按需則為每小時(shí)1.60美元。但是,我無(wú)法在賬戶中選擇此選項(xiàng)。
谷歌 推出的與競(jìng)價(jià)實(shí)例對(duì)應(yīng)的東西稱作“搶占式實(shí)例”。搶占式虛擬機(jī)是一個(gè)實(shí)例,你能以比正常實(shí)例低得多的價(jià)格創(chuàng)建和運(yùn)行。但是,如果Compute Engine需要訪問(wèn)其它任務(wù)的資源,則可能會(huì)終止(搶占)這些實(shí)例。搶占式實(shí)例是額外的Compute Engine容量,因此其可用性因使用量而異。目前,北弗吉尼亞州地區(qū)的一個(gè)搶占式n1-standard-32實(shí)例每小時(shí)成本為0.3424美元,而全價(jià)為每小時(shí)1.712美元,持續(xù)使用價(jià)格為每小時(shí)1.52美元。據(jù)谷歌的說(shuō)法,搶占式費(fèi)用通常在每個(gè)項(xiàng)目每7天的5%到15%的范圍內(nèi)變化。
容器
未充分利用的服務(wù)器和新機(jī)架的有限空間致使企業(yè)將其數(shù)據(jù)中心的一些專用服務(wù)器轉(zhuǎn)換為虛擬機(jī)的主機(jī)。然后,當(dāng)虛擬機(jī)主機(jī)中的內(nèi)存使用成為問(wèn)題時(shí),企業(yè)會(huì)將部分虛擬機(jī)轉(zhuǎn)換為容器的主機(jī)。
用虛擬機(jī)虛擬化與用容器虛擬化之間的基本區(qū)別在于,除了應(yīng)用程序軟件之外,虛擬機(jī)還包含完整的操作系統(tǒng)和一整套虛擬化硬件,而容器僅包含操作系統(tǒng)的一部分、某些庫(kù)和應(yīng)用程序軟件。虛擬機(jī)和容器都與其它應(yīng)用程序隔離;虛擬機(jī)提供更多的隔離和更好的安全性,盡管內(nèi)存使用成本很高。
云中最昂貴的租賃資源之一是RAM,容器通常只需要三分之一的RAM來(lái)運(yùn)行與虛擬機(jī)相同的軟件。經(jīng)營(yíng)容器中的云資產(chǎn)就成了有吸引力的成本主張,只要減少隔離度不成問(wèn)題。
直到最近,容器的使用才被限制在基于Linux的系統(tǒng)中,并且缺乏對(duì)容器的編排,工具支持和檢測(cè)。這些都不再是真正的問(wèn)題,將你的負(fù)載轉(zhuǎn)移到云中的容器是簡(jiǎn)化操作并減少云支出的好方法。
在AWS,運(yùn)行容器不需要額外的費(fèi)用,你只需支付底層的虛擬機(jī)和存儲(chǔ)空間。Azure可以讓你直接在池中創(chuàng)建和使用容器,并為每個(gè)創(chuàng)建的實(shí)例收取0.0025美元,加上每GB秒0.0000125美元和每核心秒0.0000125美元。例如,如果你同時(shí)運(yùn)行三個(gè)容器長(zhǎng)達(dá)一個(gè)月,并且每個(gè)容器使用1GB的內(nèi)存和2個(gè)內(nèi)核,那么你每月為此支付的費(fèi)用將少于300美元。
Google Container Engine在Kubernetes之下運(yùn)行容器節(jié)點(diǎn)的集群,并運(yùn)行在Compute Engine之上;你為虛擬機(jī)付費(fèi)。Kubernetes管理收取少量費(fèi)用,6個(gè)或更多個(gè)節(jié)點(diǎn)的群集每小時(shí)花費(fèi)0.15美元。
無(wú)服務(wù)器
無(wú)服務(wù)器云計(jì)算,或者更準(zhǔn)確地說(shuō)是功能即服務(wù)(Functions as a Service),有可能大大降低將負(fù)載放入云中所涉及的成本和工作量。AWS Lambda、Bluemix OpenWhisk、Google Cloud Functions和Azure Functions都提供了一個(gè)模型,開發(fā)人員定義了一個(gè)按需運(yùn)行的功能,為該功能創(chuàng)建觸發(fā)器,并設(shè)置了該功能的內(nèi)存分配。當(dāng)有功能需要運(yùn)行時(shí),云計(jì)算基礎(chǔ)架構(gòu)負(fù)責(zé)為該功能分配容器,因此開發(fā)人員不必?fù)?dān)心容量或可擴(kuò)展性。
無(wú)服務(wù)器成本通常基于觸發(fā)器的數(shù)量(通常是可忽略的電荷)、執(zhí)行時(shí)間和使用的內(nèi)存量。單個(gè)功能調(diào)用的運(yùn)行時(shí)間限制為5到10分鐘,具體取決于平臺(tái),但少于一秒的運(yùn)行時(shí)間更常見(jiàn)。大多數(shù)平臺(tái)還限制了可以同時(shí)運(yùn)行的功能的數(shù)量,并且每個(gè)月都提供捆綁的免費(fèi)容量。
按照實(shí)際經(jīng)驗(yàn)來(lái)說(shuō),如果總功能執(zhí)行時(shí)間每月少于50萬(wàn)秒,或大約等于五分之一個(gè)月,則使用無(wú)服務(wù)器功能比運(yùn)行小型虛擬機(jī)便宜。這些數(shù)字因供應(yīng)商而異,無(wú)論你將功能與全價(jià)的虛擬機(jī)實(shí)例還是打折的虛擬機(jī)實(shí)例進(jìn)行比較。
在進(jìn)行成本分析時(shí),你還需要把開發(fā)人員和操作時(shí)間算進(jìn)去,而這個(gè)成本對(duì)于無(wú)服務(wù)器功能而言通常較低,因?yàn)楦嗟墓芾砣蝿?wù)被推送到云提供商。在開發(fā)和運(yùn)營(yíng)成本方面,使用無(wú)服務(wù)器功能可以比運(yùn)行小型虛擬機(jī)更便宜,即使總功能執(zhí)行利用率是每月75%。
使用無(wú)服務(wù)器功能的一個(gè)缺點(diǎn)是計(jì)費(fèi)很復(fù)雜。如果你將功能托管在虛擬機(jī)中,那么該虛擬機(jī)每個(gè)月都會(huì)生成一個(gè)計(jì)費(fèi)欄,無(wú)論功能被調(diào)用了多少次。如果你的無(wú)服務(wù)器功能每月被調(diào)用400萬(wàn)次,則在結(jié)算日志中將有400萬(wàn)個(gè)事件。
云支出管理
鑒于云定價(jià)的復(fù)雜性以及與數(shù)據(jù)中心管理的差異,很多公司需要采用新的云計(jì)算支出管理工具。在互聯(lián)網(wǎng)上搜索“云支出管理”、“云成本管理”或“云管理平臺(tái)”至少會(huì)出現(xiàn)6個(gè)可行的可能性,以及一系列無(wú)關(guān)緊要的結(jié)果。雖然你可以使用本機(jī)的資源標(biāo)簽和報(bào)告功能來(lái)管理單個(gè)云平臺(tái)的使用,但如果你使用兩個(gè)或多個(gè)云提供商,那么很難掌握使用量和成本。
無(wú)論你使用什么工具,管理云支出的關(guān)鍵是標(biāo)注你的資源。如果你查看一個(gè)結(jié)算欄的項(xiàng)目,就馬上能看到它用于與Fizzpop產(chǎn)品相關(guān)的開發(fā)和測(cè)試,這總比你只知道虛擬機(jī)的序列好要好得多。如果該標(biāo)記進(jìn)入你的報(bào)告和管理工具,以便你可以聚焦于圖形中的“僵尸”,并明白了它的預(yù)期目的和集體歸屬,你可以了解實(shí)情,并切實(shí)對(duì)未使用的服務(wù)器虛擬機(jī)采取措施。
管理云成本并不容易,而且大多數(shù)IT組織的數(shù)據(jù)中心都無(wú)法用其具備的ITIL流程和工具真正地做到這一點(diǎn)。為了有效地管理你的云資產(chǎn),你每天都要監(jiān)控成本,必要時(shí)通過(guò)關(guān)閉資源來(lái)進(jìn)行干預(yù)、縮小規(guī)模或?qū)ζ溥M(jìn)行計(jì)劃任務(wù),而不是一直運(yùn)行。