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