日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
單頁應(yīng)用程序中智能DevOps的五種策略

本文轉(zhuǎn)載自公眾號(hào)“讀芯術(shù)”(ID:AI_Discovery)。

創(chuàng)新互聯(lián)于2013年創(chuàng)立,先為色尼等服務(wù)建站,色尼等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為色尼企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

DevOps在開發(fā)生命周期中起著不可或缺。大多數(shù)前端框架都配有如Webpack一般的模塊捆綁器,以負(fù)責(zé)繁重的工作。但是,我們?nèi)匀恍枰?guī)劃如何連接捆綁持續(xù)集成(CI)和持續(xù)交付(CD)環(huán)境的前端工具。

本文關(guān)注5種能在單頁應(yīng)用程序中使用DevOps的策略。

1. 減少環(huán)境配置

當(dāng)使用React、Angular和Vue創(chuàng)建單個(gè)頁面應(yīng)用的結(jié)構(gòu)時(shí),常規(guī)操作是每個(gè)環(huán)境使用單獨(dú)的配置文件。通常,開發(fā)、生產(chǎn)等使用一個(gè)環(huán)境配置。若每個(gè)環(huán)境彼此不同,便有多個(gè)配置文件。

但是,在本應(yīng)使用不同捆綁配置情況下,若開發(fā)和生產(chǎn)只使用兩個(gè)配置,而其他應(yīng)用程序特定的變量,如API路徑和主機(jī)名等在生成后修改,又會(huì)怎么樣呢?通過保留這兩個(gè)配置,你可以分開本地開發(fā)配置與其余配置(生產(chǎn)、暫存和質(zhì)量保證)。

如果將Build和Release劃分為兩個(gè)管道,可以先放完整的占位符,然后反復(fù)使用Build管道來創(chuàng)建構(gòu)件。之后,根據(jù)部署環(huán)境,可以在Release管道中動(dòng)態(tài)替換這些變量。這種方法主要有兩個(gè)優(yōu)點(diǎn): 

  • 可將相同捆綁器推入多個(gè)環(huán)境(使用基礎(chǔ)的字符串替換),節(jié)省寶貴構(gòu)建時(shí)間。
  • 掌握對捆綁器所做的確切更改,特別是在特定環(huán)境中。

2. 設(shè)置質(zhì)量門

在Pull Request合并到開發(fā)分支之前,先構(gòu)建前端的做法很常見。

質(zhì)量門的概念連接著Pull Request構(gòu)建,你可以在其中設(shè)置其他步驟(或門)以確保質(zhì)量。例如,可以用一個(gè)構(gòu)建步驟來用linter執(zhí)行操作,以確保修改或添加的任何代碼與已經(jīng)遵循的代碼樣式?jīng)]有任何偏差。做完這步后,可以用SonarCloud等高級代碼質(zhì)量工具來進(jìn)行質(zhì)量檢查,通過詳細(xì)的見解向Pull Request本身提供反饋。

你或許會(huì)問,為什么在簽入代碼之前就不進(jìn)行IDE級別的這些代碼質(zhì)量評估?是的,在IDE級別進(jìn)行這些評估(如果有可用的IDE插件)很重要,這能避免花時(shí)間在反饋周期上。但是,保證質(zhì)量以進(jìn)行整體代碼質(zhì)量管理同樣重要。

圖源:unsplash

3. 緩存程序包安裝

NPM軟件包安裝占很大一部分端構(gòu)建的執(zhí)行時(shí)間。重復(fù)構(gòu)建時(shí),由于很少更改外部依賴項(xiàng),很難改善這個(gè)情況。

改進(jìn)后,你可以設(shè)置一個(gè)緩存步驟來緩存這些依賴項(xiàng)。在特定的DevOps平臺(tái)(例如AzureDevOps)中,預(yù)定義的步驟可以執(zhí)行此操作。但是,如果無法在DevOps平臺(tái)中找到它,可以基于package.json內(nèi)容創(chuàng)建一個(gè)哈希函數(shù),并將其用作緩存鍵來執(zhí)行相同的操作。

4. 尋找并行性

在某些情況下,當(dāng)在DevOps管道上構(gòu)建Web應(yīng)用程序時(shí),需要同時(shí)構(gòu)建前端和后端。由于大多數(shù)DevOps平臺(tái)都使用代理支持并行性,因此,可以將前端構(gòu)建和后端劃分為不同的代理。借此,完成構(gòu)建所需的時(shí)間便減少了。

如果將DevOps步驟劃為Build和Release管道,甚至可以在Release管道上組合前端和后端構(gòu)建構(gòu)件(前提是兩者都部署到同一服務(wù)器上)。

此外,即使在構(gòu)建管道中,還可以用其他步驟來執(zhí)行并行操作。重要的是,嘗試使用并行性進(jìn)行各種優(yōu)化,并評估其對整體DevOps的影響,以根據(jù)經(jīng)驗(yàn)教訓(xùn)進(jìn)行改進(jìn)。

5. 自動(dòng)化測試的有效執(zhí)行

最后,我想采取一個(gè)關(guān)鍵步驟,需要在DevOps管道中進(jìn)行設(shè)置。盡管最好是在Pull Request級別執(zhí)行這些步驟(在開發(fā)人員的設(shè)備上更佳),但需要根據(jù)測試執(zhí)行時(shí)間來確定正確的執(zhí)行位置。

例如,作為質(zhì)量門的一部分,在Pull Request構(gòu)建時(shí)執(zhí)行單元測試是一種常見的做法。但是,如果執(zhí)行要花幾分鐘時(shí)間(常事),則在此級別上運(yùn)行E2E測試可能會(huì)成為一筆開銷。因此,評估情況并決定在不同級別運(yùn)行E2E測試用例至關(guān)重要。

圖源:unsplash

如你所見,我們可以對DevOps進(jìn)行不同的改進(jìn),以提高效率并提升應(yīng)用程序的整體質(zhì)量。此外,其中的一些技術(shù)同樣適用于后端。

雖然本文只討論了五種策略,但是這些策略的方向可能會(huì)有助于進(jìn)一步改進(jìn)管道,以提高其性能(如根據(jù)構(gòu)建步驟在各個(gè)級別進(jìn)行緩存的技術(shù))。

但還需要注意的是,每項(xiàng)改進(jìn)都需要付出一定的代價(jià)。如果使用相同的緩存示例則應(yīng)該知道,即使你指定NPM依賴項(xiàng)的自動(dòng)更新小補(bǔ)丁,也有可能不使用庫的最新更新。最后,希望這些步驟將有助于你更好地使用DevOps并改善現(xiàn)有管道。


當(dāng)前標(biāo)題:單頁應(yīng)用程序中智能DevOps的五種策略
分享地址:http://www.dlmjj.cn/article/cdhhgph.html