版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、技術(shù)創(chuàng)新 變革未來企業(yè)持續(xù)交付平臺(tái)方案目錄企業(yè)持續(xù)交付簡介1統(tǒng)一構(gòu)建平臺(tái)設(shè)計(jì)2Jenkins on K8s 實(shí)踐3問題與改進(jìn)4 企業(yè)持續(xù)交付背景8000+ 應(yīng)用3000+ 研發(fā)6000+ 發(fā)布/天 持續(xù)交付的意義效率提升質(zhì)量保障安全可靠團(tuán)隊(duì)協(xié)作流程透明 持續(xù)交付流程 分支模型管理master release/20181010 feature/1feature/2 hotfix/1v1.1 v1.0v1.0.1什么是版本?Git Tags源碼Packages源碼 + 代碼依賴Images源碼 + 代碼依賴 + 環(huán)境依賴 部署模型演進(jìn)以前201520162017虛擬機(jī)單機(jī)多應(yīng)用虛擬機(jī)單機(jī)單應(yīng)用胖容
2、器單機(jī)單應(yīng)用MesosK8s2018OpenStack Group一組暴露同一服務(wù)的集合拉入拉出Group 中的某個(gè)成員是否接收請(qǐng)求堡壘機(jī)生產(chǎn)環(huán)境 Group 中第一臺(tái)被發(fā)布驗(yàn)證的機(jī)器點(diǎn)火應(yīng)用初始化、預(yù)熱、加載數(shù)據(jù)等部署過程分批同一 Group 分成多個(gè)批次進(jìn)行滾動(dòng)部署降級(jí)部分依賴系統(tǒng)發(fā)生故障后發(fā)布系統(tǒng)可忽略剎車當(dāng)發(fā)布失敗機(jī)器數(shù)量大于一定比例則停止發(fā)布 回滾穩(wěn)定的符合預(yù)期的回滾邏輯部署過程拉出堡壘機(jī)部署堡壘機(jī)點(diǎn)火部署剩余批次成功成功成功需要?jiǎng)x車?發(fā)布停止發(fā)布成功是 否拉入堡壘機(jī)測(cè)試驗(yàn)證多環(huán)境測(cè)試環(huán)境, 生產(chǎn)環(huán)境多類型Docker, VM, BM多平臺(tái)OpenStack, Mesos, K8s多
3、數(shù)據(jù)中心私有云, 公有云資源管理 FAT-n環(huán)境管理FATFWSLPTUATPROFAT-2FAT-1性能測(cè)試用戶驗(yàn)收測(cè)試生產(chǎn)環(huán)境功能測(cè)試LPT-nLPT-2LPT-1 更加穩(wěn)定的 FAT目錄企業(yè)持續(xù)交付簡介1統(tǒng)一構(gòu)建平臺(tái)設(shè)計(jì)2Jenkins on K8s 實(shí)踐3問題與改進(jìn)4 開箱即用成熟穩(wěn)定插件豐富社區(qū)活躍強(qiáng)大的 PipelineJenkins 的優(yōu)勢(shì) 單點(diǎn)故障與單機(jī)性能Jenkins 的不足 Keepalived + Virtual IPGearman PluginJenkins on Mesos/K8sCloudBeesJenkins Master HA 方案 Master 拆分策略By
4、 environmentBy org chartBy product linesProsCan tailor plugins on masters to be specific to that environments needsCan easily restrict access to an environment to only users who will be using that environmentCan tailor plugins on masters to be specific to that teams needsCan easily restrict access t
5、o a divisions projects to only users who are within that divisionEntire flows can be visualized because all steps are on one masterReduces the impact of one masters downtime on only affects a small subset of productsConsReduces ability to create pipelinesNo way to visualize the complete flow across
6、mastersOutage of a master will block flow of all productsReduces ability to create cross- division pipelinesNo way to visualize the complete flow across mastersOutage of a master will block flow of all productsA strategy for restricting permissions must be devised to keep all users from having acces
7、s to all items on a master.來源 https:/jenkins.io/doc/book/architecting-for-scale/ Number of Jobs = Number of Developers * 3.333Number of Masters = Number of Jobs/500Number of Executors = Number of Jobs * 0.03預(yù)估 Job, Master 和 Executors 的數(shù)量來源 https:/jenkins.io/doc/book/architecting-for-scale/ 構(gòu)建系統(tǒng)現(xiàn)狀120
8、00+ 構(gòu)建/天210000+ Jobs320+ Masters20+ 類型 構(gòu)建系統(tǒng)架構(gòu)API 層負(fù)責(zé)接收各類 構(gòu)建請(qǐng)求Worker 層負(fù)責(zé) Job調(diào)度 Job Division Strategies隊(duì)列按照 app 或者 project 進(jìn)行分割Job Template每種 Job 都由數(shù)據(jù)庫中的隊(duì)列模板動(dòng)態(tài)創(chuàng)建與更新,隊(duì)列模板支持版本化的提交,可進(jìn)行灰度發(fā)布與快速回滾LabelingJob 與 Master 都帶有標(biāo)簽,Job 可以通過標(biāo)簽找到符合條件的 MasterSharding每個(gè) Master 可以配置容量,新建Job 時(shí)按照 Master 容量配置比例進(jìn)行ShardingFai
9、lover每個(gè) Job 至少有兩臺(tái)滿足條件的 Master,構(gòu)建系統(tǒng)實(shí)時(shí)對(duì)Master 進(jìn)行健康監(jiān)測(cè),故障時(shí)Job 自動(dòng)轉(zhuǎn)移到其他健康的 Master構(gòu)建系統(tǒng)特點(diǎn) 操作系統(tǒng)層面CPU, Mem, Disk, Network 等指標(biāo)應(yīng)用系統(tǒng)層面API, Worker 與 Jenkins 的可用性與異常情況業(yè)務(wù)邏輯層面構(gòu)建隊(duì)列是否有堵塞 系統(tǒng)容量是否到達(dá)瓶頸Pipeline 關(guān)鍵 Step 是否超時(shí)監(jiān)控與告警 構(gòu)建系統(tǒng)界面 目錄企業(yè)持續(xù)交付簡介1統(tǒng)一構(gòu)建平臺(tái)設(shè)計(jì)2Jenkins on K8s 實(shí)踐3問題與改進(jìn)4 Jenkins 集群演進(jìn)以前201520162017虛擬機(jī)Master and Sla
10、ve胖容器Master and Linux Slave胖容器Windows SlaveK8sMaster and Linux Slave Jenkins on K8sSlave 彈性調(diào)度Workspace 保留問題12 Slave 彈性調(diào)度構(gòu)建數(shù)量容器數(shù)量根據(jù)構(gòu)建的頻繁程度, 為不 同類型的 Slave 配置不同 的 PodIdleMinutes 參數(shù) 控制 Slave 保留時(shí)間 Slave Provision 時(shí)間優(yōu)化initialDelay: Jenkins 啟動(dòng)留給靜態(tài) Slave 連接的時(shí)間decay: Jenkins 負(fù)載統(tǒng)計(jì)公式 “指數(shù)移動(dòng)平均值(EMA)” 中的平滑指數(shù):0 +
11、(1 )判斷是否應(yīng)該創(chuàng)建 Slave: 1 ( = m 的計(jì)算公式: + (0 ) . (DECAY, ) Slave Provision 時(shí)間優(yōu)化經(jīng)常有 Slave 的創(chuàng)建時(shí)間超過 5 分鐘! kubernetes-plugin: src/main/java/org/csanchez/jenkins/plugins/kubernetes/pipeline/PodTemplateStepEx ecution.java#start jenkins: core/src/main/java/jenkins/model/Jenins.java#966jenkins: core/src/main/jav
12、a/hudson/slaves/NodeProvisioner.java#861遍歷 Labels 運(yùn)行 Provision 輪訓(xùn)邏輯, 而第 一次新建 Slave 時(shí)不會(huì)更新 Labels 集合Jenkins 每隔 5 分鐘更新一次 Labels 集合在插件創(chuàng)建 Slave 時(shí)主動(dòng)調(diào)用 reset 方法Workspace 保留問題為什么?用戶需要在 Slave 被回收后依然可以在 Jenkins 上 面查看 Workspace, 并且可以減少源碼下載次數(shù)如何實(shí)現(xiàn)?讓 Slave 與 Master 在同一個(gè) Node(nodeSelector) 且 共享同一 Workspace, 通過 Mas
13、ter 查看 Workspace遇到問題?一個(gè) Job 在同一時(shí)間只能在一個(gè) Master 中運(yùn)行如何解決?構(gòu)建系統(tǒng)實(shí)現(xiàn)同一個(gè) Job 對(duì)于多個(gè) Master 并發(fā)構(gòu)建 的調(diào)度/var/lib/jenkins/workspaceJenkins MasterMount/var/Jenkins-master-1/workspace/var/jenkins_home/workspaceJenkins SlaveNode StatefulSet 管理 Master使用 StatefulSet 管理 Jenkins Master 集群降低 維護(hù)成本StatefulSetMasterSlaveSlaveM
14、asterSlaveSlaveMasterSlaveSlaveMasterSlaveSlaveNode NodeSticky Scheduler讓 Master Pod 固定分配 到指定的 Node 上 CHostpath Volume Driver/var/lib/k8s/storage/chostpath/$(NAMESPACE)/$(RESOURCE_TYPE)/$(RESOURCE_NAME)/Pod/$(POD_NAME)/$ (VOLUME_NAME)按照規(guī)則自動(dòng)創(chuàng)建 Pod的掛載目錄 Jenkins Master 啟動(dòng)過程創(chuàng)建 StatefulSet創(chuàng)建 Pod運(yùn)行 Entrypoint創(chuàng)建 Volume創(chuàng)建
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)體草莓經(jīng)銷商合作合同書版B版
- 智慧教育與學(xué)生自主學(xué)習(xí)能力的提升探索
- 2025年度高空作業(yè)安全責(zé)任免除協(xié)議范本兩份4篇
- 教育變革背景下學(xué)生自主學(xué)習(xí)的挑戰(zhàn)與機(jī)遇
- 2025年度裝配式建筑混凝土構(gòu)件生產(chǎn)與承包合同范本4篇
- 校園心理健康課程的學(xué)生反饋分析
- 推動(dòng)校園文化建設(shè)學(xué)校藝術(shù)及文化設(shè)施的采購計(jì)劃
- 環(huán)保材料在建設(shè)綠色校園中的應(yīng)用研究
- GRC施工合同范本
- 技術(shù)創(chuàng)新引領(lǐng)下的工業(yè)互聯(lián)網(wǎng)平臺(tái)發(fā)展趨勢(shì)分析
- 新媒體論文開題報(bào)告范文
- 2024年云南省中考數(shù)學(xué)試題含答案解析
- 國家中醫(yī)藥管理局發(fā)布的406種中醫(yī)優(yōu)勢(shì)病種診療方案和臨床路徑目錄
- 2024年全國甲卷高考化學(xué)試卷(真題+答案)
- 汽車修理廠管理方案
- 人教版小學(xué)數(shù)學(xué)一年級(jí)上冊(cè)小學(xué)生口算天天練
- (正式版)JBT 5300-2024 工業(yè)用閥門材料 選用指南
- 三年級(jí)數(shù)學(xué)添括號(hào)去括號(hào)加減簡便計(jì)算練習(xí)400道及答案
- 蘇教版五年級(jí)上冊(cè)數(shù)學(xué)簡便計(jì)算300題及答案
- 澳洲牛肉行業(yè)分析
- 計(jì)算機(jī)江蘇對(duì)口單招文化綜合理論試卷
評(píng)論
0/150
提交評(píng)論