Jenkins X 是一個高度集成化的 CI/CD 平臺,基於 Jenkins 和 Kubernetes 實現,旨在解決微服務體系架構下的雲原生應用的持續交付的問題,簡化整個雲原生應用的開發、運行和部署過程。linux
Jenkinsgit
Jenkins X 不是一個全新的 Jenkins。github
它依然使用 Jenkins 做爲持續交付的核心引擎,實際上 Jenkins X 做爲 Jenkins 的一個子項目存在,專一於雲原生應用的 CI/CD 實現,同時也幫助 Jenkins 自身完成雲原生應用的轉型,畢竟如今愈來愈多的人在詬病單體應用的設計和文件存儲系統。web
HELMdocker
Helm 是用於管理 Kubernetes 資源對象的工具,相似 APT,YUM 和 HOMEBREW,它經過將 Kubernetes 的資源對象打包成 Chart 的形式,完成複雜應用的部署和版本控制,是目前業界流行的解決方案架構
DRAFTapp
Draft 是自動化應用構建和運行在 Kubernetes 上面的工具,具備語言識別能力,可以自動生成構建腳本,依賴,環境並打包成 Docker 鏡像並部署在 Kubernetes 集羣上,加快代碼開發節奏,而無需關心基礎設施層面的技術實現運維
GitOpscurl
GitOps 是 Weaveworks 推出的天才的應用部署解決方案,它將 Git 做爲整個應用部署的單一可信數據源(SSOT),經過相似代碼開發的 Pull Request 流程完成應用部署的 Review 和自動化實現,而且將部署配置信息歸入版本控制。微服務
1. 自動化一切:自動化CI/CD流水線
選擇項目類型自動生成Jenkinsfile定義流水線
自動生成Dockerfile並打包容器鏡像
自動建立Helm Chart並運行在Kubernetes集羣
自動關聯代碼庫和流水線,做爲代碼變動自動觸發(基於Webhook實現)
自動版本號自動歸檔
2. Review代碼一鍵部署應用:基於GitOps的環境部署
全部的環境,應用列表,版本,配置信息統一放在代碼庫中進行版本控制
經過Pull Request實現研發和運維的協同,完成應用部署升級(Promotion)
可自動部署和手動部署,在必要的時候增長手工Review
固然這些都封裝在jx命令中實現
3. 自動生成預覽環境和信息同步反饋
預覽環境用於代碼Review環節中臨時建立
同Pull Request工做流程集成並實現信息同步和有效通知
驗證完畢後自動清理
提交和應用狀態自動同步到Github註釋
自動生成release notes信息供驗證
Jenkins X安裝---以linux爲例
1.在本地安裝jx命令行工具
#curl -L https://github.com/jenkins-x/jx/releases/download/v1.1.40/jx-linux-amd64.tar.gz | tar xzv
#mv jx /usr/local/bin
2.使用jx建立一個k8s集羣,並自動安裝Jenkins X(http://jenkins-x.io/getting-started/create-cluster/)或在已經存在的k8s集羣上安裝Jenkns x(http://jenkins-x.io/getting-started/install-on-cluster/)
經過已存在的k8s上安裝只須要執行 #jx install便可
這裏說下使用JX建立一個k8s集羣安裝jenkins X的注意點:
.執行命令#jx create cluster minikube 會默認下載minikube,kubectl和helm到~/.jx/bin目錄下,因此這裏須要將該路徑加入到系統PATH下;
.安裝一款虛擬機軟件支持kvm,virtualbox,no(使用docker的話選此選項,注意必定要爲其指定專門的網橋)
.根據提示輸入內存(默認4096M)輸入CPU核數(默認3),選擇虛擬機,肯定會自動下載Minikube ISO(142.22M)並啓動虛擬機加載該鏡像。