omniture

“臺(tái)風(fēng)”席卷西雅圖:才云宣布開(kāi)源CI/CD平臺(tái)Cyclone

2016-11-15 10:00 7916
11月8-9日,全球Kubernetes大會(huì)KubeCon 在美國(guó)西雅圖舉辦。KubeCon是由Linux Foundation/Cloud Native Computing Foundation發(fā)起的Kubernetes 較高盛會(huì)。

杭州2016年11月15日電 /美通社/ -- 11月8-9日,全球 Kubernetes 大會(huì) KubeCon 在美國(guó)西雅圖舉辦。KubeCon 是由 Linux Foundation/Cloud Native Computing Foundation 發(fā)起的 Kubernetes 較高盛會(huì)。

才云 CEO 張?chǎng)问艿焦俜窖?qǐng)?jiān)?KubeCon2016 大會(huì)上發(fā)表了關(guān)于 Kubernetes 在中國(guó)企業(yè)落地的主題演講并宣布開(kāi)源Caicloud CI/CD 平臺(tái) Cyclone,專注解決微服務(wù)架構(gòu)下面向容器的 CI/CD 和版本管理問(wèn)題。

開(kāi)源后,Cyclone 入選 GitHub  "Trending in Open Source",曾一度位居 Go 語(yǔ)言開(kāi)源項(xiàng)目排行榜榜首。

“臺(tái)風(fēng)”席卷西雅圖
“臺(tái)風(fēng)”席卷西雅圖

持續(xù)集成 (CI) 是一種軟件開(kāi)發(fā)實(shí)踐,即團(tuán)隊(duì)成員經(jīng)常集成他們的工作,每次集成都需要通過(guò)自動(dòng)化的構(gòu)建,包括編譯、發(fā)布、自動(dòng)化測(cè)試來(lái)驗(yàn)證,從而盡早的發(fā)現(xiàn)集成錯(cuò)誤。持續(xù)交付 (CD) 是指頻繁地將軟件新版本交付給質(zhì)量團(tuán)隊(duì)(或者用戶)以供評(píng)審。如果評(píng)審?fù)ㄟ^(guò),那么就發(fā)布到生產(chǎn)環(huán)境。每當(dāng)代碼庫(kù)里有一個(gè)變化,如果能自動(dòng)且隨時(shí)觸發(fā)以上過(guò)程,那就達(dá)成了持續(xù)發(fā)布 (CD) 。

Docker 是一款基于 LXC 的容器引擎,自 2013 年開(kāi)源以來(lái),因?yàn)槠湟子眯浴⒏呖梢浦残栽陂_(kāi)源社區(qū)非?;馃帷ocker 將軟件與其依賴環(huán)境打包起來(lái),以鏡像方式交付,讓軟件運(yùn)行在“標(biāo)準(zhǔn)環(huán)境”中,這非常符合云計(jì)算的要求。各大 IT 巨頭紛紛跟進(jìn),基于 Docker 容器技術(shù)創(chuàng)業(yè)公司也如雨后春筍,Docker 創(chuàng)造了一個(gè)嶄新的容器云行業(yè)。Docker 技術(shù)應(yīng)用廣泛。如,利用其隔離特性,為開(kāi)發(fā)、測(cè)試提供一個(gè)輕量級(jí)獨(dú)立沙盒環(huán)境進(jìn)行集成測(cè)試。加速本地開(kāi)發(fā)和構(gòu)建流程,使其更加高效輕量化,開(kāi)發(fā)人員可以構(gòu)建、運(yùn)行并分享容器,輕松提交到測(cè)試環(huán)境中,并最終進(jìn)入生產(chǎn)環(huán)境。

Caicloud 作為國(guó)內(nèi)領(lǐng)先的容器集群服務(wù)解決方案供應(yīng)商,向用戶提供企業(yè)級(jí)的 Claas、Containerizor、Cyclone、Cargo、Cubernetes、Clever 六大閉環(huán)服務(wù)。

Cyclone 作為其中重要一環(huán),是基于 Docker 容器沙盒隔離特性實(shí)現(xiàn)的持續(xù)集成,將軟件與其依賴環(huán)境打包起來(lái),以鏡像方式交付,讓軟件運(yùn)行在“標(biāo)準(zhǔn)環(huán)境”中,原生支持多種容器云平臺(tái)持續(xù)交付的工具。具有以下特性:

所有編譯、構(gòu)建、測(cè)試、發(fā)布過(guò)程均以容器為載體,消除環(huán)境差異性。通過(guò)版本控制工具觸發(fā)流水線持續(xù)集成;

生成容器鏡像并輸出安全報(bào)告,確保構(gòu)建的鏡像安全可靠。全過(guò)程可視化,契合團(tuán)隊(duì)協(xié)作,提高研發(fā)效率;

