目錄
- 軟件
- 軟件開(kāi)發(fā)流程的演變
- 瀑布模型
- 敏捷模型
- XP
- SCRUM
- DevOps
一嘱朽、軟件
-
與計(jì)算機(jī)系統(tǒng)操作有關(guān)的計(jì)算機(jī)程序旭贬、可能有的文件、文檔及數(shù)據(jù)搪泳。
image.png
二稀轨、軟件開(kāi)發(fā)流程的演變
image.png
1、瀑布模型
- 軟件開(kāi)發(fā)的各項(xiàng)活動(dòng)嚴(yán)格按照線性方式進(jìn)行
- 當(dāng)前活動(dòng)接受上一項(xiàng)活動(dòng)的工作結(jié)果
-
當(dāng)前活動(dòng)的工作結(jié)果需要進(jìn)行驗(yàn)證
image.png
瀑布模型優(yōu)缺點(diǎn)
- 優(yōu)點(diǎn)
- 開(kāi)發(fā)的各個(gè)階段比較清晰
- 強(qiáng)調(diào)早期計(jì)劃及需求調(diào)查
- 適合需求穩(wěn)定的產(chǎn)品開(kāi)發(fā)
- 缺點(diǎn)
- 由于開(kāi)發(fā)模型是線性的岸军,增加了開(kāi)發(fā)的風(fēng)險(xiǎn)
- 早期的錯(cuò)誤可能要等到開(kāi)發(fā)后期的階段才能發(fā)現(xiàn)
2奋刽、敏捷開(kāi)發(fā)模型
- XP
- SCRUM
XP - 極限編程
image.png
SCRUM
image.png
敏捷模型總結(jié)
- 增量迭代
- 小步快跑
3、DevOps
image.png
DevOps 生命周期
- 持續(xù)開(kāi)發(fā):交付成果被分解成各個(gè)任務(wù)節(jié)點(diǎn)艰赞,可以在很短的時(shí)間內(nèi)開(kāi)發(fā)并進(jìn)行交付佣谐。包含編碼、構(gòu)建的階段方妖。編碼階段可使用svn台谍、git等工具進(jìn)行編碼的維護(hù);構(gòu)建階段可以使用打包工具將代碼打包吁断。
- 持續(xù)測(cè)試:使用自動(dòng)化測(cè)試工具持續(xù)測(cè)試趁蕊,如selenium、appium工具仔役,unittest掷伙、pytest測(cè)試框架。
- 持續(xù)集成:不斷與現(xiàn)有代碼進(jìn)行合并又兵,如使用Jenkins工具從倉(cāng)庫(kù)提取代碼進(jìn)行構(gòu)建任柜。
- 持續(xù)部署:只有通過(guò)了持續(xù)集成的代碼才會(huì)進(jìn)入持續(xù)部署卒废,可以使用docker讓環(huán)境部署保持一致。
-
持續(xù)監(jiān)控:通過(guò)線上監(jiān)控提高軟件質(zhì)量宙地、監(jiān)控軟件性能摔认。運(yùn)維人員監(jiān)控用戶行為,從而收集數(shù)據(jù)宅粥。
image.png
DevOps對(duì)發(fā)布的影響
- 減少變更范圍
- 加強(qiáng)發(fā)布協(xié)調(diào)
- 自動(dòng)化
CI / CD
- 持續(xù)集成(Continuous integration参袱,縮寫為CI)是一種軟件開(kāi)發(fā)實(shí)踐,即團(tuán)隊(duì)開(kāi)發(fā)成員經(jīng)常集成他們的工作秽梅,通常每個(gè)成員每天至少集成一次抹蚀,也就意味著每天可能會(huì)發(fā)生多次集成。每次集成都通過(guò)自動(dòng)化的構(gòu)建(包括編譯企垦、發(fā)布环壤、自動(dòng)化測(cè)試)來(lái)驗(yàn)證,根據(jù)測(cè)試結(jié)果钞诡,我們可以確定新代碼和原有代碼能否正確地集成在一起郑现。
- 持續(xù)交付(Continuous delivery,縮寫為CD) 是一種軟件工程手法荧降,讓軟件產(chǎn)品的產(chǎn)出過(guò)程在一個(gè)短周期內(nèi)完成,以保證軟件可以穩(wěn)定懂酱、持續(xù)的保持在隨時(shí)可以發(fā)布的狀況。它的目標(biāo)在于讓軟件的構(gòu)建誊抛、測(cè)試與發(fā)布變得更快以及更頻繁列牺。這種方式可以減少軟件開(kāi)發(fā)的成本與時(shí)間,減少風(fēng)險(xiǎn)拗窃。
CD與DevOps的關(guān)系
- DevOps的范圍更廣瞎领,是軟件交付過(guò)程所涉及的多個(gè)團(tuán)隊(duì)之間的合作,并且將軟件交付的過(guò)程自動(dòng)化随夸。
- 持續(xù)交付是一種自動(dòng)化交付的手段九默,關(guān)注點(diǎn)在于將不同的過(guò)程集中起來(lái),并且更快宾毒、更頻繁地執(zhí)行這些過(guò)程驼修。
- DevOps可以是持續(xù)交付下的一個(gè)產(chǎn)物,持續(xù)交付的成果直接匯入DevOps模型诈铛。