在上一篇《技術文章 | 多架構部署:優(yōu)勢有哪些?》中,我們主要介紹了多架構部署在能耗、占地空間和性能方面帶來的諸多優(yōu)勢。本文將介紹如何把 HPE RL300 服務器引入 x86-only 的 Web 服務部署,并使用直接遷移的方法,將部分應用程序遷移到該服務器。由于大多數(shù)現(xiàn)代的 Web 應用程序都采用基于微服務的架構,因此單獨遷移單個微服務至新型的 Arm 服務器會更為簡便,無需將整個應用程序遷移至 arm64。
接下來,我們將以前端微服務作為多架構部署的一個實際用例。NGINX 是一款應用廣泛的 Web 服務器,適用于網上銀行、社交網絡、電子商務等多種 Web 應用,以及多個并發(fā)用戶在既定網站內瀏覽不同應用程序的場景。下面,本文將詳細介紹如何使用 NGINX 將此類流行的 Web 服務器擴展至 HPE RL300 服務器。
同時,我們還使用橫向擴展(scale-out)的復合 Web 服務評估案例研究的結果,并計算了將前端 NGINX 層遷移到 HPE RL300 服務器所帶來的益處。根據(jù)性能和每瓦性能數(shù)據(jù)的對比,把 NGINX 從某款 x86 處理器遷移到 Ampere Altra Max 處理器后,可節(jié)省多達 1/3 的機架空間,并降低 1/3 的功耗。此外,當整個 Web 服務繼續(xù)在多體系結構部署中運行時,其余的應用層仍在 x86 服務器上保持原狀,且性能不受任何影響。
先決條件
為了實施基于 x86 和 arm64 服務器的多架構部署,至少需要兩臺安裝了 Web 服務器軟件(NGINX)的服務器。其中,一臺采用 x86 處理器,以下稱為“主機 1”;另一臺則是搭載了 Ampere Altra Max 處理器的 HPE ProLiant RL300 服務器,以下稱為“主機 2”。
當然,用戶也可以選擇在某個特定服務器上運行多個虛擬機或容器,而不使用整機。
安裝 NGINX Web 服務器
為了向用戶展示應用程序的網頁內容,需要選用高性能的 Web 服務器 NGINX 作為應用程序的前端。根據(jù)操作系統(tǒng)的不同,可以選擇 YUM 或 APT 包管理工具進行軟件安裝。
sudo yum -y update sudo yum install ca-certificates sudo yum -y install nginx
首先,在 x86 服務器(主機 1)上部署 NGINX,并使其能連接到 NGINX。如果您已經啟用了防火墻,則請確保允許常規(guī) HTTP 流量通過端口 80,8080;如果您配置了 SSL,則還需允許 HTTPS 流量通過端口 443 。
要啟動 NGINX 并驗證狀態(tài),請運行以下代碼:
sudo systemctl start nginx sudo systemctl status nginx
通過 Web 瀏覽器連接到主機 1 的 IP 地址或主機名。如果您看到的是 NGINX 默認登陸頁面,說明您已成功安裝了 NGINX,并啟用了 Web 服務器的 HTTP 流量。

