Arm 正在與云原生軟件生態(tài)系統(tǒng)建立堅(jiān)實(shí)的合作關(guān)系,以確保開源項(xiàng)目能夠?yàn)?a target="_blank">開發(fā)者帶來(lái)更多原生多架構(gòu)的支持。此外,Arm 還積極與社區(qū)成員和代碼貢獻(xiàn)者合作,旨在為其提供無(wú)縫的軟件開發(fā)體驗(yàn)。開發(fā)者利用 Arm 成熟的云原生軟件生態(tài)系統(tǒng)[1]構(gòu)建應(yīng)用程序,以實(shí)現(xiàn)高性價(jià)比及高能效等優(yōu)勢(shì)。云原生應(yīng)用程序?qū)τ?jì)算的要求各不相同。有些需要持續(xù)的高吞吐量,而有些如 Web 服務(wù)器和開發(fā)生成環(huán)境則并不一定需要全天候的 CPU 滿負(fù)荷性能,而 Arm 靈活的架構(gòu)足以支持如此廣泛的工作負(fù)載。
微軟推出 B 系列虛擬機(jī)
微軟發(fā)布了全新 Azure Bpsv2 系列虛擬機(jī)的公共預(yù)覽版[2],該虛擬機(jī)采用了搭載 Arm Neoverse 的 Ampere Altra 處理器。B 系列虛擬機(jī)可按需提供高水平的 CPU 性能,而針對(duì)需要偶發(fā)激增的高性能但大部分時(shí)間運(yùn)行在較低性能水平的工作負(fù)載,B 系列虛擬機(jī)是理想之選。由于這系列的虛擬機(jī)可無(wú)需過(guò)度配置,便可滿足必要的性能需求,尤其適用于面臨不可預(yù)測(cè)的突增需求的工作負(fù)載,例如活動(dòng)或促銷。
Bpsv2 系列虛擬機(jī)是搭載 Arm 架構(gòu)的新一代 Azure B 系列虛擬機(jī),不僅能提供基準(zhǔn)水平的 CPU 性能,并能夠隨著工作負(fù)載量的增加擴(kuò)展到更高突增性能。它非常適用于不需要持續(xù)的 CPU 完全性能的應(yīng)用,像是開發(fā)和測(cè)試服務(wù)器、低流量 Web 服務(wù)器、小型數(shù)據(jù)庫(kù)、微服務(wù)、概念驗(yàn)證服務(wù)器、構(gòu)建服務(wù)器和代碼倉(cāng)庫(kù)。當(dāng)運(yùn)行較低性能水平的任務(wù)時(shí),B 系列虛擬機(jī)會(huì)隨著時(shí)間的推移累積額度,如此一來(lái),當(dāng)運(yùn)行的應(yīng)用程序需要更高的 CPU 性能時(shí),虛擬機(jī)可使用這些額度,提供更高性能的爆發(fā)需求。
相較于通用的虛擬機(jī),開發(fā)者使用基于 Arm 架構(gòu)的 Azure B 系列虛擬機(jī)所支付的費(fèi)用更少,可節(jié)約成本。與傳統(tǒng)通用虛擬機(jī)相比不僅更具性價(jià)比,能效也更高,是用于開發(fā)和測(cè)試環(huán)境的 CI/CD 流水線的理想選擇。在使用基于 Arm 架構(gòu)的 B 系列虛擬機(jī)構(gòu)建和測(cè)試云原生應(yīng)用程序的過(guò)程中,開發(fā)者可以高效地管理對(duì)其他資源的間歇性需求。接下來(lái),讓我們通過(guò)以下關(guān)于構(gòu)建 CI/CD 流水線的工作負(fù)載示例,了解客戶如何通過(guò)使用基于 Arm 架構(gòu)的 Azure B 系列虛擬機(jī)構(gòu)建應(yīng)用程序,并節(jié)省成本。
基于 Arm 架構(gòu)的 Azure B 系列虛擬機(jī)和 GitHub Actions
在 GitHub Actions 的 CI/CD 流水線采用該虛擬機(jī)[3]可在構(gòu)建和測(cè)試的過(guò)程中,管理資源需求的激增。一般來(lái)說(shuō),CI/CD 流水線中的 GitHub Actions 自托管運(yùn)行器只是偶爾需要構(gòu)建資源。故該運(yùn)行器大部分時(shí)間都處于閑置狀態(tài),而對(duì)應(yīng)的 Azure 虛擬機(jī)卻在不斷產(chǎn)生費(fèi)用。如果該運(yùn)行器使用 B 系列虛擬機(jī),用戶不僅可節(jié)約成本,且能隨著時(shí)間的推移累積額度,用于應(yīng)對(duì)偶發(fā)的資源需求。
在這個(gè)示例中,我們展示了一個(gè)Web 應(yīng)用程序的 CI/CD 生命周期,它使用了 GitHub Actions 且基于 Spring Boot 所開發(fā)。通常,GitHub Actions 運(yùn)行器的資源足以構(gòu)建、測(cè)試和運(yùn)行應(yīng)用程序的源代碼。然而,在我們模擬的場(chǎng)景中,正在執(zhí)行的測(cè)試用例數(shù)量突然激增,因此需要其他資源支持。
Web 應(yīng)用程序的源代碼托管在 GitHub 中,其 CI/CD 生命周期通過(guò) GitHub Actions 進(jìn)行管理。
在基于 Arm 架構(gòu)的 Azure B 系列虛擬機(jī)上配置了一個(gè) GitHub Actions 自托管運(yùn)行器。
此虛擬機(jī)的性能大部分時(shí)間都保持在基線性能以下,并為 CI/CD 管道中的構(gòu)建和測(cè)試過(guò)程提供支持。
虛擬機(jī)隨著時(shí)間的推移累積額度,當(dāng)需要更多資源時(shí),會(huì)使用這些額度以提供爆發(fā)到基線以上的性能。
構(gòu)建和測(cè)試過(guò)程完成后,虛擬機(jī)回到其基線性能,并再次開始累積額度。
配置
先決條件:
擁有有效訂閱的 Azure 帳戶
GitHub 帳戶
登錄 Azure 帳戶,參考以下配置創(chuàng)建一個(gè)基于 Arm 架構(gòu)的虛擬機(jī)。確保選擇 Arm64 版本作為虛擬機(jī)的架構(gòu)和并選擇相應(yīng)的操作系統(tǒng)鏡像,如下所示:
登錄 GitHub 帳戶并創(chuàng)建此資源庫(kù)的副本[4]。然后,轉(zhuǎn)到資源庫(kù)設(shè)置并注冊(cè)一個(gè)新的 GitHub Actions 自托管運(yùn)行器。在 Azure B 系列虛擬機(jī)上執(zhí)行以下命令,并等待運(yùn)行器進(jìn)入“閑置”狀態(tài)。
GitHub Actions 運(yùn)行器現(xiàn)在可以接受任務(wù)了。GitHub 中有一個(gè)很棒的功能,可以直接在瀏覽器中使用 Visual Studio Code 編碼器。只需在資源庫(kù)頁(yè)面上點(diǎn)擊,就會(huì)立即啟動(dòng)編輯器。修改應(yīng)用程序源代碼并提交更改。系統(tǒng)將自動(dòng)觸發(fā) GitHub 中的構(gòu)建過(guò)程,同時(shí),還可以在 Azure 虛擬機(jī)中進(jìn)行監(jiān)控。成功構(gòu)建后,使用 https://localhost:8443 訪問(wèn)應(yīng)用程序,然后應(yīng)該會(huì)打開以下頁(yè)面。
當(dāng) B 系列虛擬機(jī)以低于基線性能運(yùn)行時(shí),將隨著時(shí)間的推移累積額度。其累積的額度,可以在 Azure 門戶網(wǎng)站上查看,如下所示:
我們對(duì) CI/CD 流水線進(jìn)行了多次提交,可以看到累積的額度被使用。以下屏幕截圖顯示了用于 B 系列虛擬機(jī)的額度值:
總結(jié),如果客戶想要優(yōu)化 Azure 中的計(jì)算資源并降低成本,可以考慮選用搭載 Arm Neoverse 的 Ampere Altra 處理器的 Azure Bpsv2 系列虛擬機(jī)[5]。當(dāng)需求激增時(shí),這些虛擬機(jī)可以靈活地利用云資源。可爆發(fā)能力可在必要時(shí)提供額外的性能,而基線性能確保了一致性和可靠性。
審核編輯:彭菁
-
微軟
+關(guān)注
關(guān)注
4文章
6596瀏覽量
104059 -
ARM
+關(guān)注
關(guān)注
134文章
9094瀏覽量
367541 -
軟件
+關(guān)注
關(guān)注
69文章
4943瀏覽量
87478 -
虛擬機(jī)
+關(guān)注
關(guān)注
1文章
917瀏覽量
28193 -
云原生
+關(guān)注
關(guān)注
0文章
249瀏覽量
7950
原文標(biāo)題:在基于 Arm 架構(gòu)的全新微軟 Azure B 系列虛擬機(jī)上,使用 GitHub Actions 構(gòu)建 Web 應(yīng)用程序
文章出處:【微信號(hào):Arm社區(qū),微信公眾號(hào):Arm社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論