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