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