推薦10個CI/CD工具,用於雲平臺集成交付

雖然雲平臺的到來讓開發者免於安裝和維護物理服務器,但測試和部署代碼過程依舊需要人爲完成,持續集成可以自動消除構建、測試和部署代碼的大部分痛苦。如果希望最大限度提高效率,持續集成和交付工具是最好的選擇。

實際上,所有開發者都可在軟件開發中使用CI/CD,但團隊使用可以獲得更大優勢,尤其是大型團隊,因爲他們通常在處理相同的互鎖代碼塊。持續集成最全面的實現是在測試之前構建代碼,尋找未被發現的錯誤和不兼容問題,這些可能是由不同的團隊成員寫入代碼時創建的,持續集成服務器可以同步所有程序員的工作,並幫助團隊檢測所有問題。

雖然CI/CD熱度不退,但完全自動化的部署方式會讓團隊管理者感到不踏實,因此很多團隊習慣在此過程中添加一些手動暫停,並增加問責制和其他保證代碼在可控範圍內的規則,這種混合方法被稱爲持續交付,因爲它將代碼提供給某一階段或測試集羣,並等待開發者最終推向生產。

如果在服務器機房中持續集成非常好,那麼在雲中可以實現更快交付和更高效率。在最好的情況下,雲可以拆分任務並行運行。服務從大量硬件開始,然後在許多團隊之間共享,只要所有人不同時推送代碼,構建和測試將運行得很快。

或許,唯一令團隊擔心的問題就是失去控制。所有云服務都需要將代碼交給第三方,這種選擇可能讓某些人感到不自由。即便所有的雲服務都在努力強調安全性,但依舊讓人擔心。以下是在雲中進行持續集成的10種不同選項,可以幫助開發者更好得適應這一過程。

CloudBees

CloudBees核心源自Jenkins,這是著名的持續集成開源項目,添加了測試支持以及代碼運行保證。該公司將所有實驗插件清理乾淨,添加了一些自研實驗插件,然後打磨正確以便在需要時如期工作。

CloudBees僱用了80%的Jenkins開發團隊,爲開源項目貢獻代碼,因此可以確信他們對這個平臺有很好的理解。爲了加快速度,CloudBees還添加了大量並行化工具跟蹤開發過程。

CloudBees提供各種價位,從免費到入門套件和全年服務,併爲需要該工具但不需要雲計算的開發者提供Jenkins支持。

AWS CodePipeline

亞馬遜用於持續集成和部署的工具AWS CodePipeline經過優化,可以將代碼交付給AWS服務器,同時爲代碼和數據提供更復雜的路徑。基本工具爲主要編程語言(Java,Python,Node.js,Ruby,Go,Android,.Net Core for Linux)提供了一個很好的預配置構建環境,發送之前將結果轉儲到S3中並關閉服務器就可以開始運行。

CodeBuild在CodePipe由CodePipeline觸發時從CodeCommit中獲取最新結果,並將其交給CodeDeploy。如果需要配置大量Code代碼,可以直接跳到CodeStar,這提供了另一層面的自動化。在技術上並不需要支付任何代碼層費用,亞馬遜收取的費用主要是沿途使用的計算和存儲資源。

Bitbucket Pipelines

Atlassian是流行的Jira和代碼庫Bitbucket背後的公司,決定創建Bitbucket Pipelines(Bitbucket雲中的持續集成工具)以包括更多集成。構建機制和Atlassian其他工具之間的連接形式成爲重點,因此這隻作爲Bitbucket中項目的一個選項,另一個選項指向部署。

如果開發者選擇爲主要語言(Java,JavaScript,Python,PHP,.Net等)定義的模板,則只需單擊幾下即可構建和部署代碼,除此之外的選項不存在。Atlassian確實鼓勵一個似乎是圖表和webhook混合到其他服務的應用程序市場。在我寫這篇文章時,圖表上的頂級應用程序會將Bitbucket與Jenkins連接起來,大概是爲了做一些無法在牆內快速完成的事情。

Pipelines的主要優點是速度,Atlassian已預先設計從代碼到運行部署的大多數主要途徑,只需花費幾美元就可以使用。很難比較使用Bitbucket的成本,因爲構建只需幾分鐘,就像大多數無服務器模型一樣,團隊通常會使用一組實例來處理Jenkins構建。

GitLab CI / CD

Atlassian最大的競爭對手之一是GitLab。GitLab的構建,測試和部署機制同樣直接連接到其Git存儲庫,因此可以根據規則觸發。該過程主要圍繞Docker容器構建,可以大大簡化圍繞Jenkins構建必須完成的一些配置工作。

