不解決好這 3 大矛盾,就別搞 DevOps 了
要想把Dev(開發(fā)人員)和 Ops(運(yùn)營(yíng))綁定在一起,還要求他們和諧相處、彼此融合,像不像某種“包辦婚姻”?因此,DevOps 注定是一個(gè)棘手的問(wèn)題,如果不能調(diào)和好,很難有什么“從此幸福快樂(lè)”的結(jié)局。
在過(guò)去十年中,盡管 DevOps 得到了很大的普及和推廣,但是始終有人會(huì)懷疑它的價(jià)值和有效性,有人認(rèn)為,如果你去看看 IBM 在 25 年前倡導(dǎo)的軟件開發(fā)實(shí)踐,就會(huì)發(fā)現(xiàn)DevOps 早就已經(jīng)存在,只是沒有正式的標(biāo)簽而已。
關(guān)于 DevOps 的爭(zhēng)論越焦灼,我們?cè)叫枰鉀Q一些有關(guān)于 DevOps 的問(wèn)題,好讓這些爭(zhēng)議轉(zhuǎn)化為積極的能量,為 DevOps的未來(lái)注入活力。而以下 3 個(gè)問(wèn)題可以說(shuō)是組織落地 DevOps 過(guò)程中最棘手、最需要重視的。
01 文化問(wèn)題是 DevOps 的經(jīng)典問(wèn)題
相對(duì)于敏捷、瀑布、極端、快速、聯(lián)合或 Scrum 等軟件方法論來(lái)說(shuō),很多人常常將 DevOps 視為一種與之前的軟件開發(fā)不同的文化。
的確,DevOps不僅僅是技術(shù)。DevOps 的技術(shù)方面是有限的,而人員、組織和文化方面是無(wú)限的。但是,很多人都太過(guò)于專注于工具和技術(shù),以至于忘記了技術(shù)之外,比如文化的影響??梢哉f(shuō),構(gòu)建優(yōu)秀的DevOps 流程的一個(gè)重要部分是了解成功所需的文化和組織變革,并將其作為優(yōu)先事項(xiàng)。
多數(shù)公司在面對(duì)這樣的文化轉(zhuǎn)變時(shí),都會(huì)遇見“FUD 問(wèn)題”:
?恐懼(Fear):自動(dòng)化帶來(lái)的對(duì)工作將被自動(dòng)化取代的恐懼;
?不確定性(Uncertainty):因未知而產(chǎn)生的焦慮;
?懷疑(Doubt):采用新技能和新思維方式會(huì)讓人懷疑資源是否可以調(diào)整。
在面對(duì)新事物時(shí),產(chǎn)生以上情緒很正常,但實(shí)際上新理念、新技術(shù)的誕生,帶來(lái)的往往是社會(huì)的進(jìn)步,以及個(gè)人生活、工作質(zhì)量的提升。
正如飛算云智總裁陳定瑋所說(shuō)的,“用工具實(shí)現(xiàn)自動(dòng)化工作,是為了讓個(gè)人才能發(fā)揮更大價(jià)值,而不是讓工具取代人。進(jìn)入自動(dòng)化時(shí)代,我們首先要轉(zhuǎn)變的是思維模式?!?
比如 DevOps 所強(qiáng)調(diào)的“持續(xù)集成”、“持續(xù)交付”和“持續(xù)部署”等,在 DevOps 實(shí)踐中這三種方法交織在一起,并在每個(gè)領(lǐng)域達(dá)到最大價(jià)值,這就需要團(tuán)隊(duì)具備“持續(xù)”的思維模式。
其中,這種“持續(xù)”的思維變化涉及到了包括人員、流程、技術(shù)和文化等領(lǐng)域。而要想獲得持續(xù)的思維則需要時(shí)間不斷學(xué)習(xí)。通常情況下,不少團(tuán)隊(duì)會(huì)選擇強(qiáng)大的組織變革管理 (OCM) 來(lái)實(shí)現(xiàn)文化轉(zhuǎn)變,這包括以下 6 個(gè)步驟:
?變革管理和準(zhǔn)備:與內(nèi)部利益相關(guān)者分享我們的目標(biāo)以及我們將如何實(shí)現(xiàn)目標(biāo),并設(shè)定期望。
?執(zhí)行:在執(zhí)行層建立明確的一致性和參與度。
?利益相關(guān)者參與:讓每個(gè)人都參與進(jìn)來(lái),確定誰(shuí)受到影響以及由誰(shuí)負(fù)責(zé),以了解阻力并提供支持。
?溝通:在正確的時(shí)間將正確的信息傳遞給正確的人,將利益相關(guān)者從意識(shí)轉(zhuǎn)變?yōu)橹С?、承諾和準(zhǔn)備,將消息傳達(dá)給組織的多個(gè)級(jí)別。
?能力發(fā)展:提供在新文化中取得成功所需的經(jīng)驗(yàn)和教訓(xùn)。
?組織一致性:讓角色、結(jié)構(gòu)、流程、政策和系統(tǒng)與期望的業(yè)務(wù)成果保持一致。
此外,透明度也是持續(xù)思維的重要基礎(chǔ)。在透明的環(huán)境里:每個(gè)人都有改進(jìn)結(jié)果的義務(wù)和責(zé)任。
如果能正確實(shí)施以上步驟,就可以將 DevOps文化變化分解成較小的變化,來(lái)確保長(zhǎng)期的、最終的、質(zhì)的改變。
02 云與云原生問(wèn)題是DevOps 的新晉問(wèn)題
眾所周知,云計(jì)算已經(jīng)蔚然成風(fēng)。最終,所有組織所謂的數(shù)字化轉(zhuǎn)型幾乎都是跟隨云計(jì)算的步伐。
這對(duì) DevOps 來(lái)說(shuō)并不能算是一個(gè)太好的消息,因?yàn)檫@意味著從初始部署到持續(xù)維護(hù)、管理和報(bào)告,DevOps 的復(fù)雜度一點(diǎn)也沒有減弱,甚至還出現(xiàn)了新問(wèn)題要解決。
現(xiàn)在有一點(diǎn)是可以確認(rèn):將 DevOps 帶入云原生世界是利大于弊的。但是,團(tuán)隊(duì)也會(huì)因此面臨更抽象和虛擬化的軟件工具集的新形式和功能,這是一個(gè)挑戰(zhàn)。
另一個(gè)挑戰(zhàn)是,在現(xiàn)實(shí)生活中云廠商和云平臺(tái)對(duì) DevOps 的支持是不夠的。DevOps 和云計(jì)算現(xiàn)在基本難以割舍,雖然云最初主要是一個(gè)開發(fā)/測(cè)試環(huán)境,并沒有嚴(yán)格的安全性和可用性要求,但是現(xiàn)在云已經(jīng)發(fā)展成為一個(gè)運(yùn)行生產(chǎn)工作的成熟平臺(tái)。
大多技術(shù)被移植到云上后,要構(gòu)建以云為中心的 DevOps 變得更難了。這是因?yàn)樵诘孛?即非云)編程中發(fā)生的事情是單個(gè)跨功能軟件團(tuán)隊(duì)的開發(fā)。這種基于筒倉(cāng)的方法是由于公司遺留結(jié)構(gòu)、管理系統(tǒng)等原因出現(xiàn)的。當(dāng)不同的團(tuán)隊(duì)都在重新發(fā)明輪子(運(yùn)行診斷測(cè)試、設(shè)置 CI/CD 管道、交付升級(jí)等)時(shí),這些輪子應(yīng)該被所有人共享和訪問(wèn),自然就會(huì)出現(xiàn)效率低的情況。
正確實(shí)現(xiàn)云原生 DevOps 的關(guān)鍵是:監(jiān)控和可觀察性方法。
以云為中心的 DevOps 團(tuán)隊(duì),可以獲取執(zhí)行可靠的和可觀察性的系統(tǒng)所需的日志、指標(biāo)和跟蹤等,這需要一套長(zhǎng)期監(jiān)控和觀察系統(tǒng);除此之外,與系統(tǒng)性能相關(guān)的較低級(jí)別的粒度信息也很重要。
可觀察性包括從監(jiān)控中收集的所有信息,還包括更高級(jí)別的工具,其中一些將是供 DevOps 從業(yè)者使用的可視化數(shù)據(jù)。當(dāng)兩者結(jié)合用于云原生 DevOps,可以在較低級(jí)別執(zhí)行任何調(diào)試或根本原因分析時(shí)優(yōu)化、保持和維護(hù)系統(tǒng)健康。
03 AIOps 與自動(dòng)化限制是 DevOps 的關(guān)鍵問(wèn)題
有人說(shuō):“人類是最大的安全漏洞?!?
曾有分析師這樣說(shuō)到:“我們的客戶將資源投入到網(wǎng)絡(luò)安全工作中,以防止零日攻擊和復(fù)雜的高級(jí)持續(xù)性威脅 (APT)。這些威脅雖然足夠真實(shí),但主要是外部威脅,可能不像許多組織認(rèn)為的那樣構(gòu)成巨大威脅。事實(shí)上,絕大多數(shù)安全漏洞都是人為因素引起的?!?
其中包括一些善意的員工犯了無(wú)辜的錯(cuò)誤,比如成為網(wǎng)絡(luò)釣魚攻擊的受害者、糟糕的公司密碼策略、云配置錯(cuò)誤和開放端口、技術(shù)債務(wù)等。
此時(shí),機(jī)器學(xué)習(xí)、人工智能和自動(dòng)化可以解決一部分問(wèn)題。有一些新興產(chǎn)品可以幫助實(shí)施 DevSecOps 最佳實(shí)踐,并幫助安全團(tuán)隊(duì)減少持續(xù)的噪音,以便他們可以專注于最重要的威脅。
在傳統(tǒng)生產(chǎn)模式中,企業(yè)要招聘大量工程師去開發(fā)軟件,開發(fā)完成后,由測(cè)試人員進(jìn)行測(cè)試。某種意義上,軟件質(zhì)量主要靠有經(jīng)驗(yàn)的工程師予以保障。就像飛算云智總裁陳定瑋所說(shuō)的那樣:“這就變得不可控制,因?yàn)槊總€(gè)人對(duì)每個(gè)東西的理解是不一樣的?!?
越來(lái)越多的企業(yè)開始引入DevOps 模式,軟件交付周期越來(lái)越短。于是,越來(lái)越多的工具平臺(tái)也開始大量涌現(xiàn),就比如飛算SoFlu軟件機(jī)器人,這是“中國(guó)原創(chuàng)的全球領(lǐng)先的軟件工程共創(chuàng)平臺(tái)”,截至目前已為包括醫(yī)療、金融、制造、零售等在內(nèi)的八大行業(yè)的上百家機(jī)構(gòu)提供了技術(shù)服務(wù),被數(shù)千位專業(yè)人士使用體驗(yàn)。
飛算 SoFlu 軟件機(jī)器人的核心理念是實(shí)現(xiàn)軟件開發(fā)全流程全自動(dòng)。通過(guò)自動(dòng)化的方式做到一“人”全棧解決:后端開發(fā)、前端開發(fā)、測(cè)試、運(yùn)維。并且門檻低,配置靈活,普通開發(fā)人員也能輕松上手,讓人人都能成為全棧工程師。
當(dāng)然,除了自動(dòng)化之外,AIOps 也是 DevOps 需要考慮的。當(dāng)前,可觀察性正在向 AIOps 發(fā)展。最終,可觀察性和AIOps的目標(biāo)是:了解所有這些環(huán)境和技術(shù)之間發(fā)生的事情,以便可以盡快檢測(cè)和解決問(wèn)題,從而使系統(tǒng)保持高效和可靠。