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