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