devops實(shí)踐部分知識點(diǎn)概要總結(jié)
devops
部分實(shí)施大綱和約定
【傳統(tǒng)軟件,云原生等可參考】
基礎(chǔ)
開發(fā)、測試和運(yùn)維
自動化軟件功能的持續(xù)交付、持續(xù)集成
CI CD
構(gòu)建
背景
- 主要針對研發(fā)流程自動形成輸出物
- 這個過程使用git流程和簽入策略等進(jìn)行控制
- 單元測試、API測試
工具
- 使用現(xiàn)有的jennkis構(gòu)建約定和項(xiàng)目
- 依托開發(fā)工具類
輸出物
- 軟件安裝包
- OS依賴獨(dú)立包
- OS 快速安裝iso鏡像
鏡像
背景
- 針對"構(gòu)建"的輸出物進(jìn)行干凈的鏡像制作
工具
輸出物
- 虛擬機(jī)
- 針對virtualbox的box文件
- 概要: 場景:在單機(jī)上快速的原型驗(yàn)證和功能測試
【使用起來更簡單高效】
- 虛擬化
- 針對vsphere的vmx文件
- 針對docker的鏡像
- 針對kvm的box文件
https://hub.fastgit.org/goffinet/packer-kvm - 針對云的部署鏡像【現(xiàn)官方已支持直接在阿里、騰訊、京東、UCloud上部署鏡像構(gòu)建云主機(jī)應(yīng)用】
- 概要: 場景:真實(shí)的部署
性能測試
部署
背景
- 對鏡像或者對構(gòu)建的輸出物進(jìn)行自動部署
工具
- terraform
- vagrant
- 針對單個物理機(jī)上進(jìn)行虛擬機(jī)的測試
輸出物
- vagrant
- virtualbox
- kvm
- 概要: 單物理機(jī)上使用
- terraform
- 私有云,如vsphere
- 公有云
- alicloud
- Tencentcloud
測試
開發(fā)單元測試
- xunit
- cypress
https://gitee.com/wushifeng/cypressKit
開發(fā)集成、性能測試
- 使用vagrant或terraform的部署環(huán)境
- 額外的軟件等依賴通過ansible進(jìn)行應(yīng)用部署
- 測試數(shù)據(jù)的導(dǎo)入
- 不同的性能場景修改配置文件
- 監(jiān)控數(shù)據(jù)
- 推薦njmon,這個數(shù)據(jù)更小,更方便
易于歸檔和追蹤
https://gitee.com/wushifeng/centosKit/tree/master/sys/nmon/njmon - 涉及應(yīng)用等的更多診斷,還是promethus + grafana
- 推薦njmon,這個數(shù)據(jù)更小,更方便
- 關(guān)鍵點(diǎn)
- 測試主機(jī)環(huán)境性能
- CPU:核數(shù)、主頻
- 磁盤:順序、隨機(jī)讀寫
- 網(wǎng)絡(luò):雙工、大小包
- 內(nèi)存:大小、頻率、交換區(qū)
- 概要: https://gitee.com/wushifeng/centosKit/tree/master/perf
- 測試軟件版本和配置
- OS和系統(tǒng)軟件和配置
- 應(yīng)用系統(tǒng)和配置
- 不同場景的差異配置
- 測試數(shù)據(jù)
- 場景覆蓋
- 數(shù)據(jù)規(guī)模
- 運(yùn)行日志
- Warmup Colddown的時間
- 持續(xù)時間
- 多次連續(xù)測試的間隔
- 監(jiān)測數(shù)據(jù)
- 優(yōu)先主機(jī)的資源使用情況
- 應(yīng)用的深入監(jiān)控找瓶頸:比如GC回收、哪個線程最忙等
- 版本控制
- 每次的結(jié)果分析和受控
- 多次的結(jié)果可比較,迭代提升
- 測試主機(jī)環(huán)境性能
集成測試
- 測試依賴環(huán)境
- 數(shù)據(jù)庫
- 后臺服務(wù)系統(tǒng)
- WEB站點(diǎn)
- 產(chǎn)品部署環(huán)境
- UI測試
- cypress
分發(fā)安裝包
獨(dú)立物理主機(jī)
- iso PXE模式自動安裝
- clonezilla(再生龍)
- iso刻成引導(dǎo)光盤或U盤安裝
虛擬化
- 文件ova/ovf 導(dǎo)出
- workstation導(dǎo)出
- ESXi Server導(dǎo)出
- 概要: ovftool命令行工具
- 云鏡像部署
開發(fā)使用
- vagrant box導(dǎo)出
- virtualbox
- kvm (libvirtd)
結(jié)果
從OS安裝到各種軟件和配置的部署,完全干凈的安裝
整個過程通過各種工具的配置文件和腳本可以受控管理
IaC的幾個比較關(guān)鍵的步驟
參考
- vagrant相關(guān)
http://www.rzrgm.cn/2018/p/13862033.html - ansible相關(guān)
http://www.rzrgm.cn/2018/p/14410580.html - packer相關(guān)
TODO - Terrform相關(guān)
TODO - vsphere相關(guān)
TODO
XMind: ZEN - Trial Version
明細(xì)腦圖
