企業(yè)擴(kuò)展其應(yīng)用程序以滿足業(yè)務(wù)需求并不少見,但是他們需要意識(shí)到運(yùn)營云計(jì)算環(huán)境面臨的復(fù)雜性問題。
對于大多數(shù)企業(yè)來說,采用云計(jì)算技術(shù)并不是什么獨(dú)特的體驗(yàn),但在云平臺(tái)中運(yùn)營和在云平臺(tái)中擴(kuò)展業(yè)務(wù)之間有著顯著的區(qū)別。
隨著云原生組織的規(guī)模和復(fù)雜性的不斷增長,企業(yè)IT團(tuán)隊(duì)將不可避免地遇到許多新問題,這些問題使管理不斷增長的云計(jì)算服務(wù)需求變得既困難又費(fèi)時(shí)。
如果企業(yè)的IT團(tuán)隊(duì)不熟悉和不擅長管理不斷增長的和需求相關(guān)的常見挑戰(zhàn),那么大規(guī)模運(yùn)營云計(jì)算服務(wù)可能會(huì)非常困難。為確保企業(yè)為應(yīng)對云計(jì)算業(yè)務(wù)擴(kuò)展的挑戰(zhàn)做好準(zhǔn)備,以下對6個(gè)復(fù)雜性問題進(jìn)行分析和探討。
1.管理開發(fā)環(huán)境成本
大多數(shù)應(yīng)用程序在開始應(yīng)用時(shí)通常都是專注于解決單個(gè)問題的小規(guī)模的服務(wù),并且出現(xiàn)問題也能夠很好地解決。但是隨著企業(yè)的發(fā)展,客戶的需求也會(huì)大幅增長。雖然這是可以管理的,但只能在一定程度上應(yīng)對。而每增加一項(xiàng)功能,應(yīng)用程序基礎(chǔ)設(shè)施的復(fù)雜性就會(huì)增加,相關(guān)成本也會(huì)隨之增加。
而弄清楚如何管理不斷增長的開發(fā)環(huán)境的成本幾乎與弄清楚如何管理開發(fā)環(huán)境本身一樣困難。實(shí)際上,這兩個(gè)問題是交織在一起的。
大多數(shù)企業(yè)首先在其內(nèi)部部署數(shù)據(jù)中心中為工程師提供類似的開發(fā)環(huán)境。這樣可以降低成本,并確保開發(fā)人員(無論是否遠(yuǎn)程)不會(huì)因?yàn)榈卿泦栴}、互聯(lián)網(wǎng)速度或可用性而降低生產(chǎn)率。
但是當(dāng)企業(yè)的業(yè)務(wù)在云平臺(tái)中以一定規(guī)模運(yùn)營時(shí),這些做法變得不切實(shí)際,并且需要?jiǎng)?chuàng)建具有更多專用資源的基于云計(jì)算的開發(fā)環(huán)境。隨著時(shí)間的推移,使用更多基于云計(jì)算的資源可能會(huì)支付更多的費(fèi)用。
找到一個(gè)平衡點(diǎn)具有挑戰(zhàn)性,但是對生產(chǎn)率和效率的需求應(yīng)該超過實(shí)現(xiàn)生產(chǎn)平衡的愿望。創(chuàng)建和支持流程是一個(gè)很好的起點(diǎn),可以使開發(fā)人員能夠在內(nèi)部部署數(shù)據(jù)中心上運(yùn)行應(yīng)用程序基礎(chǔ)設(shè)施的一個(gè)子集,同時(shí)通過模擬或共享服務(wù)填補(bǔ)空白。
2.評(píng)估云平臺(tái)原生工具
在云平臺(tái)中進(jìn)行擴(kuò)展的時(shí)候,企業(yè)都必須做出選擇:使用最方便的工具還是使用最便攜的工具。開源工具和服務(wù)使企業(yè)能夠隨著工作負(fù)載需求的變化從一個(gè)云平臺(tái)過渡到另一個(gè)云平臺(tái)。但是,第三方工具通常可以更有效地解決他們的問題。
但是,由于并非每個(gè)云計(jì)算提供商都能滿足客戶的需求,因此供應(yīng)商鎖定對于IT團(tuán)隊(duì)是一個(gè)非?,F(xiàn)實(shí)的問題。無論企業(yè)選擇哪一個(gè)云計(jì)算提供商,都應(yīng)該采用“并發(fā)”方法來解決問題。這可以幫助企業(yè)確定適合其業(yè)務(wù)的正確工具,而不是適合云平臺(tái)的正確工具。
隨著多云的應(yīng)用變得越來越普遍,這變得更加必要。如果企業(yè)專注于采用解決正確問題的服務(wù),同時(shí)又投資將這些服務(wù)結(jié)合在一起的工具,則將會(huì)擁有更大的靈活性。
3.規(guī)模測試
隨著數(shù)據(jù)的增長,了解不同規(guī)模運(yùn)營的限制至關(guān)重要。當(dāng)然,企業(yè)可以防范性能不佳的數(shù)據(jù)庫查詢并盡早引入緩存,但是要進(jìn)行規(guī)模測試,不僅需要防御性的開發(fā)實(shí)踐,而且了解應(yīng)用程序在增加流量的性能與了解應(yīng)用程序在增加數(shù)據(jù)的性能同等重要。但是如何進(jìn)行測試呢?
企業(yè)盡早構(gòu)建可利用應(yīng)用程序基礎(chǔ)設(shè)施的工具。構(gòu)建類似于生產(chǎn)的過渡環(huán)境可能代價(jià)高昂,但是如果能夠使用代表其生產(chǎn)環(huán)境的數(shù)據(jù)和流量來測試應(yīng)用程序,則可以在潛在的瓶頸變成真正的問題之前就將其識(shí)別出來。企業(yè)了解其云計(jì)算環(huán)境的局限性至關(guān)重要,而采用積極的規(guī)模擴(kuò)展方法比被動(dòng)方法的成本低得多。
4.打破知識(shí)孤島
企業(yè)的IT團(tuán)隊(duì)面臨的最大的云計(jì)算擴(kuò)展挑戰(zhàn)是如何應(yīng)對和打破知識(shí)孤島。當(dāng)規(guī)模很小的時(shí)候,對于處理API或數(shù)據(jù)庫的工作人員很容易處理,而且效率很高。
企業(yè)的IT專家可以在每個(gè)領(lǐng)域?qū)崿F(xiàn)更一致的開發(fā),而其開發(fā)團(tuán)隊(duì)需要更好地理解每個(gè)領(lǐng)域的差別。然而,隨著云計(jì)算技術(shù)的發(fā)展進(jìn)步,這些專家的知識(shí)和經(jīng)驗(yàn)可能會(huì)面臨瓶頸。他們所關(guān)注領(lǐng)域發(fā)生的任何變化通常需要他們的知識(shí)和經(jīng)驗(yàn)進(jìn)行解釋和監(jiān)督。
盡管這些知識(shí)孤島的安全性很高,但也存在一定的風(fēng)險(xiǎn)。例如企業(yè)的員工離職的話,那么有關(guān)重要基礎(chǔ)設(shè)施的背景和細(xì)節(jié)的信息有可能會(huì)泄露或丟失。
要真正打破知識(shí)孤島,就需要多人來負(fù)責(zé)。記錄流程或過程很重要,但是必須確定應(yīng)該對其進(jìn)行管理的團(tuán)隊(duì)或部門,正確地將文檔交給這一團(tuán)隊(duì)至關(guān)重要。
5.獲得并保持可見性
在大多數(shù)應(yīng)用程序的早期階段,像監(jiān)視、日志聚合、度量和異常監(jiān)視這樣的概念都很簡單,而且通常成本不高。大多數(shù)云計(jì)算提供商提供云原生工具來滿足這些需求。
如果這些工具還不夠好,那么企業(yè)從第三方和開源服務(wù)中獲得的功能就足以滿足早期需求。但是,隨著大規(guī)模運(yùn)行云計(jì)算服務(wù)的需求增加,這些第三方選擇的成本可能是巨大的。這也可能非常耗時(shí)。
要獲得對應(yīng)用程序基礎(chǔ)設(shè)施的可見性,最好從小處著手,然后再擴(kuò)大規(guī)模。監(jiān)視工具應(yīng)該很容易根據(jù)需要進(jìn)行替換和修改。重要的是要記住,監(jiān)視的數(shù)據(jù)必須是可用的。此外,企業(yè)需要獲得可見性確保自己處于領(lǐng)先地位。
6.避免微服務(wù)的困境
大規(guī)模管理應(yīng)用程序可能會(huì)很復(fù)雜,這就是很多企業(yè)在出現(xiàn)問題直接采用微服務(wù)的原因,但這并不是正確的做法。
成功的面向服務(wù)的架構(gòu)需要仔細(xì)規(guī)劃和考慮,操之過急可能會(huì)導(dǎo)致更多的技術(shù)債務(wù)和問題。
如果企業(yè)沒有將整體服務(wù)拆分為多種微服務(wù)的經(jīng)驗(yàn),那么最重要的事情就是提前確定客戶或微服務(wù)之間的合同。如果不能隨便啟動(dòng)新服務(wù)并定義詳細(xì)信息,可能會(huì)超出計(jì)劃的要求。
建立從監(jiān)視到身份驗(yàn)證再到協(xié)議的每項(xiàng)服務(wù)都必須遵守一系列標(biāo)準(zhǔn)。無論企業(yè)是選擇Prometheu、OAuth還是REST等服務(wù),重要的是要做出決定,記錄下來并執(zhí)行。