構建任務可以針對任何語言,但必須由GitLab Runner觸發,GitLab Runner是一個用Go編寫的自動縮放工具,適用於大多數平臺。這種靈活性意味着可以在其他計算機上觸發任何任務,這對於精心設計的架構而言可能非常有用,這些架構不僅僅提供微服務。

定價與級別捆綁在一起以滿足需求,最高級別可以獲得最佳功能,比如安全儀表板和在共享機器集羣上構建50,000分鐘,部分流程中使用自己的計算機或在其他雲中使用單獨的實例是免費的。

CircleCI

許多持續集成工具專注於在Linux環境中構建代碼。CircleCI既可在Linux環境中構建和提供,也可以構建Android應用程序以及Xcode(適用於iOS,MacOS,tvOS或watchOS)。

CircleCI使用Docker,在其所有層次中爲代碼配置測試環境。構建從新容器開始,所有測試也是如此,Mac工作在類似的虛擬機中,避免了配置中的一些問題。

定價主要集中在構建的CPU數量上。用戶數和存儲庫數量上限爲無窮大,但構建分鐘數和容器數是計量的。第一個容器是免費的,可以在其中運行一個構建,如果想要更多並行性或更高吞吐量,需要收費。

Travis CI

如果構建需要在Windows機器上測試的代碼,那麼Travis CI可以提供一站式服務。該公司已經提供了一段時間的MacOS和Linux選項,剛剛推出Windows選項,讓生成更多代碼變得更加簡單。

目前,Linux代碼支持Ubuntu基本版本,Mac代碼以OS X,Xcode和JDK的十幾種組合之一運行。Windows代碼只支持一個版本的Windows Server(1803)。Travis CI提供30多種語言支持列表,並構建預先配置且可以運行的規則。

定價基於一次執行的併發任務數,但這些構建可以佔用的分鐘數沒有正式限制。定製化工作沒有免費選項,但開源項目永遠免費,這可能是嘗試Travis CI最簡單的方法。

Azure Pipelines

雖然,Azure可能沒有太多提供ENIAC程序員,但確實爲代碼提供Microsoft、Linux和MacOS路徑。該堆棧包含Docker容器和Azure硬件。如果更喜歡命令行,則可以使用YAML指定。

有免費並行任務試用,1800分鐘的構建時間。如果想要更多的並行性或更多構建時間則需要付費。

CodeShip

使用持續集成工具時,配置任務列表通常是最大的挑戰。CodeShip在兩個服務級別採用兩種不同的方法。基礎版本計劃包括大量自動化和預配置以及圖形用戶界面,用於設置任務的大致輪廓。高級版本允許配置和用於定義構建環境的Docker容器,可以選擇將多少個構建專用於任務以及可能的配置。

基礎版本提供免費套餐,包括一臺構建機器,無限制項目和人員,但每月只有100個構建。如果超過100個項目,並希望在一個月內完成所有項目,則需要付費。一旦付費,就沒有構建數量或者花費多少時間的上限,只需選擇構建和測試即可處理任務。

Sauce Labs

以上大多數工具集中在編排從存儲庫到部署的代碼流,Sauce Labs則專注於測試。基於雲的服務提供了各種各樣的組合,以確保一切正常。如果想在Windows 10上運行的Firefox 58上進行測試,或者在MacOS上的Firefox 56,只要選擇Java,Node,Ruby或PHP等其中之一,測試腳本就可以用選擇的語言編寫,雲將並行定位每個處理器。 Sauce Labs專門將測試與其他CI工具或管道集成,因此可以在本地運行Jenkins,然後將測試委託給Sauce Labs。

Jenkins and Hudson

在雲中啓動持續集成最簡單的方法之一是租用服務器實例並啓動Jenkins或Hudson。二者很久以前就開始用作測試Java代碼的程序,當開發人員和Oracle之間出現爭議時,其分成了兩個陣營,開發人員需要認真查看開源許可。

雖然Jenkins和Hudson可能已經開始作爲構建Java項目的工具,但其早已超越這個利基市場,並可處理幾乎所有語言,有數千個插件來處理構建、打包、測試和部署。代碼是開源的,因此使用時不需要額外付費,只需支付服務器費用和配置時間。

參考鏈接:https://www.infoworld.com/article/3341320/ci-cd/cicd-as-a-service-10-tools-for-continuous-integration-and-delivery-in-the-cloud.html?nsdr=true&page=2

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章