瞭解Azure負載均衡解決方案


在以往咱們建立高可用Web應用程序時,負載均衡器是必不可少的組件。咱們都使用傳統內部服務器的負載均衡器,其中咱們的應用程序在N個實例上運行,負載均衡器位於這些服務器的前面,並根據某些預約義的算法和設置向後端服務器分配負載。算法

遷移到雲中,咱們須要瞭解如何使用Azure組件實現相同的負載平衡。雲應用程序中的負載平衡須要更多的考慮,即在一些服務器前面有一個簡單的負載平衡器,就像咱們能夠在PaaS上託管服務同樣,咱們能夠爲不一樣的租戶在不一樣的實例上運行服務,也可讓應用程序在分佈在世界各地的多個服務器上運行。後端

出於這個緣由,Azure中有多個可用於負載平衡的組件。這些組件中的每個都有不一樣的目的,咱們須要爲方案選擇正確的組件才能實現最佳的應用程序架構。安全

Azure負載平衡解決方案服務器

Azure中主要有3個負載平衡組件。網絡

l Azure負載均衡器架構

l Azure應用程序網關負載均衡

l Azure流量管理器ide

讓咱們逐一瞭解每一個組件,並嘗試瞭解什麼時候有效地使用每一個組件。設計

Azure負載均衡器代理

Azure負載均衡器是一種比較經典的負載均衡器,由於它能夠用於平衡VM的負載,就像咱們使用傳統負載均衡器與咱們的內部部署服務器同樣。如今,因爲Azure負載均衡器是專爲雲應用程序而設計,所以它還可用於平衡負載與容器和PaaS應用程序以及VM。

clip_image002

可是這種與傳統負載均衡器的類似之處在於,Azure負載均衡器的工做原理是傳輸層(OSI模型的第4層)。這意味着它將在同一個Azure數據中心分發網絡流量,但不能使用會話和應用層提供的傳統負載平衡器的特性,由於這些是OSI模型的第7層構造。

負載均衡器配置有負載平衡規則,這些規則在端口級別工做。它接受源端口和目標端口將它們映射在一塊兒,這樣每當它接收到對源端口的請求時,該請求就會從鏈接到目標端口上的負載均衡器的一組虛擬機(或VNET中的應用程序)轉發到虛擬機。

Azure負載均衡器可用於兩種配置模式:

l 外部 - 公共負載平衡

l 內部 - 內部負載平衡

外部 - 公共負載平衡

在此模式下,爲負載均衡器分配一個公共IP地址,以確保負載均衡器能夠接受來自Internet的請求。客戶端應用程序和服務將從Internet調用負載均衡器,而後根據配置的規則,它將經過VM,容器或應用程序分發傳入流量。

內部 - 內部負載平衡

內部負載均衡器與外部負載均衡器基本相同,但它使用專用IP地址,所以只能從與其鏈接的虛擬網絡中的應用程序進行調用。

Azure負載均衡器幫助咱們在基礎架構級別設計高可用性,可是因爲有些狀況須要咱們的負載平衡組件提供更高級的功能和服務,如鏈接關聯性,安全性,SSL終止等,咱們沒法使用Azure負載均衡器來實現這些高級功能咱們須要一個能夠處理OSI模型的第7層結構的解決方案,即應用程序,會話等。讓咱們看看咱們如何在下一節中實現這一點。

Azure應用程序網關

Azure應用程序網關是一個7層負載均衡器,所以它能夠對訪問應用程序的會話進行有效負載,使應用程序網關除了提供負載均衡功能外還能提供更多的功能。如粘性會話、鏈接親和力等。因爲與Azure負載均衡器相比,應用程序網關具備更多的功能,所以能夠配置更復雜的路由和負載平衡。應用程序網關充當反向代理服務。它終止客戶端鏈接,並將請求轉發到後端端點。。

clip_image004

我我的認爲,若是咱們在應該使用公共負載平衡器的應用程序級別上運行工做負載,那麼在更多的用例中,應用程序網關的使用比使用負載平衡器更有意義。

應用程序網關能夠被認爲是在第7層上運行的,並提供了比負載均衡器更多的功能。應用程序網關還可用於基於URL路由流量,這對於開發多租戶應用程序很是有用,其中每一個租戶都有獨立的VM運行實例和URL中的租戶標識符。

Azure流量管理器

到目前爲止,咱們已經看到了知足數據中心內負載平衡的負載平衡解決方案。負載平衡器和應用程序網關是用於在數據中心內實現高可用性的組件。可是經過雲,咱們還能夠以地理上分佈的方式構建咱們的應用程序。那麼咱們如何平衡地理位置之間的負載。

Azure流量管理器僅用於此目的。Azure流量管理器使用DNS將請求重定向到適當的地理位置端點。流量管理器不會看到客戶端和服務之間傳遞的流量。它只是根據最合適的端點重定向請求。地理位置端點是面向互聯網的可訪問公共URL。

clip_image006

Azure流量管理器在DNS級別工做,即它使用DNS級別配置的規則在多個區域和數據中心分配負載。客戶端發出DNS請求,並根據DNS的位置,Azure Traffic Manager將找到最近的區域,並經過DNS響應將其發送回客戶端。

相關文章
相關標籤/搜索