一. 華為雲軟件開發雲與Python
1. 華為雲軟件開發雲簡介
華為雲軟件開發雲(DevCloud)是集華為近30年研發實踐,前沿研發理念,先進研發工具為一體的一站式雲端DevOps平台,面向開發者提供包括項目管理,代碼托管,流水線,代碼檢查,編譯構建,測試管理,移動應用測試,部署,發布,CloudIDE,研發協同等基礎功能的研發工具服務。覆蓋軟件開發全生命周期,支持多種主流研發場景,讓軟件開發更高效。
官網入口:https://www.huaweicloud.com/devcloud/
2.Python特點
Python 是一個高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言。Python 的設計具有很強的可讀性,相比其他語言經常使用英文關鍵字,其他語言的一些標點符號,它具有比其他語言更有特色語法結構。
·Python 是一種解釋型語言:這意味着開發過程中沒有了編譯這個環節。類似於PHP和Perl語言。
·Python 是交互式語言:這意味着,您可以在一個Python提示符,直接互動執行寫你的程序。
·Python 是面向對象語言:這意味着Python支持面向對象的風格或代碼封裝在對象的編程技術。
·Python 是初學者的語言:Python 對初級程序員而言,是一種偉大的語言,它支持廣泛的應用程序開發,從簡單的文字處理到 WWW 瀏覽器再到游戲。
3.Python在軟件開發雲的應用
應用華為雲軟件開發雲的流水線功能可以幫助Python開發者實現一鍵自動化開發部署,其中需要應用到代碼倉庫,編譯構建,發布,部署等功能。
因為Python沒有編譯構建的過程,所以在實際開發過程中他是可以不用編譯直接發布的,但是在華為雲軟件開發雲中雲端部署需要可識別的軟件包,所以在華為雲軟件開發雲中需要對Python的程序進行打包。打包的好處是不僅可以打通編譯到部署的自動化流程,避免二次手動傳包影響開發效率,還可以在編譯構建后自動歸檔到發布倉庫中,對軟件包進行歸檔管理,幫助企業完善產品構建的發布管理。下面,就讓我們看看如何在華為雲軟件開發雲中跑通一個Python項目。
二.Python流程搭建示例
1.代碼倉庫
華為雲軟件開發雲提供基於Git的代碼托管倉庫,倉庫提供可視化的管理界面,支持文件在線編輯,倉庫提交記錄,代碼貢獻度統計等多種功能,滿足各類開發者的需求。Python開發者可將自己的Python代碼上傳到此倉庫中進行代碼托管。
本demo中采用華為雲軟件開發雲的代碼倉庫,建立空倉后,通過Git命令,與本地倉庫進行關聯,完成代碼同步
2.編譯構建
因為Python沒有編譯構建的過程,所以在實際開發過程中Python工程是可以不用編譯直接發布的,但是在軟開雲中雲端部署需要可識別的軟件包,所以在軟開雲中需要對Python的程序進行打包。
華為雲軟件開發雲編譯構建服務支持多種開發環境的構建,也支持Python類型構建egg格式軟件包,本demo中為了打通部署,形成自動化研發流程,采用Other構建類型,通過shell腳本將demo程序打成.tar格式的軟件包。並在打包后自動上傳到發布倉庫進行版本歸檔管理。
在構建類型中輸入要執行的shell腳本命令。本樣例中執行命令為將demo輸出為.tar格式的軟件包。
在構建執行配置中設置構建成功后將軟件包上傳歸檔到發布倉庫的具體信息。
3.發布
華為雲軟件開發雲提供4中類型的發布倉庫,前兩種是遠程Maven私倉,用於Maven類型構建過程中第三方依賴包的的管理。第三個倉庫是mirror鏡像倉,鏡像了一些構建過程中經常以來的中央倉到后台,提升構建速度,體現雲端構建的優勢。我們本次demo中應用最后一個編譯構建倉庫,作為生成的軟件包的版本歸檔管理倉庫。
4.部署
當代碼構建打包成功並歸檔到發布倉庫后,可以進行部署工作。部署任務一共氛圍四部分,分別是主機授權,編輯模版,編寫腳本和執行部署。
先將主機添加到授信機器列表中。
因為python程序在發布的時候需要執行setup.py文件,不同工程有其特殊性,故通過自定義模版和執行shell腳本兩種方法相結合的方式完成自動化部署。
本demo中部署模版和shell腳本任務分配樣例:
部署模版:執行目錄創建,軟件包拷貝,解壓
Shell腳本:提取占用端口進程號,解除端口占用,定位目標文件夾,執行setup.py,運行程序文件
完成任務后執行部署任務即可。
5.流水線
當所有流程打通之后,設置對應的流水線,將所有流程添加進去,實現自動化的構建發布部署一鍵執行。
將需要的任務添加進流水線中,並運行流水線。