分布式+可移植,上云后降本增效的關(guān)鍵?
試想一下:如果沒有云計算,商業(yè)將會是什么樣子?
云計算和多云戰(zhàn)略的出現(xiàn)為全球企業(yè)帶來了革命性的變化。然而,雖然技術(shù)已經(jīng)發(fā)展了這么多年,但“多云”所固有的復(fù)雜性仍然是企業(yè)面臨的主要痛點。選擇多云戰(zhàn)略的企業(yè),無不希望在提高性能的同時控制云成本支出。是否有什么最佳實踐能和幫助我們實現(xiàn)這一目標(biāo)?
在Akamai看來,隨著技術(shù)的不斷發(fā)展和日漸成熟,目前想要實現(xiàn)這個目標(biāo),方法相比云技術(shù)誕生之初已經(jīng)有了很大區(qū)別?,F(xiàn)在,上云企業(yè)更需要看重的,應(yīng)該是云平臺的“分布式”特性,以及基于微服務(wù)的可移植能力。
分布式云平臺,云原生應(yīng)用的正確解決方案
Akamai委托Forrester Consulting進(jìn)行的“The Great Cloud Reset”研究發(fā)現(xiàn):借助分布式云架構(gòu)的優(yōu)勢,可以順利實現(xiàn)性能與成本之間的平衡。因為分布式云平臺可以解決企業(yè)(尤其是全球化企業(yè))在很多方面遇到的難題。
成本:企業(yè)預(yù)計分布式云計算將有助于全面節(jié)約成本。78%的受訪者表示,避免或最小化出站成本是分布式云合作伙伴的一個關(guān)鍵特征。
性能:需要提高從核心到邊緣的整體網(wǎng)絡(luò)性能。92%的受訪者表示,擁有包含邊緣的靈活云架構(gòu)對于提高性能并為用戶提供更好的體驗是“重要”或“關(guān)鍵”的。
匹配:將正確的工作負(fù)載與正確的云進(jìn)行戰(zhàn)略結(jié)合是分布式架構(gòu)的另一個特征。65%的行業(yè)受訪者表示這有助于優(yōu)化云支出。此外還有63%的人表示,為云選擇合適的工作負(fù)載將增加收入。
簡化:分布式云將幫助企業(yè)解決多云戰(zhàn)略的復(fù)雜性。53%的受訪者將復(fù)雜性視為其主要擔(dān)憂,49%的受訪者表示,控制與蔓延、數(shù)據(jù)出站費(fèi)用和不可預(yù)測的定價相關(guān)的成本是一項重大挑戰(zhàn)。
合規(guī):43%的受訪者表示,他們需要一個能夠滿足全球日益突出的數(shù)據(jù)駐留和主權(quán)要求的云提供商。
此外,很多受訪企業(yè)還表示,分布式云架構(gòu)還能在其他很多方面為自己帶來價值,例如:
行業(yè)性能指標(biāo):當(dāng)API調(diào)用、搜索和結(jié)賬流程等都存在于云生態(tài)系統(tǒng)中時,如何優(yōu)化這些行業(yè)性能指標(biāo)都是工作優(yōu)先列表中的重中之重。分布式云以及分布式數(shù)據(jù)庫等服務(wù)可在擴(kuò)展以滿足不斷增長的客戶群和日益復(fù)雜的應(yīng)用程序的需求時幫助企業(yè)解決這些挑戰(zhàn)。
推動創(chuàng)新:分布式云讓數(shù)據(jù)、計算和存儲更接近客戶,也可以讓業(yè)務(wù)應(yīng)用程序提供面向未來所需的實時分析能力,企業(yè)可以利用分布式云來降低資源成本,同時提供領(lǐng)先于競爭對手的創(chuàng)新。這些創(chuàng)新包括個性化搜索結(jié)果、量身定制的產(chǎn)品推薦、社交分享和推薦、實時庫存管理、等候室、動態(tài)定價功能等。
改善用戶體驗:在整個分布式云平臺中分配工作負(fù)載還能在客戶體驗方面獲得回報。當(dāng)企業(yè)利用特定云最擅長的功能時,就可以實現(xiàn)工作負(fù)載效率的優(yōu)化,這反過來也會改善用戶體驗。
對于跨國企業(yè)來說,有必要在全球多個國家和地區(qū)運(yùn)行工作負(fù)載。借助多個云平臺良好分配的工作負(fù)載不僅可以提高性能,還可以滿足有關(guān)數(shù)據(jù)駐留和主權(quán)的日益嚴(yán)格的法規(guī)。
Forrester采訪過的專業(yè)人士幾乎一致認(rèn)為,遷移到分布式云計算平臺是構(gòu)建和部署云原生應(yīng)用程序的正確解決方案。該舉措有助于提升競爭優(yōu)勢、改善客戶體驗并提高利潤。
基于微服務(wù)的可移植性,讓服務(wù)變得更高效
云平臺的可移植性是指將應(yīng)用程序和數(shù)據(jù)輕松遷移或部署到不同云服務(wù)提供商或云環(huán)境的能力。這種能力對企業(yè)來說具有重要意義??梢浦驳脑破脚_在降本增效方面的作用主要是通過下面幾方面體現(xiàn)的:
提高靈活性和自由度,使企業(yè)能夠更輕松地在不同云服務(wù)商之間進(jìn)行選擇,從而更有效地利用云資源。
成本優(yōu)化,根據(jù)性能要求、定價模型以及服務(wù)質(zhì)量選擇最具成本效益的云,并根據(jù)需求靈活調(diào)整。
避免供應(yīng)商鎖定,降低供應(yīng)商鎖定風(fēng)險,從而更靈活地適應(yīng)市場變化、技術(shù)創(chuàng)新以及競爭對手的行動。
快速部署和遷移,幫助企業(yè)更快地響應(yīng)市場需求或擴(kuò)展業(yè)務(wù)。
增強(qiáng)業(yè)務(wù)的可靠性和彈性,需要時可以快速切換到另一個云平臺,從而最大程度減少業(yè)務(wù)中斷。
那么問題來了:如何確保自己要在云中運(yùn)行的應(yīng)用程序和工作負(fù)載,本身就能靈活適應(yīng)不同云平臺,從而能從一個平臺順利、安全地遷移到其他平臺呢?微服務(wù)架構(gòu)!
與傳統(tǒng)的單體式應(yīng)用不同,微服務(wù)架構(gòu)的應(yīng)用是可擴(kuò)展,并且是專注于單一職能的。這種架構(gòu)的應(yīng)用,會由每個自包含的模塊化單元負(fù)責(zé)處理一個更大規(guī)模系統(tǒng)中的一個特定功能,而大型應(yīng)用程序往往就可以由這種模塊化的組件或服務(wù)(如容器或無服務(wù)器計算)構(gòu)建而成。
我們可以將微服務(wù)看作由不同部門、預(yù)算和要求組成的業(yè)務(wù)。每年,這些要求都會根據(jù)公司需求的變化而變。隨著時間推移,我們的應(yīng)用程序也會面對不斷變化的要求,其中的某些方面可能會產(chǎn)生更多需求,有些方面則需要我們投入更多關(guān)注。此外,應(yīng)用程序中的不同方面可能還需要進(jìn)行不同程度的擴(kuò)展或縮放。微服務(wù)可以幫助我們在不影響其他方面的情況下,以獨立的方式對應(yīng)用程序中的某些方面進(jìn)行縮放或擴(kuò)展。
微服務(wù)應(yīng)該只負(fù)責(zé)做一件事,并且做好這件事。此外,通過使用微服務(wù),我們還能在彈性和容錯能力方面獲得一些固有的好處。微服務(wù)架構(gòu)旨在通過將故障約束到單個服務(wù)來防止出現(xiàn)影響整個系統(tǒng)的故障。如果出現(xiàn)特定故障,我們將知道故障位于哪里,并能在不影響其他東西的情況下解決這種故障。
使用微服務(wù)的原因
所以為什么要使用微服務(wù)?希望借助微服務(wù)架構(gòu)提高應(yīng)用和工作負(fù)載的可移植性,進(jìn)而利用可移植的云平臺降本增效。那么具體來說,這個目標(biāo)又是如何實現(xiàn)的?Akamai認(rèn)為,微服務(wù)可以幫助企業(yè)實現(xiàn):
更快的上市時間:微服務(wù)可以并行開發(fā)和部署多個組件,從而加速整體開發(fā)流程,縮短交付新功能所需的時間。
提高可擴(kuò)展性:微服務(wù)可以獨立擴(kuò)展,從而讓企業(yè)更高效地分配資源,同時更高效地處理不同工作負(fù)載或流量模式。
增強(qiáng)彈性:微服務(wù)去中心化的本質(zhì)特性降低了系統(tǒng)范圍內(nèi)故障的風(fēng)險,保證了持續(xù)的服務(wù)可用性以及更高的系統(tǒng)整體可靠性。
靈活性和適應(yīng)性:微服務(wù)可以讓企業(yè)為不同組件使用不同技術(shù)和框架,從而更容易適應(yīng)不斷變化的需求或融入新技術(shù)。
簡化維護(hù)和更新:微服務(wù)的模塊化設(shè)計簡化了系統(tǒng)的維護(hù)和更新,因為每個組件都可以在不影響整體系統(tǒng)的前提下單獨升級或替換。
微服務(wù)最佳實踐
根據(jù)對年來的工作經(jīng)驗以及與不同行業(yè)客戶的交流,Akamai認(rèn)為在微服務(wù)的實施過程中,有很多重要的注意事項,這些事項只要考慮周全,就可以幫助企業(yè)減少很多麻煩,更進(jìn)一步地發(fā)揮云平臺的各種效益。
簡單來說,Akamai認(rèn)為,在實施微服務(wù)架構(gòu)時候最需要注意的就是保持微服務(wù)規(guī)模小巧、專注于負(fù)責(zé)單一業(yè)務(wù)能力,這一點至關(guān)重要。這樣我們才能輕松添加額外的功能并避免蔓延。然而,每個微服務(wù)的理想規(guī)模是多少,這并沒有什么明確標(biāo)準(zhǔn),而是需要根據(jù)具體應(yīng)用及實際需求來決定。
我們還需要針對失敗進(jìn)行相關(guān)設(shè)計。雖然多個服務(wù)和微服務(wù)運(yùn)行過程中,按照設(shè)計本身就具備與生俱來的容錯能力,但額外的設(shè)計可以增加額外的彈性,例如重試機(jī)制、斷路器以及隔板。想象一下船舶為什么會安裝隔板。這些隔板可以保證船舶的結(jié)構(gòu)完整性,而如果船艙漏水,隔板關(guān)閉,也可以保證船不會沉沒。
微服務(wù)應(yīng)該圍繞領(lǐng)域驅(qū)動(Domain-driven)的設(shè)計原則來設(shè)計,這意味著要基于業(yè)務(wù)能力對服務(wù)建模,并使用通用語言來保障服務(wù)符合業(yè)務(wù)需求。領(lǐng)域驅(qū)動的設(shè)計側(cè)重于圍繞對業(yè)務(wù)的深入理解來打造軟件系統(tǒng),其原則有助于指導(dǎo)設(shè)計過程,確保軟件與領(lǐng)域保持一致且能為業(yè)務(wù)提供價值。這些原則共同促進(jìn)了對業(yè)務(wù)領(lǐng)域的深入理解,有助于確保開發(fā)工作能與業(yè)務(wù)需求和不斷變化的要求緊密契合。
采取以API為先的方法進(jìn)行設(shè)計并實現(xiàn)API網(wǎng)關(guān),借此即可提供中央連接點,從而促進(jìn)微服務(wù)和第三方子系統(tǒng)之間的通信。API網(wǎng)關(guān)負(fù)責(zé)處理大部分路由工作,以及身份驗證、認(rèn)證、速率限制等工作。API的設(shè)計模式對于微服務(wù)的模塊化和可復(fù)用能力至關(guān)重要。
最后,對于微服務(wù),還有下列這些最佳實踐:
自動化測試和部署:使用持續(xù)集成和持續(xù)部署(CI/CD)管道等自動化工具測試和部署微服務(wù),從而降低錯誤風(fēng)險,確保以快速、一致的方式部署服務(wù)。
使用容器:容器提供了一種輕量級、可移植的方式來打包和部署微服務(wù)。使用容器有助于簡化部署流程,改善應(yīng)用程序的可擴(kuò)展性和可移植性。
監(jiān)視和觀察:微服務(wù)需要不斷監(jiān)視和記錄,以確保按照預(yù)期運(yùn)行,并及時發(fā)現(xiàn)存在的問題或錯誤。日志聚合器和應(yīng)用程序性能監(jiān)視(APM)工具可以幫助我們做到這一切。通過跟蹤,我們還可以進(jìn)一步了解分布式系統(tǒng)中的數(shù)據(jù)流。這三大能力有助于針對性能獲得端到端的可見性。
保護(hù)服務(wù):應(yīng)通過身份驗證、認(rèn)證授權(quán)、加密等最佳實踐措施保護(hù)微服務(wù)的安全,當(dāng)然,容器本身的安全性也不容忽略!為減小整體攻擊面,我們應(yīng)該通過強(qiáng)制執(zhí)行的策略來定義微服務(wù)能與其他服務(wù)通信的內(nèi)容。安全性應(yīng)該成為所有設(shè)計工作的一部分,并且需要在開發(fā)過程的每個階段進(jìn)行徹底的檢查,這樣才能獲得更安全的應(yīng)用程序,并妥善保護(hù)敏感數(shù)據(jù)。
- 上一篇
金融分布式系統(tǒng)中數(shù)據(jù)治理的四大陷阱
分布式系統(tǒng)的復(fù)雜性,需要整合來自多個不同來源的數(shù)據(jù),進(jìn)一步增加了數(shù)據(jù)治理的復(fù)雜性,這些系統(tǒng)需要復(fù)雜的策略來有效管理數(shù)據(jù)的完整性和安全性。
- 下一篇
為什么公共云的彈性能力很難被發(fā)揮出來?
基礎(chǔ)軟件如數(shù)據(jù)庫、緩存、大數(shù)據(jù)、MQ 等,很難用一個統(tǒng)一的托管框架來解決,這類應(yīng)用的演進(jìn)趨勢是每個品類都在向彈性架構(gòu)演進(jìn),如 Amazon Aurora Serverless,Mongodb Serverless[9],從云廠商到第三方開源軟件商都有共識要能走到徹底的彈性架構(gòu)。