Azure DevOps如何將繁重的手工部署轉(zhuǎn)化成安全可靠的自動化流程,微軟azure云搭建服務(wù)器-ESG跨境

Azure DevOps如何將繁重的手工部署轉(zhuǎn)化成安全可靠的自動化流程,微軟azure云搭建服務(wù)器

來源網(wǎng)絡(luò)
來源網(wǎng)絡(luò)
2022-04-29
點(diǎn)贊icon 0
查看icon 670

Azure DevOps如何將繁重的手工部署轉(zhuǎn)化成安全可靠的自動化流程,微軟azure云搭建服務(wù)器Azure DevOps如何將繁重的手工部署轉(zhuǎn)化成安全可靠的自動化流程DevOps是生產(chǎn)力/生產(chǎn)過程/產(chǎn)品迭代的結(jié)合,以便持續(xù)向終端用戶輸出有價(jià)值的服務(wù)。因此可以認(rèn)為,DevOps并不是一種框架/服務(wù),更像是一種方法論/文......

Azure DevOps如何將繁重的手工部署轉(zhuǎn)化成安全可靠的自動化流程,微軟azure云搭建服務(wù)器





Azure DevOps如何將繁重的手工部署轉(zhuǎn)化成安全可靠的自動化流程

DevOps是生產(chǎn)力/生產(chǎn)過程/產(chǎn)品迭代的結(jié)合,以便持續(xù)向終端用戶輸出有價(jià)值的服務(wù)。因此可以認(rèn)為,DevOps并不是一種框架/服務(wù),更像是一種方法論/文化,可以幫助企業(yè)快速/高質(zhì)量/安全地實(shí)現(xiàn)產(chǎn)品的迭代及技術(shù)的革新。

細(xì)看會發(fā)現(xiàn),DevOps可以劃分成很多部分,包括溝通協(xié)作/任務(wù)管理、持續(xù)集成/持續(xù)部署、代碼管理、基礎(chǔ)設(shè)施即代碼、持續(xù)監(jiān)控等。隨著時(shí)機(jī)的成熟,市場的教育普及與工具鏈的成熟度越來越高,很多企業(yè)也實(shí)實(shí)在在看到了DevOps的價(jià)值。有數(shù)據(jù)顯示:采用或部分采用DevOps的公司,發(fā)布頻率提高了46倍,Bug修復(fù)時(shí)間提升了440倍,可以提前20%將產(chǎn)品推向市場,出錯率減少5倍,收入增加了20%。

Azure DevOps是微軟提供的,用于幫助開發(fā)者實(shí)現(xiàn)DevOps文化的工具集合,包含Azure Boards(看板,實(shí)現(xiàn)任務(wù)管理)、Azure Pipelines(持續(xù)集成/持續(xù)發(fā)布)、Azure Repos(代碼管理)、Azure Test Plans(測試計(jì)劃管理)、Azure Artifacts(包管理)等在內(nèi)的全套工具鏈。

借助Azure DevOps,用戶能夠快速開始實(shí)踐DevOps理念,而無需在意工具的選擇以及支持DevOps的基礎(chǔ)設(shè)施的維護(hù),將精力專注于業(yè)務(wù)的開發(fā)。

Azure DevOps除了支持內(nèi)置工具集,還支持很多開源工具,用戶可以結(jié)合自身的實(shí)際情況來選擇適合自己的工具。

接下來,我們將通過一個案例模擬DevOps的持續(xù)集成/持續(xù)發(fā)布(CI/CD)過程,體驗(yàn)如何通過Azure DevOps將手工的網(wǎng)站更新操作自動化。

Azure DevOps CI/CD演練

例如一家公司運(yùn)行著一個Python編寫的公司門戶,雖然內(nèi)容不多,但是需要經(jīng)常修改頁面內(nèi)容。

小A是網(wǎng)站開發(fā)人員,小B是網(wǎng)站運(yùn)維人員。每次更新內(nèi)容后,小A都需要將改好的代碼上傳到GitHub,小B拉取并手動更新到對應(yīng)的Web服務(wù)器中。這一過程不僅需要大量手工工作,而且時(shí)不時(shí)會出現(xiàn)問題,導(dǎo)致公司網(wǎng)站無法訪問。

