DevOps還未徹底發(fā)展成熟。如果用人的一生來(lái)比喻,那么DevOps還只是位少年——雖然早已脫離襁褓,但遠(yuǎn)沒(méi)有長(zhǎng)大成人。就在這時(shí),歷史性的挑戰(zhàn)突然出現(xiàn),要求其在COVID-19疫情的沖擊之下,快速發(fā)展為加快軟件開(kāi)發(fā)工作的全面實(shí)施方案。
作為一名“少年”,DevOps在核心要素方面當(dāng)然無(wú)需含糊——協(xié)作為王、自動(dòng)化至上以及全面實(shí)現(xiàn)“持續(xù)”特性,包括持續(xù)集成、部署、測(cè)試以及改進(jìn)。
而持續(xù)改進(jìn)的一大重要組成部分,就是主動(dòng)找出當(dāng)前阻礙獲得成功的錯(cuò)誤,進(jìn)而努力避免這些錯(cuò)誤??v觀眾多全球財(cái)富兩千強(qiáng)企業(yè),都能發(fā)現(xiàn)其中不少都在三大DevOps錯(cuò)誤中折戟沉沙。下面來(lái)看如何有效避免。
開(kāi)發(fā)人員負(fù)擔(dān)過(guò)重
隨著數(shù)字化轉(zhuǎn)型在2021年成為全體CIO的首要工作,企業(yè)自然希望以創(chuàng)紀(jì)錄的速度交付足以改變游戲規(guī)則的強(qiáng)大功能,借此迅速擊敗競(jìng)爭(zhēng)對(duì)手。
這當(dāng)然需要整個(gè)團(tuán)隊(duì)的共同努力,包括開(kāi)發(fā)人員、產(chǎn)品負(fù)責(zé)人、測(cè)試人員、運(yùn)營(yíng)以及網(wǎng)站可靠性工程師(SRE)等。但是,每當(dāng)有某些功能或方案未能及時(shí)交付,鍋該由誰(shuí)來(lái)背?幾乎永遠(yuǎn)是開(kāi)發(fā)者。另一個(gè)殘酷的現(xiàn)實(shí)在于,絕大多數(shù)企業(yè)很難吸引到一流的開(kāi)發(fā)人員,留住少數(shù)頂尖人才就成為一項(xiàng)長(zhǎng)期而艱難的挑戰(zhàn)。
總之,企業(yè)萬(wàn)萬(wàn)不可對(duì)開(kāi)發(fā)人員予取予求。只有為開(kāi)發(fā)者們留下充足的空間,他們才能承擔(dān)起測(cè)試與安全保護(hù)等職責(zé)。
當(dāng)然,質(zhì)量保證與安全工作并不能只靠開(kāi)發(fā)者的自覺(jué),而應(yīng)在項(xiàng)目之初就以制度性形式存在。要強(qiáng)調(diào)的是,千萬(wàn)不要讓這樣的工作流程進(jìn)一步加大本就十分沉重的開(kāi)發(fā)者負(fù)擔(dān)。否則,頂尖開(kāi)發(fā)人才很可能投入其他企業(yè)組織的懷抱。
用統(tǒng)一要求衡量每一位開(kāi)發(fā)者
每個(gè)組織以及每位團(tuán)隊(duì)成員都可以通過(guò)正確的方式得到適當(dāng)?shù)呐嘤?xùn)與支持,進(jìn)而為DevOps成功做出貢獻(xiàn)。但是,不同成員做出貢獻(xiàn)的方式也有所區(qū)別,不應(yīng)統(tǒng)一要求。
任何行動(dòng)、流程或技術(shù)的早期采用者,往往正是組織內(nèi)最為耀眼的超級(jí)巨星、業(yè)務(wù)骨干。他們對(duì)自己的工作內(nèi)容充滿(mǎn)熱情,關(guān)注領(lǐng)域內(nèi)的各類(lèi)新興趨勢(shì),而且總有強(qiáng)大的內(nèi)驅(qū)力在工作上做出種種嘗試。無(wú)論是不斷修改當(dāng)前解決方案、還是尋找新的可行方法、再到為廣泛社區(qū)做出貢獻(xiàn),他們始終參與其中。沒(méi)錯(cuò),這些都是非常重要的習(xí)慣,也必然會(huì)帶來(lái)令人印象深刻的成果。
但千萬(wàn)別把這些當(dāng)成普適性的評(píng)判標(biāo)準(zhǔn)。大多數(shù)應(yīng)用交付人員并不是這么工作的,或者說(shuō)并不一定具有這種冒險(xiǎn)意識(shí)以及將新事物帶入生活的原始沖動(dòng)。他們投入了數(shù)年甚至數(shù)十年不斷完善自己掌握的技巧,希望以最高效、最順暢的“老辦法”持續(xù)處理問(wèn)題。
此外,不同的團(tuán)隊(duì)往往具有不同的技能、舒適區(qū)、優(yōu)先級(jí),而且很可能需要面對(duì)不同的應(yīng)用棧與合規(guī)性/治理要求。具體來(lái)講,初創(chuàng)團(tuán)隊(duì)往往更關(guān)注DevOps方法與工具集,而負(fù)責(zé)后端的團(tuán)隊(duì)則更多偏向傳統(tǒng)SAP。非要以統(tǒng)一的要求衡量雙方,只會(huì)徒增煩惱。
當(dāng)然,DevOps本身也是一項(xiàng)需要全面規(guī)劃的事務(wù)。
如果希望在整個(gè)企業(yè)之內(nèi)加速創(chuàng)新,那么每位員工都應(yīng)該在DevOps當(dāng)中扮演自己的角色,包括堅(jiān)持貫徹DevOps提出的核心理念、在工具集與實(shí)踐方面提供其他員工友好型選項(xiàng)、在涉及不同系統(tǒng)及項(xiàng)目的各小組中引入可見(jiàn)性與治理層。
未充分了解整體用戶(hù)體驗(yàn)
如今的用戶(hù)對(duì)于功能往往抱有極高期望,但對(duì)問(wèn)題的容忍度卻極低。Forrester最近發(fā)現(xiàn),單是在客戶(hù)體驗(yàn)層面的改進(jìn)也足以為企業(yè)帶來(lái)巨大的利潤(rùn)影響。他們估計(jì),客戶(hù)體驗(yàn)系數(shù)每增加1點(diǎn)(0到100),年收入即可實(shí)現(xiàn)顯著提升——汽車(chē)行業(yè)為11億美元、零售行業(yè)為4.96億美元,電信行業(yè)為3.88億美元。反之,如果客戶(hù)體驗(yàn)有所下降,也必定引發(fā)相應(yīng)的收入損失。
當(dāng)然,團(tuán)隊(duì)中的每位成員都希望打造并推出用戶(hù)喜愛(ài)的軟件。但是,不同的職能角色往往抱持著不同的觀點(diǎn)、個(gè)人優(yōu)勢(shì)與短板。從規(guī)劃、測(cè)試、發(fā)布再到監(jiān)控,我們需要真正全面地了解業(yè)務(wù),并通過(guò)每一位團(tuán)隊(duì)成員的參與有力捍衛(wèi)整體用戶(hù)體驗(yàn)。
不少DevOps團(tuán)隊(duì)目前仍在依靠底層技術(shù),例如在單元測(cè)試中,來(lái)確定候選發(fā)布版本是否可以安全推出。遺憾的是,這樣的測(cè)試往往只能發(fā)現(xiàn)編碼錯(cuò)誤,卻無(wú)法保證卓越的產(chǎn)品體驗(yàn)。要達(dá)成體驗(yàn)改進(jìn)的目標(biāo),需要做到如下三點(diǎn):
第一,采取基于風(fēng)險(xiǎn)的測(cè)試,借此快速判斷是否需要根據(jù)某些測(cè)試結(jié)果叫停項(xiàng)目發(fā)布。
第二,對(duì)事務(wù)進(jìn)行端到端功能測(cè)試,例如從移動(dòng)端到API、SAP與Salesforce等打包應(yīng)用,乃至自定義應(yīng)用程序與大型機(jī)等。
第三,通過(guò)負(fù)載/性能測(cè)試保證應(yīng)用程序能夠及時(shí)擴(kuò)展并應(yīng)對(duì)需求激增。
以上三大誤區(qū)在任何組織內(nèi)都很常見(jiàn)。畢竟DevOps還是少年,有時(shí)難免帶來(lái)一些麻煩——但只要悉心陪伴它的成長(zhǎng),相信DevOps終將成為企業(yè)發(fā)展道路上的強(qiáng)大助力。