將 NGINX 配置為負載均衡器
在大規(guī)模集群部署中,可以使用多臺服務器托管 Web 應用程序的前端服務。負載均衡能夠帶來諸多好處,比如能夠實現(xiàn)應用程序的跨服務器擴展,提升程序性能,優(yōu)化用戶體驗,以及增強冗余性。
NGINX 憑借其簡潔而強大的特性,可作為負載均衡器,有效提升服務器資源的利用率和運行效率。您只需按照指令配置 NGINX,指定其監(jiān)聽連接的位置以及重定向的目標,即可實現(xiàn)負載均衡。
為了配置負載均衡,需要修改 NGINX 配置文件。默認情況下,該文件名為 **nginx.conf**,并放置在 **/etc/nginx** 目錄下。然而,具體的位置可能會根據(jù)安裝 NGINX 時所使用的軟件包管理系統(tǒng)和操作系統(tǒng)而定。
在 x86 服務器(主機 1)上,需要編輯 NGINX 配置文件,并定義 upstream 和 server 兩個模塊,具體操作如下:
# Define which servers to include in the load balancing scheme. http { upstream backend { server host1:8080; } # This server accepts all traffic to port 80 and passes it to the upstream. # Notice that the upstream name and the proxy_pass need to match. server { listen 80; location / { proxy_pass http://backend; } } # Use port 8080 for the web server configuration server { listen 8080; } }
要為 HTTPS 而不是 HTTP 配置負載均衡,只需使用"https"作為協(xié)議,然后使用以下命令重新啟動 NGINX。
sudo systemctl restart nginx
檢查 NGINX 是否成功重啟。當您在網絡瀏覽器中輸入負載均衡器的公共 IP 地址時,它會將請求傳遞給主機 1 上的后端服務器。
添加 RL300 以創(chuàng)建多架構部署
接下來,我們將在 HPE RL300 服務器(主機 2)上運行一個新的 NGINX 實例,以擴展前端部署。首先,使用上文“安裝 NGINX Web 服務器”部分所述的相同方法,在 RL300 服務器上安裝 NGINX。開源的 NGINX 軟件包在 x86 和 arm64 服務器上都運行良好。為了獲得 NGINX 的最佳性能,Ampere 提供了一些優(yōu)化建議。此外,我們還為提供了針對 arm64 做源代碼編譯和構建 NGINX 的高效指南。
下一步,需要在服務器(主機 2)上配置 NGINX。我們不會將它配置為負載均衡器,服務器部分使用默認的 nginx.conf,端口為 8080。主機 2 上的 nginx.conf 文件將不包含 upstream 模塊,Server 模塊如下所示:
http {
# This server accepts all traffic to port 8080 a
server {
listen 8080;
}
}
安裝完成后,啟動 NGINX 服務,并確保您可以通過 web 服務器上的主機 2 IP 地址訪問 NGINX 默認登陸頁面。
接下來,更新主機 1 上的 NGINX 負載均衡器服務,將新的 RL300 納入 NGINX 負載均衡器配置。編輯主機 1 上的 nginx.conf 文件,在 upstream 模塊添加主機 2 的 IP 地址。
# Define which servers to include in the load balancing scheme. # It's best to use the servers' private IPs for better performance and security. # Add the ip address for RL300 to the upstream. http { upstream backend { server host1:8080; server host2:8080; } # This loadbalancer accepts all traffic to port 80 and passes it to the upstream. # Notice that the upstream name and the proxy_pass need to match. server { listen 80; location / { proxy_pass http://backend; } } server { listen 8080; } }
使用以下命令重啟 NGINX:
sudo systemctl restart nginx
現(xiàn)在,當您訪問負載均衡器的 IP 地址時,它都會按照循環(huán)的方式將請求分發(fā)到 upstream 模塊中配置的兩個服務器上。至此,NGINX 的多架構部署已完成,用戶流量被分發(fā)到運行在 x86 和 arm64 服務器上的 NGINX 實例中。
將復合 Web 應用程序的前端(NGINX)
遷移到異構集群的優(yōu)勢
為了深入了解將 NGINX 等服務遷移到 Ampere Altra 處理器的優(yōu)勢,我們對一個由四層微服務組成的復合 web 服務進行了擴展的分析。這四層分別為:Web 前端(NGINX)、鍵值存儲(REDIS)、對象緩存(Memcached)以及后端數(shù)據(jù)庫(MySQL)。我們按照整個服務的百分比,為每層所選的應用程序分配了不同的權重。在我們的示例中,我們將負載設定為每秒 130 萬個請求,這些請求由服務的前端層接收,并由作為 HTTPS 服務器的 NGINX 進行處理。隨后,我們根據(jù)各層組件的權重設定了相應的總性能水平,以此確定加權四層 web 服務模型的整體負載。
以下圖表對比了運行在某 x86 服務器上的復合四層 web 服務及其所有組件微服務,以及基于 Ampere arm64 的混合架構部署。在混合架構場景中,web 服務前端(NGINX)組件遷移到了 Ampere Altra Max 云原生處理器,但其它三個組件微服務仍在某 x86 服務器上運行。結果顯示,即使僅將 web 服務的單一組件(NGINX)遷移到 Ampere Altra Max 云原生處理器,也能顯著減少所需服務器的總量,同時降低維持相同性能(以每秒請求數(shù)衡量)所需的整體功耗。

在數(shù)據(jù)中心里,若每機架最大功耗預算為 12.8 千瓦,將 NGINX 轉換為 Ampere Altra Max 云原生處理器后,所節(jié)省的功耗足以將機架占用空間從 3 個(總功耗預算 38.4 千瓦)減少到 2 個(總功耗 25.6 千瓦)。

總體而言,采用基于 Arm 架構的 HPE ProLiant RL300 服務器進行多架構部署的益處顯而易見。對于像 NGINX 這樣的微服務,使用容器化鏡像進行代碼遷移的過程簡單直接。通過負載均衡和反向代理等功能,可以輕松地在不同服務器上以混合架構(包括 x86 和 arm64)部署和運行應用程序的多個實例。此外,將關鍵工作負載遷移到 Ampere Altra Max 云原生處理器上,不僅能顯著降低能耗和減少數(shù)據(jù)中心占地面積,還能保證應用程序性能不受影響。
審核編輯:劉清
-
處理器
+關注
關注
68文章
20298瀏覽量
253596 -
操作系統(tǒng)
+關注
關注
37文章
7419瀏覽量
129483 -
虛擬機
+關注
關注
1文章
973瀏覽量
30602 -
HTTP接口
+關注
關注
0文章
21瀏覽量
2087 -
負載均衡器
+關注
關注
0文章
20瀏覽量
2729
原文標題:技術文章 | 多架構部署:如何將 NGINX 前端遷移至 HPE ProLiant RL300?
文章出處:【微信號:AmpereComputing,微信公眾號:安晟培半導體】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
服務器市場巨變?傳華為出售X86服務器業(yè)務,聞泰科技強勢入場
2019年全球x86服務器市場數(shù)據(jù) 浪潮保持增勢進入全球前五
寶界科技WEB服務器立體防御解決方案
寶界科技WEB服務器立體防御解決方案
Labview與Web(二)---------------Web 服務器(原創(chuàng))
Labview與Web(二)---------------Web 服務器(原創(chuàng))
基于Linux的WEB服務器增加了哪些功能?
Tomcat服務器簡介
使用IIS為Web內容配置Web服務器權限
基于Linux的WEB服務器的設計與實現(xiàn)
如何辨別Web服務器,應用程序服務器,HTTP服務器
如何正確的理解使用WEB服務器和應用程序服務器及HTTP服務器
如何把HPE RL300服務器引入x86-only的Web服務部署?
評論