接下來,我們嘗試將這個場景應(yīng)用在Azure DevOps中通過Pipelines實(shí)現(xiàn)程序自動化發(fā)布。隨后,小A只需將代碼上傳到GitHub,就會自動觸發(fā)一整套部署流程,部署到預(yù)生產(chǎn)環(huán)境,且增加了代碼檢查與同事核查,確保了發(fā)布的準(zhǔn)確性;而小B可以專心維護(hù)Azure DevOps Pipelines,確保運(yùn)行的準(zhǔn)確性,而無需手工完成部署任務(wù)。

在我們構(gòu)想的這個場景中,經(jīng)過DevOps的改造,原本耗時(shí)1小時(shí)的構(gòu)建/發(fā)布過程可以縮短到5分鐘!這極大提高了工作效率,同時(shí)可以將人為失誤風(fēng)險(xiǎn)降到最低。

第一步:構(gòu)建Python Web網(wǎng)站自動化發(fā)布流程

實(shí)驗(yàn)的第一階段,我們將構(gòu)建一條CI/CD的Pipeline,隨后當(dāng)我們的代碼Merge到Master Branch后,會由CI/CD Pipeline進(jìn)行必要的測試打包工作,并發(fā)布到生產(chǎn)環(huán)境中,整個過程無需人工接入。本次實(shí)驗(yàn)將模擬一個基于Python Django開發(fā)的Web站點(diǎn),發(fā)布到Azure Web App中。

創(chuàng)建一條AzurePipeline for CI工作,名為zjPythonWebCI

1、點(diǎn)擊“New pipeline”,設(shè)置源代碼管理的GitHub鏈接,選擇創(chuàng)建一條空的Pipeline。

選擇Build所需的Build Agent Pool:

2、添加Build Pipeline的一系列任務(wù)

添加任務(wù)設(shè)置Build Agent上運(yùn)行的Python版本:

添加任務(wù)安裝PythonWeb必要的依賴項(xiàng),所有依賴項(xiàng)均放在GitHub中的requirements.txt內(nèi):

添加任務(wù)運(yùn)行必要的單元測試,所有測試的相關(guān)用例均存放在GitHub中的unittests內(nèi):

添加任務(wù)將測試結(jié)果發(fā)布到Azure Pipeline中的Test Tab:

接下來的三個任務(wù)會將PythonWeb代碼打包成ZIP文件,發(fā)國際快遞Azure DevOps Artifact中,為后續(xù)部署工作做準(zhǔn)備

最后收尾,設(shè)置好CI Pipeline的觸發(fā)規(guī)則,達(dá)到持續(xù)集成的目的:

接下來我們試驗(yàn)一下Pipeline zjPythonWebCI是否工作正常,從結(jié)果看起來一切正常。

創(chuàng)建一條Azure Pipeline for CD工作,名為zjPythonWebCD

1、點(diǎn)擊PipelineReleases創(chuàng)建一條部署的Pipeline:

添加CI Pipeline構(gòu)建的Artifact

2、添加Release Pipeline部署過程的一系列任務(wù)

添加任務(wù)在Azure App Service中安裝必要的Python Extension插件

添加任務(wù)將Build好的ZIP包發(fā)布到預(yù)先創(chuàng)建的Web App中

步驟中需要設(shè)置Generate web.config parameters,具體代碼如下

WSGIHANDLER django.core.wsgi.getwsgiapplication() DJANGOSETTINGSMODULE pythonwebappdjango.settings PYTHONPATH $(AzureAppServiceManage2.LocalPathsForInstalledExtensions)\python.exe PYTHONWFASTCGIPATH $(AzureAppServiceManage2.LocalPathsForInstalledExtensions)\wfastcgi.py appType pythonDjango

步驟中需要設(shè)置的Deploy腳本如下

@echo off

if NOT exist $(AzureAppServiceManage2.LocalPathsForInstalledExtensions)/python.exe (

echo Python extension not available 2

EXIT /b 1

)

echo Installing dependencies

call $(AzureAppServiceManage2.LocalPathsForInstalledExtensions)/python.exe m pip install U setuptools

call $(AzureAppServiceManage2.LocalPathsForInstalledExtensions)/python.exe m pip install r requirements.txt

添加任務(wù)添加一系列測試任務(wù),確保部署的工作是正常運(yùn)行的

