天天看點

雲上持續傳遞實踐系列3 --- Python 篇雲上持續傳遞實踐系列3 --- Python 篇

阿裡雲持續傳遞平台crp(continuous release platform)作為一款開發人員手裡的居家旅行,殺人越貨的利器,必然有其廣泛的應用場景。本文将會示範如何在如何使用阿裡雲持續傳遞平台部署一個python應用。python作為一種腳本語言,經常與多種語言一起配合完成某些複雜的功能,與此同時,其強大的第三方庫又進一步拓展了python的應用領域。

首先,需要在crp中建立新項目,點選建立新項目的按鈕,輸入新項目的名稱,即可完成crp新項目的建立。項目建立完成後如圖所示:

配置crp的工作流的第一步為建立工作流,在本文中,筆者采用的預設模闆工作流。在工作流中,設定第一個節點的名稱為python代碼檢出。在crp中,我們隻需要在建立節點中配置代碼更新的任務,即可完成代碼更新的配置。該節點的配置如圖所示:

雲上持續傳遞實踐系列3 --- Python 篇雲上持續傳遞實踐系列3 --- Python 篇

完成了python代碼檢出,需要進行依賴檔案的安裝并且執行測試。在這一步中,筆者将第二個節點的名稱設定為python測試,因為在crp中,編譯、測試可以在一個任務中同時完成。具體做法如下:在第二個節點中建立一個“編譯/測試”任務,根據項目的開發語言選擇編譯環境,再填寫具體的依賴安裝腳本以及測試執行指令,同時打開産出物上傳的開關,将剛才運作的結果同時打包。該線上爬蟲是使用python3.5開發的,同時依賴了爬蟲架構scrapy,使用的是pip install安裝依賴。是以該節點的配置如圖所示:

雲上持續傳遞實踐系列3 --- Python 篇雲上持續傳遞實踐系列3 --- Python 篇

緊接着,需要将python爬蟲部署至伺服器上,具體的做法是,從python測試節點拉出一個新的節點,并且添加任務為“部署”,然後輸入部署目标主機的ip位址、部署路徑、部署腳本以及進行機器授權。這裡需要特别注意的是機器授權的流程,由于crp是通過ssh的方式對目标主機進行操作,是以需要在目标主機上添加authorized_keys的條目。具體的部署腳本如下:

筆者采用的是阿裡雲ecs主機,以該主機為例,python部署節點的配置如圖所示:

雲上持續傳遞實踐系列3 --- Python 篇雲上持續傳遞實踐系列3 --- Python 篇

至此,本項目的python部分的部署完畢,線上爬蟲系統的資料部分已經成功部署至伺服器,後續的工作是部署一個web展示子產品,友善使用浏覽器檢視資料分析的結果。

雲上持續傳遞實踐系列3 --- Python 篇雲上持續傳遞實踐系列3 --- Python 篇

頁面展示子產品采用的是node.js的express作為http伺服器,配置的第一步也同樣為拉出一個節點,命名為node代碼檢出,并且配置完node.js項目的git位址。該節點的配置如圖所示:

雲上持續傳遞實踐系列3 --- Python 篇雲上持續傳遞實踐系列3 --- Python 篇

完成node代碼檢出後,需要進行依賴檔案的安裝并且執行測試。在這一步中,筆者拉出一個新節點的名稱設定為node安裝依賴,并且建立一個“編譯/測試”任務,根據項目的開發語言選擇編譯環境,再填寫具體的依賴安裝腳本指令,同時打開産出物上傳的開關,将環境依賴同時打包。該伺服器是使用node0.12開發的,同時依賴了express,使用的是npm install安裝依賴。是以該節點的配置如圖所示:

雲上持續傳遞實踐系列3 --- Python 篇雲上持續傳遞實踐系列3 --- Python 篇

最後一個步驟為将node.js項目部署至伺服器上,由于之前已經配置過部署任務,是以本次部署任務不需要重新添加公鑰,隻需要配置ip位址,部署路徑以及部署腳本即可。具體的部署腳本如下:

該節點的配置如圖所示:

雲上持續傳遞實踐系列3 --- Python 篇雲上持續傳遞實踐系列3 --- Python 篇

至此,node工作流部署完畢,完整的工作流如圖所示。

雲上持續傳遞實踐系列3 --- Python 篇雲上持續傳遞實踐系列3 --- Python 篇

分别觸發剛才配置的兩條工作流,等待其執行完畢。在執行完畢後,在浏覽器中通路項目的url可以看到傳回頁面,證明crp的釋出成功。隻需要一次配置,以後均可以在送出代碼後直接運作該工作流進行部署,真正實作,一鍵測試,一鍵釋出。stop coding, start amazing!

雲上持續傳遞實踐系列3 --- Python 篇雲上持續傳遞實踐系列3 --- Python 篇