omniture

“臺風”席卷西雅圖:才云宣布開源CI/CD平臺Cyclone

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

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

才云 CEO 張鑫受到官方邀請在 KubeCon2016 大會上發(fā)表了關(guān)于 Kubernetes 在中國企業(yè)落地的主題演講并宣布開源Caicloud CI/CD 平臺 Cyclone,專注解決微服務(wù)架構(gòu)下面向容器的 CI/CD 和版本管理問題。

開源后,Cyclone 入選 GitHub  "Trending in Open Source",曾一度位居 Go 語言開源項目排行榜榜首。

“臺風”席卷西雅圖
“臺風”席卷西雅圖

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

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

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

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

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

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

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

基于發(fā)布策略和角色控制功能,提供靈活的持續(xù)部署方式。基于容器和鏡像的版本控制,提供多種升級回滾策略。

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

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

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

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

PostBuild:啟動一個容器執(zhí)行一些腳本命令,實現(xiàn)鏡像發(fā)布后的一些關(guān)聯(lián)操作;

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

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

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

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

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

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

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

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

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

詳細圖文鏈接請點擊查看

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