在第一章中我們了解到了部署軟件的三個(gè)步驟:
- 創(chuàng)建并管理應(yīng)用程序運(yùn)行所需的基礎(chǔ)設(shè)施
- 在其上安裝正確的應(yīng)用程序版本
- 配置應(yīng)用程序漠酿,包括它所需要的任何數(shù)據(jù)和環(huán)境
本章將討論的就是第一個(gè)步驟钧嘶,先來認(rèn)識(shí)兩個(gè)概念
- 環(huán)境:應(yīng)用程序運(yùn)行起來所需要的所有資源以及它們的配置信息
- 基礎(chǔ)設(shè)施:指的是項(xiàng)目中的所有環(huán)境及支持其運(yùn)行的所有服務(wù)(DNS 服務(wù)器、防火墻荞怒、路由器...)
而想要對(duì)這些基礎(chǔ)設(shè)施進(jìn)行管理,我們應(yīng)該遵守以下原則:
- 使用保存在版本庫(kù)中的配置信息來指定基礎(chǔ)設(shè)施的狀態(tài)
- 基礎(chǔ)設(shè)施應(yīng)該具備自治特性(自動(dòng)的將自己設(shè)置為所需狀態(tài))
- 通過一些測(cè)試設(shè)備或手段秧秉,需要做到實(shí)時(shí)的掌控基礎(chǔ)設(shè)施的狀態(tài)
一 理解運(yùn)維團(tuán)隊(duì)的需要
在一個(gè)略大點(diǎn)的項(xiàng)目團(tuán)隊(duì)中都會(huì)存在開發(fā)團(tuán)隊(duì)和運(yùn)維團(tuán)隊(duì)褐桌,但通常兩個(gè)團(tuán)隊(duì)的關(guān)系并不是很好,從而導(dǎo)致互坑的現(xiàn)象出現(xiàn)象迎。開發(fā)團(tuán)隊(duì)很久才去提交代碼荧嵌,導(dǎo)致運(yùn)維團(tuán)隊(duì)發(fā)布軟件可能會(huì)需要很長(zhǎng)時(shí)間,這樣大幅動(dòng)的更新帶來的也是高風(fēng)險(xiǎn)砾淌。所以所有項(xiàng)目組成員都應(yīng)該達(dá)成一個(gè)共識(shí)啦撮,也就是發(fā)布有價(jià)值的軟件成為一件低風(fēng)險(xiǎn)的事情。這么做就需要盡可能的頻繁發(fā)布汪厨,運(yùn)維團(tuán)隊(duì)比較關(guān)注的點(diǎn):
- 文檔和審計(jì)
- 異常事件的告警
- 保障 IT 服務(wù)持續(xù)性的計(jì)劃
- 使用運(yùn)維團(tuán)隊(duì)熟悉的技術(shù)
二 基礎(chǔ)設(shè)施的建模和管理
在項(xiàng)目的開始階段赃春,我們應(yīng)該就應(yīng)該搞清楚用當(dāng)前的技術(shù)棧是否可以很好的完成自動(dòng)化部署和配置軟硬件基礎(chǔ)設(shè)置,并解決下列問題:
- 如何準(zhǔn)備基礎(chǔ)設(shè)施
- 如何部署和配置應(yīng)用程序所依賴的各種軟件
- 如何管理這些基礎(chǔ)設(shè)施
1劫乱、基礎(chǔ)設(shè)施的訪問控制
- 在沒有批準(zhǔn)的情況下聘鳞,不允許他人修改基礎(chǔ)設(shè)施
- 制定一個(gè)對(duì)基礎(chǔ)設(shè)施進(jìn)行變更的自動(dòng)化過程
- 對(duì)基礎(chǔ)設(shè)施進(jìn)行監(jiān)控
2、對(duì)基礎(chǔ)設(shè)施進(jìn)行修改
- 任何變更都應(yīng)該走相同的變更管理流程
- 對(duì)變更的內(nèi)容進(jìn)行記錄
- 所有有權(quán)進(jìn)行修改的人都應(yīng)該登錄同一系統(tǒng)進(jìn)行更改
- 確保做的修改不會(huì)破壞原有環(huán)境(跑自動(dòng)測(cè)試)
- 需要編寫測(cè)試來驗(yàn)證變更是否生效
三 虛擬化
虛擬化是一種在一個(gè)或多個(gè)計(jì)算機(jī)資源上增加了一個(gè)抽象層的技術(shù)要拂。平臺(tái)虛擬化是指模擬一個(gè)完整的計(jì)算機(jī)系統(tǒng),從而在物理機(jī)上可以運(yùn)行多個(gè)操作系統(tǒng)的實(shí)例站楚。虛擬化的快捷性可以減少部署軟件所花費(fèi)的時(shí)間脱惰,并降低部署所帶來的風(fēng)險(xiǎn),可以帶來以下收益:
- 對(duì)需求的變化作出快速響應(yīng)窿春,很短的時(shí)間就可以搭建一個(gè)測(cè)試環(huán)境
- 固化拉一,不同的團(tuán)隊(duì)可能會(huì)有不同的持續(xù)集成服務(wù)器和測(cè)試環(huán)境,使用虛擬化可以將持續(xù)集成和測(cè)試基礎(chǔ)設(shè)施的固化變得更容易旧乞,以便將其提供給交付團(tuán)隊(duì)
- 硬件標(biāo)準(zhǔn)化
- 基線維護(hù)更容易
虛擬化技術(shù)的最重要特性之一就是虛虛擬機(jī)映像只是一個(gè)文件蔚润,這也就意味著這個(gè)映像(快照)可以很方便的被重用。在整個(gè)部署流水線上尺栖,我們都可以在我們需要的地方去做快照嫡纠。 虛擬化還可以對(duì)另外兩種不可追蹤的場(chǎng)景更容易管理:
- 已經(jīng)用非受控方式修改過的環(huán)境
- 無法以自動(dòng)化方式來管理?xiàng)V械能浖?/li>