Bitbucket Pipelines在Atlassian的Bitbucket云上提供持续交付功能
在巴塞羅那舉行的AtlasCamp上,Atlassian公司發布了Bitbucket Pipelines的beta版本,在其Bitbucket Cloud上提供用于持續交付功能。同時,Atlassian公司也宣布他們當前基于Bamboo Cloud提供的持續集成/持續交付云將于2017年1月31日關閉。但是他們強調Bamboo Server仍然將作為Bitbucket Server(之前名為Stash)預置的持續集成/持續交付工具。
\\Bitbucket Pipelines是Atlassian公司源碼倉庫托管服務Bitbucket的云版本新的持續交付(Continuous Delivery,CD)特性,它無需設置構建代理,也無需集成外部持續集成工具。由于整個開發流程,從代碼到部署都在Bitbucket Cloud上完成,Pipelines旨在“幫助團隊在每次代碼推送后進行構建、測試和部署代碼”,同時應該無需在不同工具之間進行切換,提供快速反饋環路。例如,構建狀態會展示在所有相關聯的提交、分支和拉取請求上,并可以從構建失敗的命令處直接進入查看日志。
\\\\和其他流行的基于云的持續集成/持續交付解決方案類似,Bitbucket Pipelines基于類似代碼的配置,用于驅動基于臨時Docker容器的構建環境在每次代碼提交到托管倉庫的自動運行。一旦對一個倉庫開啟之后,開發者可以通過在代碼倉庫根目錄的bitbucket-pipelines.yml YAML文件來管理他們的持續交付管線,其中可以通過引用鏡像來指定構建環境,這些鏡像可以來自\\
Docker Hub或者自定義注冊中心。一個簡單的示例如下:
InfoQ和Sten Pittet(Bitbucket Pipelines產品經理)進行了交流,深入了解Atlassian公司的集成持續交付解決方案。
\\InfoQ:您能給我們詳細介紹下Bitbucket Pipelines和它的工作原理嗎?
\\\**Pittet:**Atlassian在持續集成和持續交付上對Bamboo Server和Bamboo Cloud的投入已經有一段時間,我們希望找到一種方法,讓開發團隊在快速發布的同時有優秀的質量。持續交付可以幫助開發者達到這個目的,但是對于云上因為設置的復雜性,使得用戶難以適應。我們的使命是讓開發過程民主化(democratize),幫助每個軟件開發團隊了解(持續交付)的潛力并更好的工作。縱觀我們所擁有的東西,我們意識到實現持續交付的最佳方式通過將持續集成/持續交付工作流集成到Bitbucket來簡化我們的產品,貼近應該和持續交付結合的代碼倉庫。
\\\InfoQ:市場上有很多持續集成/持續交付的產品,很多已經集成到了Bitbucket,直接在Bitbucket Cloud中構建一個新的解決方案的動機是什么?
\\\Pittet:主要動機是為軟件開發團隊簡化流程。之前進行持續交付比較困難是因為我們沒有類似Docker這樣的技術,可以通過簡單的容器化運行代理。但是我們將pipeline引入Bitbucket的主要原因是質量問題不應該等待。如今,測試已經變得越來越關鍵,我們希望從第一天起就能夠對每個開發團隊產生價值。因此我們為Bitbucket創建了新的平臺[…]。我們相信我們現在已經將Bitbucket變成了一個可以編碼、構建、測試和部署的平臺,它擁有開發者需要的所有確保軟件高質量的工具。
\\\InfoQ:如果我對Bitbucket Pipelines了解的沒錯,每個構建步驟都作為獨立的容器實例運行在Docker鏡像中?
\\\Pittet:是的,開發者可以在代碼中使用YAML格式文件定義自己的pipeline[…],同時他們可以為指定的分支定義不同的pipeline以支持類似Gitflow的分支工作流特性。在每個pipeline中,我們有一些步驟。像這樣我們可以定義一個所有步驟都使用的Docker鏡像,也可以在步驟級別覆蓋鏡像[…]。在beta版本中,pipeline限制了每個只有一個步驟,但是我們將在未來進行擴展,使其更加靈活[…]。
\\\Bitbucket提供了默認Docker鏡像作為構建環境。用戶可以從Docker Hub或者自定義注冊中心引用鏡像,亦或創建他們自己的鏡像。手工或者在Docker Hub上自動構建的鏡像也可以在Bitbucket進行監控。
\\Pittet確認Bitbucket Pipelines實現基于亞馬遜EC2容器服務(ECS)。雖然這種透明和被管控容器的使用是Pipeline的價值主張之一,用戶也提出了提供在他們自己的ECS集群中執行構建能力的請求。
\\InfoQ:Bitbucket Pipelines自身作為Bitbucket Connect插件實現,Pipelines自身能夠被按需擴展嗎?
\\\Pittet:這是我們希望在將來提供的功能,beta版本的一個目標是和合作伙伴和希望擴展Bitbucket Pipelines的開發者共同協作,以了解什么是最好的實現方案。如果我們使用Bamboo Cloud作為示例,由于其Plugins 2架構的技術限制,我們將沒有那樣的機會[…]。通過Pipelines我們現在有很多的機會來實現這個目標。我們必須定義這些集成方案,但是我們期待我們能夠在未來做些什么。
\\\InfoQ:你們已經在促成第三方提供商(例如Azure和AWS)的集成方案。這個點上的集成會包括什么?它們會走向插件的道路嗎?
\\\Pittet:目前,我們的集成方案基于文檔。這些文檔將幫助我們的測試用戶把Pipeline集成到諸如Azure平臺,得他們可以在上面進行部署。我們也有一些和移動平臺的集成[…]。我們將和合作伙伴一起工作,使得這些集成在未來會變得更加簡單。
\\\InfoQ:Atlassian最近將預置的Git解決方案Stash更名為Bitbucket Server,和Bitbucket Cloud一起成為聯合品牌,并且整合了用戶接口和API,Bitbucket Pipelines也會因此為Bitbucket Server提供服務嗎?
\\\Pittet:我們沒有這樣的計劃。我們考慮到Bamboo Server是Bitbucket Server非常好的預置解決方案,它們已經很好的集成到了一起。我們的計劃是在Bamboo Server上投入更多以使其成為大型企業更好的解決方案。最近我們推出了一個新的250級代理[參見前文],因此我們對兩邊都認真對待,我們希望Bamboo Server繼續發展。
\\\目前客戶已經表達了對Bitbucket Pipelines會替代Bamboo Cloud但沒有提供功能對比列表的擔憂。當前顯著的限制是缺少對Mercurial的支持,缺少郵件或者HipChat提醒,沒有構件存儲管理,無法將構建和推送Docker鏡像作為pipeline的一部分,缺少和JIRA開發面板集成。對用戶來說目前也缺少為解耦交付和部署而使用的定時調度或者人工觸發構建功能,和第三方服務集成的網絡鉤子,限制并行構建數量和設置靜默期功能。另一方面,Bitbucket Pipelines類似的配置方式,既以代碼方式設置配置文件、使用模板或API,也是Bamboo Server上需求強烈的特性。
\\Atlassian還未透露Bitbucket Pipelines的定價策略,并且在beta測試期間繼續免費提供,內含每個用戶每個月300分鐘的免費構建。例如一個團隊的10個開發人員將會有每個月3000分鐘額度,以賬戶級別計算,在每個月的第一天重置。定價策略將根據團隊用戶數量來制定定價模型。
\\Bitbucket Pipelines文檔提供了更多細節,包括常見問題。Atlassian的開發者工具支持門戶頁和AtlassianQ\u0026amp;A論壇的bitbucket-pipelines話題區提供技術支持。監控Bitbucket Cloud的公開問題追蹤系統中的Pipelines部分信息可以了解最新開發進度。
\\查看英文原文:Bitbucket Pipelines Provides Continuous Delivery within Atlassian’s Bitbucket Cloud
總結
以上是生活随笔為你收集整理的Bitbucket Pipelines在Atlassian的Bitbucket云上提供持续交付功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: getcwd()和dirname(__F
- 下一篇: python编写IP地址与十进制IP转换