管理組件支持微服務(wù)多組件聯(lián)合發(fā)布,使用圖形化界面展示組件的依賴關(guān)系及聯(lián)合發(fā)布的過(guò)程和狀態(tài),應(yīng)用拓?fù)潢P(guān)系圖形化;

基于發(fā)布策略和角色控制功能,提供靈活的持續(xù)部署方式?;谌萜骱顽R像的版本控制,提供多種升級(jí)回滾策略。

Cyclone 提供了豐富的 API 供 web 應(yīng)用調(diào)用,通過(guò) API 建立版本控制系統(tǒng)中代碼庫(kù)與 Cyclone 服務(wù)關(guān)聯(lián)關(guān)系后,版本控制系統(tǒng)的提交、發(fā)布等動(dòng)作會(huì)通過(guò) webhook 通知到 Cyclone-Server,啟動(dòng)一個(gè)基于 Docker in Docker 技術(shù)的 Cyclone-Worker 容器,在該容器中從代碼庫(kù)中拉取源碼,按照源碼中 caicloud.yml 配置文件,依次執(zhí)行:

PreBuild:在指定編譯環(huán)境中編譯可執(zhí)行文件;

Build:將可執(zhí)行文件拷到運(yùn)行環(huán)境容器中,打成鏡像發(fā)布到鏡像倉(cāng)庫(kù)中;

Integretion:使用 Build 階段構(gòu)建的鏡像啟動(dòng)一個(gè)容器,啟動(dòng)持續(xù)集成所依賴的微服務(wù)容器進(jìn)行集成測(cè)試;

PostBuild:?jiǎn)?dòng)一個(gè)容器執(zhí)行一些腳本命令,實(shí)現(xiàn)鏡像發(fā)布后的一些關(guān)聯(lián)操作;

Deploy:使用發(fā)布的鏡像部署應(yīng)用到 Kubernetes 等容器集群 PaaS 平臺(tái)。

構(gòu)建過(guò)程日志可以通過(guò) Websocket 從 Cyclone-Server 拉??;構(gòu)建結(jié)束后 Cyclone-Server 將構(gòu)建結(jié)果和完整構(gòu)建日志通過(guò)郵件通知用戶。

Cyclone-Server 中 Api-Server 組件提供 Restful API 服務(wù),被調(diào)用后需要較長(zhǎng)時(shí)間處理的任務(wù)生成一個(gè)待處理事件寫入 etcd;

EventManager 加載 etcd 中未完成事件,監(jiān)視事件變化,發(fā)送新增待處理事件到 WorkerManager 中;

WorkerManager 調(diào)用 Docker API 啟一個(gè) Cyclone-Worker 容器,通過(guò)環(huán)境變量傳入需要處理的事件 ID 等信息;

Cyclone-Worker 使用事件 ID 作為 token(有效期 2 小時(shí))調(diào)用 API,拉取事件信息依次啟容器執(zhí)行 integration、prebuild、build、post build,完成后反饋事件執(zhí)行結(jié)果,構(gòu)建過(guò)程日志推送到 Log-Server,轉(zhuǎn)存到 Kafka;

Log-Server 組件從 Kafka 拉取日志推送給用戶;需要持久化的數(shù)據(jù)存入 Mongo。

Cyclone 也可以多節(jié)點(diǎn)分布式部署,部署圖如下所示。每一個(gè)立方體代表一個(gè)節(jié)點(diǎn),使用 Haproxy 反向代理實(shí)現(xiàn)負(fù)載均衡和 SSL 數(shù)據(jù)加密,分發(fā) API 請(qǐng)求到各 Cyclone 節(jié)點(diǎn)中。

Cyclone  由 Caicloud 工程師自主研發(fā),并貢獻(xiàn)給社區(qū)(地址:https://github.com/caicloud/cyclone)。Cyclone 現(xiàn)已實(shí)現(xiàn)基本功能發(fā)布早期版本 V0.1。我們計(jì)劃在 2016 年12月底發(fā)布 V0.2 Kubernetes 版 Cyclone;2017 年第一季度發(fā)布 V0.3 提供 web 操作界面,后續(xù)還會(huì)開(kāi)發(fā)用戶權(quán)限管理,用戶插件支持等功能。

詳細(xì)圖文鏈接請(qǐng)點(diǎn)擊查看

消息來(lái)源:才云Caicloud
China-PRNewsire-300-300.png
全球TMT
微信公眾號(hào)“全球TMT”發(fā)布全球互聯(lián)網(wǎng)、科技、媒體、通訊企業(yè)的經(jīng)營(yíng)動(dòng)態(tài)、財(cái)報(bào)信息、企業(yè)并購(gòu)消息。掃描二維碼,立即訂閱!
collection