瞭解Azure負載均衡解決方案


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

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

出於這個原因,Azure中有多個可用於負載平衡的組件。這些組件中的每一個都有不同的目的,我們需要爲方案選擇正確的組件才能實現最佳的應用程序架構。

Azure負載平衡解決方案

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

l Azure負載均衡器

l Azure應用程序網關

l Azure流量管理器

讓我們逐一瞭解每個組件,並嘗試瞭解何時有效地使用每個組件。

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響應將其發送回客戶端。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章