DevOps是隨著互聯(lián)網(wǎng)的不斷發(fā)展而被眾多程序員掌握的一種開發(fā)方式,而今天我們就通過案例分析來了解一下,DevOps開發(fā)還有哪些技術(shù)優(yōu)勢。
DevOps作為Development和Operations的組合,被定義為實(shí)現(xiàn)軟件開發(fā)和IT團(tuán)隊(duì)之間流程自動(dòng)化的一組實(shí)踐,這些實(shí)踐建立在團(tuán)隊(duì)之間協(xié)作文化的基礎(chǔ)上,填補(bǔ)了開發(fā)端和運(yùn)維端之間的信息鴻溝,以便更快、更可靠地構(gòu)建、測試和發(fā)布軟件,目前已經(jīng)成為主流的軟件開發(fā)交付模式。
總體來看,DevOps包含了開發(fā)、測試和運(yùn)維三部分。具體看來,它由多個(gè)階段組成:持續(xù)開發(fā)、持續(xù)集成、持續(xù)測試、持續(xù)反饋、持續(xù)監(jiān)測、持續(xù)部署、持續(xù)運(yùn)維,統(tǒng)稱為DevOps生命周期。
DevOps功能的分與合在信息流轉(zhuǎn)層面得到了充分體現(xiàn),在開發(fā)交付測試、測試回饋、交付發(fā)布等階段,各類信息的提供方、接收方使用優(yōu)質(zhì)的工具系統(tǒng),進(jìn)而實(shí)現(xiàn)順暢精準(zhǔn)的傳輸信息和高效的執(zhí)行機(jī)械化操作。
從上述發(fā)展理念來看,DevOps的思想源于基礎(chǔ)設(shè)施層不夠強(qiáng)大、不夠標(biāo)準(zhǔn)化,所以業(yè)務(wù)側(cè)需要一套工具來黏合研發(fā)、運(yùn)維人員和相應(yīng)的基礎(chǔ)設(shè)施。但隨著Kubernetes和基礎(chǔ)設(shè)施越來越復(fù)雜,云原生生態(tài)會(huì)做出相應(yīng)的抽象和分層,每一層的角色只和屬于自己的數(shù)據(jù)抽象去交互,即開發(fā)側(cè)和運(yùn)維側(cè)的關(guān)注點(diǎn)分離。不斷泛化的Serverless也將成為DevOps的一種思想導(dǎo)向和組成部分。在能力側(cè),“輕運(yùn)維”、“NoOps”、“自助式運(yùn)維能力”會(huì)成為應(yīng)用運(yùn)維的主流方式。在應(yīng)用側(cè),應(yīng)用描述會(huì)廣泛地進(jìn)行用戶側(cè)的抽象,事件驅(qū)動(dòng)和Serverless理念被拆分和泛化,可以被應(yīng)用于FaaS之外的多樣化的場景中。