DevOps面臨的艱巨任務在其名字中已有體現:如何協調開發(Dev)和IT運營(Ops)以及軟件開發過程中其他參與團隊。相信很多企業在實踐DevOps時會發現:理想很豐滿,卻總是在推進過程中遇到層層阻礙,到底該如何將跨功能團隊及各部分業務內容整合,形成一個頗具凝聚力的高效整體?
最近我們發現“ba”概念深刻地闡釋了DevOps所面臨的關鍵挑戰。ba,即“場所”,最初由日本哲學家西田幾多郎(Kitaro Nishida)提出。他認為,ba是知識創造型企業的基本構成要素,因此要建立相互信任的交流環境,以促進知識的創造和共享。
DevOps中的ba概念則是融合了整個應用程序生命周期中的跨職能專業知識、關注點和最佳實踐,使團隊變得更專注、更有活力、更高效。
我們可以通過以下5種方式,判斷企業文化是否符合ba的理念:
DevOps企業必須從“系統”的角度看待自身的業務。建立DevOps實踐不應該只局限于部分領域、團隊或部門。
系統思維意味著每個團隊都應該了解其他團隊在應用程序生命周期中所采取的行動,以及每個行動所產生的內部或外部影響,整個企業系統致力于實現共同的目標并進行全面的監測。
持續交付流程通過共同的目標,將不同的實踐、流程和程序相互協調,以促進低風險、高速度、高質量的軟件交付。
成功的DevOps實踐著眼于為終端用戶提供價值。團隊必須從一開始就齊心協力,確定哪些流程和程序阻礙了交付進度、各團隊要采取哪些行動,以及如何利用技術和自動化進行優化。
“價值流圖析”可以將業務需求體現到從計劃到產出的全過程中,確定為用戶提供價值所涉及的全部流程和利益相關方,并評估哪些技術可以提高價值交付的效率和效果。
在構建持續交付流程時,可以通過技術手段讓各團隊實時追溯業務價值信息,幫助各團隊及利益相關方實現信息的可視化,從而建立信任關系,改善協調機制。
如果質量管理由質量保證團隊壟斷,就違反了DevOps實踐原則。當前的現代應用交付模式下,質量管理必須成為持續交付流程的重中之重,因此,開發、測試、發布和運營團隊需要共同承擔責任。
CA Technologies的持續質量顧問Alex Martins曾表示,專注于加速應用程序交付往往欲速則不達。因此必須通過持續測試保證軟件達到工程質量標準。
持續測試的目標是在持續交付流程中,通過左移軟件測試以便盡早發現問題、解決問題,防止在產出過程發生緊急情況。該措施有助于交付流程高效運行,并促進各團隊之間團結協作。
實驗能力包括學習、快速試錯和從頭來過,這些對于DevOps方法論的成功至關重要。
信任是實驗的基礎,可以協調各團隊在同一平臺通過共同的實踐和標準推進軟件發布進程,以此建立團隊間的信任關系。
各團隊必須認同快速試錯與成功具有同等的價值,并與企業內部的其他團隊分享知識和經驗,只有這樣才能在DevOps實踐的道路上取得長足的進步。
最后一點,衡量和監控應用程序生命周期各個階段的進展與其他業務活動同等重要。通常情況下,企業內部不會留存共同的數據,或者各團隊沒有一致的數據,導致很難理解正在處理及待處理的工作任務。
各團隊都必須使用共同的數據源并信任數據。DevOps分析使各團隊能夠展示詳細的業務數據,專注需要改進的部分,并協同采取正確的措施。
改善DevOps戰略時,建立ba應當作為優先事項,從而最大化使各團隊合作,協調交付流程并分享經驗。
高效的員工樂于接納在協作、測試和實驗方面的成熟實踐。他們根據團隊間共享的透明化信息在持續改進方面身體力行,并依靠數據驅動的決策為企業及其客戶制定長遠發展的藍圖。
要建立高效DevOps企業文化,必須以可視化、協作和衡量標準作為基礎,構建持續交付流程。