大量遠(yuǎn)程、分散的,并且時常處于變化的用戶基數(shù)將引起根本上無法預(yù)測的計算需求的浮動,因此需要擁有強(qiáng)力的監(jiān)控和平衡IT資源的技術(shù)能力。
面對不可預(yù)測的工作負(fù)載,應(yīng)用程序負(fù)載平衡以及應(yīng)用程序傳遞控制器改善資源的利用,并加強(qiáng)面向用戶的應(yīng)用程序性能體驗。
將精力投入到理解和選擇適合的應(yīng)用程序負(fù)載平衡技術(shù),將可在使用最少的IT資源情況下保證高標(biāo)準(zhǔn)的用戶體驗。
應(yīng)用程序負(fù)載平衡及相關(guān)控制技術(shù)
借助不同的技術(shù),應(yīng)用程序負(fù)載平衡和應(yīng)用程序交付控制都能夠加強(qiáng)客戶端-服務(wù)器應(yīng)用程序的性能。
負(fù)載平衡需要專用的硬件或軟件來對網(wǎng)絡(luò)流量進(jìn)行監(jiān)聽——例如當(dāng)接收到用戶的請求,它將重新在多個入應(yīng)用程序服務(wù)器這種計算組件之間分配流量。例如,面向高性能的存儲,相對于依靠單個應(yīng)用程序服務(wù)器和網(wǎng)絡(luò)連接以支持不同和不可預(yù)測的水平的用戶流量,公司通常會部署一個應(yīng)用程序服務(wù)器集群與多個網(wǎng)絡(luò)鏈接和冗余訪問通道。負(fù)載平衡幫助IT部署人員掌控更高級別的應(yīng)用程序流量,同時最小化響應(yīng)時間延遲,這體現(xiàn)在潛在不必要的應(yīng)用程序。
負(fù)載平衡也為應(yīng)用程序的可用性進(jìn)一步提升了冗余。當(dāng)應(yīng)用程序服務(wù)器出現(xiàn)問題,流量將對稱或不對稱地重新規(guī)劃到其他可用的服務(wù)器集群中。對稱設(shè)置將在可用的設(shè)備間均勻地分配工作負(fù)載。如果四個服務(wù)器集群中一臺服務(wù)器出現(xiàn)問題,其三分之一的工作量將會被追加到剩余三臺服務(wù)器中的每一臺。不對稱負(fù)載平衡主要用在服務(wù)器并不完全相同的情況,因為一些服務(wù)器比其他設(shè)備擁有更多的計算資源。在這一場景中,剩下三臺服務(wù)器的一臺或兩臺將能夠處理所有故障造成服務(wù)器的流量。
常見的負(fù)載平衡需在服務(wù)器數(shù)量固定,相關(guān)存儲和網(wǎng)絡(luò)設(shè)備均已預(yù)先分配好的情況下才能生效,然而這種情況正在改變。當(dāng)流量需求比規(guī)劃的少時,靜態(tài)方法就是在浪費計算資源,而當(dāng)流量比預(yù)想的高時又不能滿足需求。現(xiàn)代應(yīng)用程序負(fù)載平衡變得越來越聰明,集成了基于規(guī)則的自動化和業(yè)務(wù)流程平臺,具備監(jiān)測流量水平的能力,并根據(jù)流量變化,自動增加服務(wù)器實例并關(guān)閉不需要的實例。這就降低了計算資源的固定承諾,并為應(yīng)用程序提供更大的可伸縮性。
應(yīng)用交付控制器(Application delivery controller,ADC)提供各種網(wǎng)絡(luò)服務(wù):如負(fù)載平衡、網(wǎng)絡(luò)數(shù)據(jù)壓縮、緩存、流量規(guī)劃、應(yīng)用程序安全性、SSL卸載、內(nèi)容變換以及防火墻。供應(yīng)商包括F5 Networks、微軟、KEMP Technologies、Juniper Networks等等。這些服務(wù)代表著改進(jìn)客戶端和服務(wù)器之間的流量流向的智能技術(shù)水平。IT組織通常使用應(yīng)用程序傳遞控制服務(wù)加速網(wǎng)站或基于web的應(yīng)用程序,卸載許多通常由web服務(wù)器執(zhí)行的任務(wù)。
在當(dāng)今的許多案例中,負(fù)載平衡器和ADC幾乎是沒有區(qū)別的。單一的負(fù)載平衡器的概念已經(jīng)幾乎過時,并且當(dāng)今的應(yīng)用負(fù)載平衡器集成了與ADC相同的智能功能——內(nèi)容變換、SSL卸載等。ADC引導(dǎo)性能最佳和資源最多的服務(wù)器的網(wǎng)絡(luò)流量,而在執(zhí)行伴隨著可用資源變化的服務(wù)器自動流量平衡時——與負(fù)載平衡器的工作機(jī)理別無二致。
應(yīng)用程序負(fù)載平衡方法
負(fù)載平衡方法的選擇通常會受到特定的應(yīng)用程序或服務(wù)的影響。HTTP、TCP、UDP和其他流量類型相比于其他協(xié)議,更容易受到相關(guān)方法的影響。在選擇應(yīng)用程序負(fù)載均衡產(chǎn)品時,考慮這些常見的方法:最少連接、輪詢調(diào)度、基于散列和最少時間(響應(yīng))。
最少連接的方法,用最少的活動連接或交互,向服務(wù)器發(fā)送應(yīng)用程序流量。例如,如果現(xiàn)有三臺應(yīng)用程序服務(wù)器,其中一臺服務(wù)器處理10個請求,另一臺服務(wù)器有20請求,第三臺服務(wù)器未處理請求,負(fù)載平衡器將向第三臺服務(wù)器發(fā)送流量。運營經(jīng)理可以將權(quán)重分配給服務(wù)器,允許最少連接算法調(diào)整具備更多更強(qiáng)計算資源的服務(wù)器。
輪詢調(diào)度方法通常是默認(rèn)用于在服務(wù)器間負(fù)載平衡、分發(fā)應(yīng)用程序流量。例如,在3臺應(yīng)用程序服務(wù)器之間,第一個請求與服務(wù)器1交互,第二個請求與服務(wù)器2交互,第三個請求與服務(wù)器三交互,第四個請求回到服務(wù)器1這樣。負(fù)載均衡器在可用的服務(wù)器之間周期地反復(fù)輪詢。IT管理人員也可以分配權(quán)重,這樣更大的和更強(qiáng)大的系統(tǒng)就能在同樣的輪次中處理比其他服務(wù)器更多的請求。或者,根據(jù)實際測量的服務(wù)器性能考慮權(quán)重流量動態(tài)分配。
基于散列的負(fù)載平衡路徑流量適用于數(shù)量具體且有限的應(yīng)用程序服務(wù)器。一組通用散列通過用戶定義的key來向特定的服務(wù)器分配流量,其中可能不包括其他服務(wù)器。IP散列鎖基于IP地址將流量分配到特定的服務(wù)器上。這種操作對于一些無法很好地處理分布式流量的流媒體應(yīng)用程序是非常有用的,或當(dāng)對某應(yīng)用程序同一級別的會話持久性是有益的。然而,基于散列的方法可能會有使部分服務(wù)器未充分使用,而另一部分卻過載。
最少時間的方法是,通過改變最小連接數(shù),通過最少的當(dāng)前連接數(shù)傳遞流量到服務(wù)器,同時保證了最快的響應(yīng)時間。為重視性能且需要服務(wù)器快速響應(yīng)的應(yīng)用程序,或者因地理位置分散而造成不同程度延遲的服務(wù)器選擇此種方法。最少時間方法同樣支持加權(quán)權(quán)重傾斜的流量分配方法,可塑造計算能力更強(qiáng)大的服務(wù)器。