iT邦幫忙

0

出海第一步:搞定業務系統的多區域部署

  • 分享至 

  • xImage
  •  

出海的企業越來越多,他們不約而同開始在全球範圍內部署應用程式。這樣做的原因有很多,例如降低延遲,改善用戶體驗;滿足一些國家或地區的資料隱私法規與合規要求;通過在全球範圍內部署應用程式來提高容災能力和可用性;更好地覆蓋不同地區的市場,並提供針對當地文化和語言的當地語系化體驗……

本文我們將告訴大家,在Linode雲計算平臺上,如何借助VLAN快速實現多區域部署。

首先我們需要明確一些基本概念和思路:

  • VLAN和VPC都是網路隔離方法,可以借此保護部署在公有雲中的基礎設施。通過減少網路攻擊面,同時供我們對需要以及不需要訪問互聯網的應用程式層進行分割,有助於提高整體安全性。

  • “地域”(Region)是指一個雲服務提供者內部包含的不同地理位置,而“區域”(Zone)通常是指在一個地域內提供的多個託管地點。例如,雲服務商可能在北京設立了“北方地域”,並在廣州設立了“南方地域”,每個地域都是通過當地的多個“區域”提供服務的。

  • 除了通過距離使用者更近的地理位置提供延遲更低的服務,多地域部署的應用程式還可以説明我們大幅提高應用程式的可靠性與容錯性。任何可能對一個位置運行的工作負載造成影響的問題(包括硬體故障或本地網路中斷),都可將用戶重新路由到另一個位置從而加以緩解。

部署多地域VLAN

為了在多地域部署的不同VLAN分段之間進行路由,可以使用虛擬私人網路絡(VPN)將VLAN網段捆綁在一起。

首先需要使用一個充當公共路由器的Linode節點將部署在一個地域的所有相關VLAN捆綁在一起。此時,每個VLAN網段都是獨立且隔離的二層域,在自己的第三層子網內運行。各個VLAN網段之間的所有流量都會流經該路由器,我們可以在路由器上通過防火牆規則來管理允許哪些流量在不同網段之間穿越。

https://ithelp.ithome.com.tw/upload/images/20240721/20164635FKLSasQSPn.png

隨後可以配置這個路由器實例,借助公共互聯網和VPN軟體(如WireGuard或IPSec等協定)將其他網段之間的流量橋接在一起。

https://ithelp.ithome.com.tw/upload/images/20240721/201646356mAfYzC77s.png
上述例子展示了一個包含兩個地域的部署。每個地域負責通過一個路由器實例管理兩個獨立VLAN之間的連接,隨後,每個路由器即可使用配置有多個介面的Linode路由器實例在本地橋接多個地域。路由器可通過WireGuard隧道,借助每個地域的公共互聯網橫跨每個地域。

配置NAT出口點

至此,流量已經可以不受地域限制在VLAN之間流動。此外,路由器實例可以充當網路位址轉譯(NAT)出口點,為本地VLAN提供互聯網連接(如果部署路由器實例時未提供本地互聯網連接)。這種配置下,本地路由器實例將被指定為預設閘道器(例如通常會在10.0.0.0/24網路中配置為10.0.0.1)。我們還可以將路由器實例當作安全通訊端外殼(SSH)的管理堡壘機。

實現這類NAT配置的一種常見方法是使用防火牆規則來標記WireGuard流量,並對檢測出的未包含該標記的所有流量進行IP掩蔽(IP
masquerading)。

例如,路由器可配置為使用如下的iptables規則:

iptables -t nat -A POSTROUTING -o eth0 -m mark ! --mark 42 -j MASQUERADE

我們可以配置WireGuard在其配置中使用FirewallMark(如“42”),該配置保證了不對WireGuard流量進行NAT,但對所有VLAN流量進行NAT。

隨後即可配置雲防火牆規則允許路由節點之間的WireGuard通信(通常為udp/51820)。

最後,如果需要,還可以使用防火牆規則配置路由器實例,從而控制或記錄流經本地和全域網段的流量。

注意事項

上述例子中的部署可用於在全球範圍內跨越多個地域實現共用,並借助路由器實例控制不同VLAN網段之間的流量。在通過隧道將多個VLAN網段的流量傳輸至一個聚合點時,務必要瞭解這樣做可能對性能和頻寬產生的影響。此時可獲得的性能主要取決於分配給路由器的計算資源所具備的上行頻寬。

在確定要使用的VPN協定時也需要慎重,這主要是為了保證滿足部署的特定要求。所選擇的技術將對點對點頻寬以及通過公共互聯網所發出的流量的安全性產生極大影響。例如,WireGuard會使用Cryptography來保證流量不被攔截,相比諸如strongSwan這種IPSec實現,可以更好地減少漏洞和暴露,可信度更高。

多雲部署

用來跨越多個地域的這種技術還可用於跨越多個雲平臺。例如,我們可以在另一個雲平臺的網路邊界內部署一個路由器實例,並將其綁定到該實例本地且由雲提供商提供的VPC中。通過在路由器之間使用WireGuard隧道將不同雲提供商的網路橋接在一起,這種做法對於專門在私有網路中保持隔離的服務往往能起到很好的效果。

總結

在設計自己的私有網路時,有很多工具可供我們使用,這樣做的收益往往超過了所帶來的複雜性。如果應用程式和使用者數都在快速增長,妥善設計的環境將有助於降低大部分用戶可能遇到的延遲,從而極大改善用戶體驗。另外,額外的容錯能力也有助於改善服務的可靠性,並改善服務的可用性和可訪問性。

通過上述方法,我們已經可以借助VLAN將應用快速部署到多個區域,從而更好地從現代化雲平臺的分散式架構中獲益。以Linode雲平臺為例,目前這個平臺已經上線了26個核心雲資料中心和超過4100個邊緣計算節點,遍佈全球130多個國家和地區,隨著時間推移,這個龐大的平臺規模和覆蓋面還將繼續擴大。

而這種規模的覆蓋面,為企業提供了大量可部署的位置、有吸引力的成本和高品質服務,説明企業通過大規模部署和運營,借助更靠近邊緣位置的雲解決方案吸引和維繫客戶,在為客戶營造低延遲高性能體驗的同時更好地遵守資料駐留和主權法規,推動業務更穩妥地發展。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言