深度剖析:最新雲端開發工具如何實現敏捷 DevOps開發落地
相信很多軟體開發人員們對今年國內新興的雲端開發工具——華為軟體開發雲都有耳聞,有些人可能還免費體驗過,由於它5人以下的團隊是免費使用的,很慶幸本人的這個專案正好5個人,就註冊使用了。下面就自己的使用心得,為大家深度剖析下這個最新的雲端開發工具是“怎樣實現敏捷 DevOps開發落地的”。
雲端開發感觸:開發者專注做開發,雲平臺自動化處理傳統四大問題,效率顯著提高
開發人員可只關注程式碼的編寫,傳統開發中遇到的“開發工具統一、環境部署、專案管理、並行協同開發“四大問題,雲平臺可以直接處理掉,不用再耗費人力逐一手動處理瑣碎的程式碼之外的工作,大大提高了專案的開發效率。
我之前專案開發中一億行的程式碼採用傳統模式的話,編譯時間超過25分鐘的,採用華為軟體開發雲平臺,編譯時間只用了7分鐘;而版本的編譯速度從94分鐘減少到了31分鐘;研發環境的準備時間由月級降低到了小時級。

雲端開發之程式碼檢查技術剖析
  • 缺陷自動檢查:程式碼缺陷模式庫融合華為優秀程式碼實踐與程式設計規範與業界通用的檢查規則,覆蓋常見的編碼風格、架構、Web安全等方面的問題。
  • 大規模分散式任務排程:基於並行智慧任務排程演算法,對檢查節點進行自動彈性伸縮,檢查任務根據檢查規則型別智慧分片和並行執行,支援大規模程式碼倉庫的程式碼檢查。
該技術支撐下的開發優勢:
  • 支援Java、JavaScript、CSS、HTML、C 等語言檢查,持續增加語言支援廣度。
  • 精確定位缺陷,針對每個程式碼缺陷,提供詳細的缺陷影響說明、正確示例、錯誤示例、修改建議。
  • 如果系統的檢查不滿足需求,SE可通過定製規則集來實現挑選規則集;
  • 針對大量程式碼缺陷,使用者可根據問題級別、問題分類、語言、檔案目錄等進行過濾,分級處理。

雲端開發之自動化流水線技術剖析
  • 並行智慧任務排程:實現智慧任務排程演算法,使用者根據任務特點自行編排並行/序列任務,系統感知執行器狀態和健康度,動態分配執行器的任務,故障節點任務實現自動轉移和熔斷,結合資源彈性伸縮策略,實現排程器和執行器高可用和水平擴充套件。
  • 資源彈性伸縮:使用華為企業雲彈性伸縮服務,感知到業務叢集資源使用情況,資源利用率超過閥值時,動態擴容;反之,自動縮容。流水線根據不同業務型別,配置不同的彈性伸縮策略和資源彈性伸縮組,從而實現短時間內迅速提升流水線總體吞吐量。
  • 編譯構建並行技術:通過使用精準增量編譯技術,結合並行智慧任務排程,可實現按技術棧、目錄等編譯策略增量並行編譯,加速編譯構建的速度,大幅降低編譯構建等待時間。
該技術支撐下的開發優勢:
  • 對於一切可以解放雙手的任務都由工具自動化實現。
  • 一鍵式完成程式碼下載/程式碼檢查/編譯構建/系統部署/產品釋出整個交付流程.。
  • 任務並行執行,按需動態分配資源,顯著提升資源利用效率及執行效率。
  • 可實現單模組或者單獨子系統的個人級交付,也可實現多模組、多子系統的版本級交付可隨時檢視流水線執行進度/結果/報告/日誌。

雲端開發之部署環境標準化、過程自動化技術剖析
  • 部署編排技術
提供一定的服務編排能力,在 playbooks 中可以編排有序的執行過程,甚至於做到在多組機器間,來回有序的執行特別指定的步驟。並且可以同步或非同步的發起任務。
用流水線同時整合編譯構建、程式碼檢查、部署,從程式碼提交開始觸發操作,完成整個DevOps的自動化流程。流水線支援編排部署任務之間的依賴和順序,通過序列任務和並行任務以及子流水線來組合、排程各個任務,從而實現高效部署。
  • 大規模部署技術
Ansible本身就支援多併發部署,預設的併發任務數是5.  但是DevCloud的部署採用python API實現,我們封裝了python的任務以多執行緒方式執行;同時採用了gunicorn框架提供多程序複用技術,以最大限度的利用Ansibe引擎的並行部署能力;對於超過200以上併發的大規模部署,我們會採用橫向擴充套件即增加AnsibleRest的節點數來支援更多的併發部署;
此外,我們還提供部署任務排隊機制來保障峰值任務時系統仍然能夠正常執行。
該技術支撐下的開發優勢:
  • 一鍵式自動化部署,部署機器無需安裝代理,過程視覺化,支援主流程式語言和技術框架,支援並行部署和流水線無縫整合
  • 支援Web應用程式和微服務的部署,支援Tomcat、Java、Python、NodeJS、Go、PHP、Ruby語言。
  • 通過流水線定製交付流程,支援並行和序列任務,系統自動執行所有任務,並可檢視所有任務的執行狀態、日誌及報告。
  • 提供高階編輯功能,滿足使用者更改部署引數和自定義執行引數以在部署任務執行時動態輸入執行引數。

業內分析:
正所謂英雄所見略同,業界也有很多DevOps方案和實踐經驗,比如微軟公司Visual Studio Team Foundation Server方案、AWS和Google基於雲的DevOps模組化元件、其他公司自研搭建的DevOps鏈。
華為推出的DevCloud的側重點是一站式的解決方案,用於幫助企業在軟體開發的過程中提升效率和質量。DevCloud的中文名稱為“華為軟體開發雲”,即面向的目標群體是團隊規模在10-50人的中小團隊,如中小企業的軟體開發者、眾包開發團隊、個人開發者、高校軟體/計算機類的大學生。