上午7點(diǎn),你早早地趕到辦公室,希望在沒(méi)有他人訪問(wèn)公司公有云的時(shí)候,庫(kù)存應(yīng)用程序能做好更改的準(zhǔn)備。然而,即使早上這段時(shí)間只有少量的用戶在線,應(yīng)用的性能仍然乏善可陳。
你會(huì)條件反射地認(rèn)為,這一定是供應(yīng)商的責(zé)任。確實(shí),供應(yīng)商是應(yīng)用程序和數(shù)據(jù)的宿主,因此它必須承擔(dān)所有的性能問(wèn)題,是嗎?不。
筆者在訪談?wù){(diào)查中發(fā)現(xiàn),性能問(wèn)題的誘因,十之八九是來(lái)自于應(yīng)用程序設(shè)計(jì)和支持技術(shù)的選擇,而不是云基礎(chǔ)設(shè)施的問(wèn)題。這很容易理解,你在云中所使用的資源是可以根據(jù)需求隨時(shí)擴(kuò)展的。
我們可以這樣理解:
把糟糕的應(yīng)用程序轉(zhuǎn)移到云上,也只是變成了一個(gè)糟糕的云應(yīng)用程序而已。
目前的情況是,很多企業(yè)把應(yīng)用程序推向公有云之前,并不會(huì)關(guān)注應(yīng)用程序設(shè)計(jì),或者使用數(shù)據(jù)庫(kù)、中間件或其他使能技術(shù)。編譯,連接到數(shù)據(jù)庫(kù),數(shù)據(jù)開(kāi)始流動(dòng),他們就會(huì)覺(jué)得很好,自己已經(jīng)成功完成云轉(zhuǎn)型了。
事實(shí)是,這不但會(huì)導(dǎo)致性能不好,甚至可能還會(huì)增加云成本50%或60%。因?yàn)楣性茣?huì)耗費(fèi)很多資源去處理一個(gè)設(shè)計(jì)不當(dāng)?shù)膽?yīng)用程序。常見(jiàn)的問(wèn)題是低效的I/O,閑談式應(yīng)用程序,和數(shù)據(jù)庫(kù)的非優(yōu)化查詢——而這些問(wèn)題只是幾十個(gè)會(huì)出現(xiàn)的錯(cuò)誤中的一部分。
解決問(wèn)題的辦法是在IT企業(yè)中大多數(shù)人都不想聽(tīng)到的:應(yīng)用程序需要重構(gòu)。包括對(duì)設(shè)計(jì)進(jìn)行調(diào)整,并使應(yīng)用程序的某些部分利用云本地特性,如原生I/O、數(shù)據(jù)庫(kù)緩存和一系列的其他技巧,以使應(yīng)用程序在云或其他任何平臺(tái)中運(yùn)行良好。
這種事誰(shuí)都不會(huì)喜歡,但我們必須確保在遷移到云時(shí),會(huì)花時(shí)間重新設(shè)計(jì)糟糕的應(yīng)用程序,否則的話,無(wú)論你多早趕到辦公室,都不夠早。