1.理論基礎(chǔ)
本篇是基于公司內(nèi)部的一次DevOps分享,PPT是自己準(zhǔn)備的一些內(nèi)容。
目前主流的開發(fā)模型相信大家都清楚,這邊簡(jiǎn)單介紹一下:
? 瀑布開發(fā)模型:生命周期很長忆绰,一般會(huì)完整的走如下流程:需求調(diào)研->詳細(xì)設(shè)計(jì)->編碼->測(cè)試->部署->運(yùn)維,且下一環(huán)節(jié)需要等上一環(huán)節(jié)完成后才可以繼續(xù)進(jìn)行可岂,往往需求階段和測(cè)試階段會(huì)占據(jù)很長時(shí)間错敢,且需求調(diào)研結(jié)束后很少再做修改,因此青柄,在一個(gè)長周期的開發(fā)完成之后反饋給客戶伐债,往往會(huì)進(jìn)行一次較大的修改和調(diào)整预侯,后期修改成本及其大致开。
? 敏捷開發(fā)模型:這種開發(fā)模式以一種不斷迭代的方式縮短開發(fā)周期,把一個(gè)整體大的需求分成若干小的需求萎馅,進(jìn)行迭代開發(fā)双戳,并將產(chǎn)品反饋給客戶的時(shí)間縮短,不斷從客戶得到反饋糜芳,并且不斷修改直至客戶滿意飒货,這種方式大大縮短了客戶和開發(fā)測(cè)試之間的距離,把修改的成本縮短到一個(gè)小需求的生命周期峭竣,節(jié)省了修改成本塘辅。但是并沒有解決開發(fā)和運(yùn)維之間的協(xié)同合作,因此皆撩,DevOps應(yīng)運(yùn)而生扣墩。
? DevOps模式:該模式強(qiáng)調(diào)一個(gè)運(yùn)維和開發(fā)不斷溝通的能力環(huán),在開發(fā)階段我們沿襲敏捷的開發(fā)模式扛吞,在運(yùn)維階段呻惕,我們強(qiáng)調(diào)自動(dòng)化的運(yùn)維,并不斷講已經(jīng)上線的產(chǎn)品中的問題反饋給開發(fā)滥比,以進(jìn)行問題修復(fù)亚脆。
我們可以看到,對(duì)于一個(gè)軟件的生命周期盲泛,基本流程都類似濒持,只是在各個(gè)階段我們做了不同的優(yōu)化键耕,而且這種優(yōu)化也是經(jīng)歷過考驗(yàn)的可以實(shí)施的最佳實(shí)踐。
2.什么是DevOps
那么什么是DevOps呢柑营?有人認(rèn)為DevOps是運(yùn)維+開發(fā)郁竟,有人認(rèn)為是自動(dòng)化,也有人認(rèn)為是Ias由境,當(dāng)然棚亩,這些認(rèn)識(shí)都是有其道理,也是DevOps中不可或缺的一部分虏杰,但大多都是盲人摸象讥蟆,沒有對(duì)DevOps有個(gè)整體的認(rèn)識(shí),對(duì)于DevOps的認(rèn)識(shí)纺阔,請(qǐng)轉(zhuǎn)至第一章:深入剖析DevOps系列(1)
3.Develop和Operation的歷史問題
開發(fā)和運(yùn)維人員素來就被一種叫做部門墻的隱形之墻所隔離,這種問題由來已久笛钝,
原因1:開發(fā)和運(yùn)維的目標(biāo)不一致质况,開發(fā)的目的是不斷的增加新功能,不斷完善需求玻靡,不斷發(fā)布新版本结榄,總之對(duì)于開發(fā)來說,唯一不變的就是變化囤捻,但是臼朗,對(duì)于運(yùn)維來說,首要的問題是要求穩(wěn)蝎土,因?yàn)橐磺袉栴}的來源都是變化视哑。
原因2:兩個(gè)角色所在的部門考核標(biāo)準(zhǔn)不一樣,對(duì)于開發(fā)來說誊涯,新開發(fā)一個(gè)需求考核就遞增一點(diǎn)挡毅,是個(gè)累加的過程;而對(duì)于運(yùn)維來說暴构,即使將發(fā)布工作做的極致跪呈,起點(diǎn)也只是0,因?yàn)榈ず荆@本來就是運(yùn)維應(yīng)該做的庆械,一旦出了問題,便會(huì)從0開始遞減菌赖,是個(gè)遞減的過程缭乘。
4.DevOps要解決的問題
DevOps首要解決的問題就是Develop和Operation間的這堵部門墻,一種模式就是借鑒敏捷開發(fā)的模型,將運(yùn)維人員納入到整個(gè)團(tuán)隊(duì)堕绩,之于團(tuán)隊(duì)的定義策幼,就是有著共同目標(biāo)的一群人
亞馬遜有一種模式,叫做2 pizza team奴紧,用2個(gè)pizza就能搞定的Team定義為DevOps Team特姐,當(dāng)然,這個(gè)是一種抽象黍氮,目前最佳實(shí)踐的DevOps team比例為1:4:1:1,即一個(gè)需求唐含,4個(gè)開發(fā),一個(gè)測(cè)試沫浆,一個(gè)運(yùn)維捷枯,當(dāng)然,可以根據(jù)不同公司的不同需求做一些調(diào)整专执。
5.DevOps遇到的強(qiáng)力阻礙
對(duì)于現(xiàn)在很多公司來說淮捆,存在很明顯的責(zé)任推脫問題,相互推諉本股,相互指責(zé)攀痊,屢見不鮮,對(duì)于DevOps乃至整個(gè)公司來說來說拄显,這不是一種好的工作狀態(tài)苟径,所以DevOps強(qiáng)調(diào)信任,溝通凿叠,相互學(xué)習(xí)和責(zé)任共擔(dān)涩笤。開發(fā),測(cè)試和運(yùn)維之間的各種活動(dòng)都需要把其他人作為關(guān)鍵干系人盒件,做到測(cè)試和運(yùn)維了解需求,開發(fā)和運(yùn)維了解測(cè)試舱禽,測(cè)試和運(yùn)維了解開發(fā)等等炒刁,當(dāng)然,了解并不是讓開發(fā)去做測(cè)試的事情誊稚,或者運(yùn)維去做開發(fā)的事情翔始,我們強(qiáng)調(diào)的,是溝通和相互了解~