Devops?是一種文化由蘑,一種方法論闽寡,而非工具集的疊加。需要明確的是尼酿,在當(dāng)下敏捷開發(fā)大行其道的環(huán)境下爷狈,operation也應(yīng)該配合這一趨勢(shì),采用敏捷部署裳擎,以加快TTM(Time to Markting)?和TTR(Time to repair)涎永。需要將開發(fā)和運(yùn)維打通起來,成為敏捷的一個(gè)大閉環(huán)鹿响,而非兩個(gè)不同層面相互獨(dú)立的流程羡微。具體為 plan -> code -> build -> test -> release -> deploy-> operate -> monitor -> data collect -> plan.?
DevOps?三大原則:
1.?Infrastructure as Code
2. Continuous delivery
3. Culture of collabration
IaC :
編碼:代碼開發(fā)和審閱容劳,版本控制工具峡蟋、代碼合并工具
構(gòu)建:持續(xù)集成工具蜂怎、構(gòu)建狀態(tài)統(tǒng)計(jì)工具
測(cè)試:通過測(cè)試和結(jié)果確定績效的工具
打包:成品倉庫累舷、應(yīng)用程序部署前暫存
發(fā)布:變更管理、發(fā)布審批凿蒜、發(fā)布自動(dòng)化
配置:基礎(chǔ)架構(gòu)配置和部署速侈,基礎(chǔ)架構(gòu)即代碼工具
監(jiān)視:應(yīng)用程序性能監(jiān)視抱既、最終用戶體驗(yàn)
這種架構(gòu)可以用三層架構(gòu)來表示,最底層為cloud/container installation, OS installation,?中間層?為System installation/configuration,?上層為Application/Service Deployment
CD:?
持續(xù)交付并不是持續(xù)部署结洼,持續(xù)交付的理念是保證每個(gè)changeset都可以部署到生產(chǎn)環(huán)境黎做,但出于業(yè)務(wù)需要可能并不需要部署叉跛。而持續(xù)部署就是每個(gè)變更自動(dòng)化部署到生產(chǎn)環(huán)境松忍。所以持續(xù)交付是持續(xù)部署的前提。
持續(xù)交付的核心想法在于:
部署越頻繁筷厘,對(duì)部署流程就會(huì)越熟悉鸣峭,自動(dòng)化機(jī)制就能不斷提高,從而就能獲得更好的結(jié)果
部署越頻繁酥艳,所部屬的變更集就越微不足道摊溶,出錯(cuò)的概率會(huì)變小,出錯(cuò)后修復(fù)的效率就會(huì)大大提高充石,即TTR(修復(fù)/解決所需時(shí)間)指標(biāo)就會(huì)越出色
2C:
2C?是 Collaboration and Communication,?開發(fā)人員和運(yùn)維人員互相支持莫换,合作,所以形成了一種who code it, who run it, who support it的文化骤铃。?敏捷要求貪婪的從客戶處獲取反饋并高效的不斷更新自身的產(chǎn)品拉岁,形成idea, code,data三要素的閉環(huán),code fast, measure fast, learn fast