透過適當的服務和設計,可以提升企業雲應用程式的效能。企業需要考慮一些元素以最佳化其工作負載。
很多企業致力於追求最佳的應用程式效能,但實現它並非易事。在基於主機的內部部署IT環境中,企業必須提供適當調整的資源以實現效能目標。而採用雲端計算技術將使這些考慮因素變得更加複雜,因為它限制了使用者可以定製基礎設施和其他可用功能的程度。
雖然並沒有哪一個雲端計算架構可以保證每個應用程式的最佳效能,但是一些服務和實踐可以提高雲端計算效能。
1.選擇適當的例項
如果組織瞭解其工作負載的資源需求,併為其配置具有適當特徵的例項型別,則會看到深刻的結果。虛擬機器是雲中最常見的例項型別,儘管容器的應用正在快速增長。
其目標是使用最佳分配的虛擬CPU(vCPU)、記憶體和專用特徵來調整例項的大小。如果例項太大,額外的資源對雲端計算工作負載效能並沒有好處,最終會浪費資金。如果例項太小,則會影響負載效能,如果工作負載完全執行的話很難應對。
雲端計算提供商提供無數的例項型別,每種型別都具有vCPU、記憶體、儲存和網路的獨特組合。可以針對特定任務定製這些虛擬機器。例如,AWS公司的EC2 A1例項適合橫向擴充套件和ARM工作負載。另一方面,M4例項平衡了不同應用程式的資源,並有一些針對計算密集型工作負載、記憶體密集型應用程式、人工智慧等進行了最佳化的雲端計算例項。這些使得組織必須選擇正確的選項。
2.實施自動擴充套件服務
傳統上,企業將IT資源擴充套件作為一項臨時工作。由於IT資源有限且在企業的所有權範圍內,因此幾乎不需要快速、動態或自主地進行擴充套件。
但是,公共雲端計算是動態發展的。公共雲提供了按需新增或刪除例項和相關資源的潛力。 AWS、谷歌雲和Microsoft Azure均提供負載平衡和自動擴充套件功能。
組織必須實施適當的規則集,以決定何時以及如何擴充套件,以便提高雲端計算效能。在許多情況下,監控服務跟蹤負載特性,例如平均vCPU利用率。當工作負載超過定義的利用率閾值時,監視警報會觸發自動擴充套件服務,該服務遵循預定義的計劃來新增資源,並設定負載平衡首選項。當負載降至某個閾值以下時,自動擴充套件服務可以反轉該過程並撤回不需要的資源。
如果實施得當,自動擴充套件可以無縫地維護使用者的工作負載效能(例如響應能力),同時還可以管理雲端計算成本。
3.實施快取服務
應用程式需要資料,但訪問儲存會降低響應速度,尤其是當資源遠端或擁有多租戶訪問許可權時。快取是放置在儘可能快的儲存中的頻繁訪問資料的副本,位於儘可能靠近應用程式的位置。與使用常規儲存等待資料相比,應用程式可以使用快取資訊更快地執行涉及資料的任務。雲中可用的快取服務包括Azure Cache for Redis、Amazon ElastiCache和Google App Engine Memcache。
由於快取本身是資料副本,因此如果原始資料發生更改,則可能會導致問題。應用程式開發人員需要規劃如何更新快取內容,以確保主體資料儲存和快取之間的連續性。雲端計算提供商提供了豐富的文件和參考架構,以幫助完成設計過程。
4.採用微服務架構
單片應用程式將主要特性和功能封裝在單個可執行結構中。這是一種久經考驗的軟體開發方法,但是整體可能會對雲中的可擴充套件性和效能帶來挑戰。當傳統的單片應用程式達到其效能極限時,必須部署整個應用程式的全新例項。
微服務將應用程式分解為一系列相互關聯的程式,這些程式單獨部署、操作和擴充套件。這些獨立服務透過API協同工作,以提供應用程式的特性和功能。因此,當一項服務對其效能限制徵稅時,只有該服務必須向外擴充套件。它可以成為管理現代應用程式的一種更快、資源效率更高的方法。
微服務元件可以部署到小型虛擬機器上,但通常依賴於協調的容器平臺,如Azure Service Fabric。
5.採用事件驅動的架構
無
計算已經獲得了開發人員的極大關注,事件驅動的架構可以在無
的雲端計算服務上執行,例如AWS Lambda,Azure Functions和Google Cloud Functions。
雖然伺服器對於在後端操作事件驅動的功能至關重要,但其目的是避免傳統虛擬機器或容器例項的部署和長期操作。而與此相反,企業開發人員將某些軟體行為或功能的程式碼載入到雲平臺中,在雲平臺中,只有在某些現實世界或程式化事件觸發時才會部署和執行。功能完成後,它將被解除安裝,不再消耗雲端計算資源。由雲端計算提供商載入、操作和解除安裝該功能,而不是使用者。
雖然很少有應用程式完全由事件驅動,但開發人員可以使用功能來建立對實際和基於軟體的事件(如物聯網資料流)的高效響應。因此,由於無伺服器元件,整個軟體應用程式可以更小、更簡單,並且針對效能進行了更好的最佳化。
6. 選擇監控服務
永遠不要忽視最佳化雲端計算效能時監控的重要性。公共雲提供商提供各種監控服務,包括Amazon CloudWatch、GCP Stackdriver Monitoring和Azure Monitor。
即使監控對工作負載效能沒有直接影響,這些服務也是公共雲中任何部署的關鍵要素。監控是跟蹤效能指標的唯一客觀方法,它為自動擴充套件等服務決策提供了基礎,並幫助組織確保其雲端計算投資產生的結果。