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