接下來我們試驗(yàn)一下Pipeline zjPythonWebCD是否工作正常,從結(jié)果看起來一切正常

接下來,小A如果需要更改頁面內(nèi)容就簡單多了,他只需要更改頁面代碼,提交到GitHub即可;Azure Pipeline會監(jiān)聽GitHub的Commit,觸發(fā)CI/CD操作:

第二步:分離測試/生產(chǎn)環(huán)境

不過,目前的Release Pipeline還有一個問題:沒有做到測試生產(chǎn)隔離,無論測試結(jié)果如何,代碼都已經(jīng)部署到了環(huán)境中。接下來我們需要將環(huán)境分開,借用Web App Deploy Slot,當(dāng)測試沒有問題,再將Staging環(huán)境與Production環(huán)境切換。

首先,我們將Release的階段改為Staging,同時(shí)去掉Pre approval,任何Build好的代碼都可以發(fā)布到Web App Staging的部署槽中:

另外再增添一個階段,名為Production,同時(shí)Enable PreApproval/Gate,只有當(dāng)代碼審核通過,且Gate驗(yàn)證通過后,代碼才會部署到環(huán)境中:

這樣當(dāng)環(huán)境中有不符合策略的地方存在,即使人為Approve也不會部署到環(huán)境中,確保了應(yīng)用發(fā)布的安全可靠。


文章推薦
HUAWEI Ads激勵廣告,華為酷炫廣告
采購好的日本二手挖掘機(jī)如何進(jìn)口到中國,在日本買一臺二手挖掘機(jī)多少錢
App Annie是我們首選的移動應(yīng)用數(shù)據(jù)參考站點(diǎn),appannie排行榜
德國大型二手?jǐn)?shù)控折彎機(jī)如何進(jìn)口中國報(bào)關(guān),進(jìn)口數(shù)控折彎機(jī)維修保養(yǎng)來電咨詢


特別聲明:以上文章內(nèi)容僅代表作者本人觀點(diǎn),不代表ESG跨境電商觀點(diǎn)或立場。如有關(guān)于作品內(nèi)容、版權(quán)或其它問題請于作品發(fā)表后的30日內(nèi)與ESG跨境電商聯(lián)系。

搜索 放大鏡
韓國平臺交流群
加入
韓國平臺交流群
掃碼進(jìn)群
歐洲多平臺交流群
加入
歐洲多平臺交流群
掃碼進(jìn)群
美國賣家交流群
加入
美國賣家交流群
掃碼進(jìn)群
ESG跨境專屬福利分享群
加入
ESG跨境專屬福利分享群
掃碼進(jìn)群
拉美電商交流群
加入
拉美電商交流群
掃碼進(jìn)群
亞馬遜跨境增長交流群
加入
亞馬遜跨境增長交流群
掃碼進(jìn)群
亞馬遜跨境增長交流群
加入
亞馬遜跨境增長交流群
掃碼進(jìn)群
拉美電商交流群
加入
拉美電商交流群
掃碼進(jìn)群
ESG獨(dú)家招商-PHH GROUP賣家交流群
加入
ESG獨(dú)家招商-PHH GROUP賣家交流群
掃碼進(jìn)群
《TikTok官方運(yùn)營干貨合集》
《TikTok綜合運(yùn)營手冊》
《TikTok短視頻運(yùn)營手冊》
《TikTok直播運(yùn)營手冊》
《TikTok全球趨勢報(bào)告》
《韓國節(jié)日營銷指南》
《開店大全-全球合集》
《開店大全-主流平臺篇》
《開店大全-東南亞篇》
《CD平臺自注冊指南》
通過ESG入駐平臺,您將解鎖
綠色通道,更高的入駐成功率
專業(yè)1v1客戶經(jīng)理服務(wù)
運(yùn)營實(shí)操指導(dǎo)
運(yùn)營提效資源福利
平臺官方專屬優(yōu)惠

立即登記,定期獲得更多資訊

訂閱
聯(lián)系顧問

平臺顧問

平臺顧問 平臺顧問

微信掃一掃
馬上聯(lián)系在線顧問

icon icon

小程序

微信小程序

ESG跨境小程序
手機(jī)入駐更便捷

icon icon

返回頂部

【免費(fèi)領(lǐng)取】全球跨境電商運(yùn)營干貨 關(guān)閉