?性能分析的價值超出了服務負載所需的計算資源或滿足峰值需求所需的應用實例數(shù)量的估計。性能顯然與成功企業(yè)的基本要素掛鉤。它揭示了用戶的總體體驗,包括確定什么會拖慢客戶預期的響應時間,通過設計滿足帶寬要求的內(nèi)容交付來提高客戶粘性,選擇最佳設備,最終幫助企業(yè)發(fā)展業(yè)務。
應用程序的性能決定了軟件能多快完成預期任務。這回答有關應用程序的幾個問題,例如:
峰值負載下的響應時間
與替代方案相比,它易于使用,受支持的功能和用例
運營成本(CPU 使用率、內(nèi)存需求、數(shù)據(jù)吞吐量、帶寬等)
問題
當然,這是對業(yè)務服務的性能工程價值的過度簡化。為了理解在完成我剛剛所描述事情背后的挑戰(zhàn),讓我們把它放到一個真實的稍微有點復雜的場景中。
現(xiàn)實世界的應用程序可能托管在云端。應用程序可以利用非常大(或概念上是無窮大)的計算資源。在硬件和軟件方面的需求將通過云來滿足。從事開發(fā)工作的開發(fā)人員將使用云交付功能來實現(xiàn)更快的編碼和部署。云托管不是免費的,但成本開銷與應用程序的資源需求成正比。
除了搜索即服務Search as a Service(SaaS)、平臺即服務Platform as a Service(PaaS)、基礎設施即服務Infrastructure as a Service(IaaS)以及負載平衡即服務Load Balancing as a Service(LBaaS)之外,當云端管理托管程序的流量時,開發(fā)人員可能還會使用這些快速增長的云服務中的一個或多個:
安全即服務Security as a Service?(SECaaS),可滿足軟件和用戶的安全需求
數(shù)據(jù)即服務Data as a Service?(DaaS),為應用提供了用戶需求的數(shù)據(jù)
登錄即服務Logging as a Service?(LaaS),DaaS 的近親,提供了日志傳遞和使用的分析指標
搜索即服務Search as a Service?(SaaS),用于應用程序的分析和大數(shù)據(jù)需求
網(wǎng)絡即服務Network as a Service?(NaaS),用于通過公共網(wǎng)絡發(fā)送和接收數(shù)據(jù)
云服務也呈指數(shù)級增長,因為它們使得開發(fā)人員更容易編寫復雜的應用程序。除了軟件復雜性之外,所有這些分布式組件的相互作用變得越來越多。用戶群變得更加多元化。該軟件的需求列表變得更長。對其他服務的依賴性變大。由于這些因素,這個生態(tài)系統(tǒng)的缺陷會引發(fā)性能問題的多米諾效應。
例如,假設你有一個精心編寫的應用程序,它遵循安全編碼實踐,旨在滿足不同的負載要求,并經(jīng)過徹底測試。另外假設你已經(jīng)將基礎架構和分析工作結合起來,以支持基本的性能要求。在系統(tǒng)的實現(xiàn)、設計和架構中建立性能標準需要做些什么?軟件如何跟上不斷變化的市場需求和新興技術?如何測量關鍵參數(shù)以調(diào)整系統(tǒng)以獲得最佳性能?如何使系統(tǒng)具有彈性和自我恢復能力?你如何更快地識別任何潛在的性能問題,并盡早解決?
進入容器
軟件容器以微服務設計或面向服務的架構(SoA)的優(yōu)點為基礎,提高了性能,因為包含更小的、自足的代碼塊的系統(tǒng)更容易編碼,對其它系統(tǒng)組件有更清晰、定義良好的依賴。測試更容易,包括圍繞資源利用和內(nèi)存過度消耗的問題比在宏架構中更容易確定。
當擴容系統(tǒng)以增加負載能力時,容器應用程序的復制快速而簡單。安全漏洞能更好地隔離。補丁可以獨立版本化并快速部署。性能監(jiān)控更有針對性,測量更可靠。你還可以重寫和“改版”資源密集型代碼,以滿足不斷變化的性能要求。
容器啟動快速,停止也快速。它比虛擬機(VM)有更高效資源利用和更好的進程隔離。容器沒有空閑內(nèi)存和 CPU 閑置。它們允許多個應用程序共享機器,而不會丟失數(shù)據(jù)或性能。容器使應用程序可移植,因此開發(fā)人員可以構建并將應用程序發(fā)送到任何支持容器技術的?Linux?服務器上,而不必擔心性能損失。容器生存在其內(nèi),并遵守其集群管理器(如 Cloud Foundry 的 Diego、Kubernetes、Apache Mesos 和 Docker Swarm)所規(guī)定的配額(比如包括存儲、計算和對象計數(shù)配額)。
容器在性能方面表現(xiàn)出色,而即將到來的 “serverless” 計算(也稱為功能即服務Function as a Service(FaaS))的浪潮將擴大容器的優(yōu)勢。在 FaaS 時代,這些臨時性或短期的容器將帶來超越應用程序性能的優(yōu)勢,直接轉化為在云中托管的間接成本的節(jié)省。如果容器的工作更快,那么它的壽命就會更短,而且計算量負載純粹是按需的。
?
評論