限制理論 (Theory Of Constraints)在DevOps方面的應用
一、定義
限制理論 (Theory Of Constraints),簡寫為TOC。任何系統(tǒng)至少存在著一個限制,否則它就可能有***的產(chǎn)出。因此要提高一個系統(tǒng)(任何企業(yè)或組織均可視為一個系統(tǒng))的產(chǎn)出,必須要打破系統(tǒng)的限制。任何系統(tǒng)可以想象成由一連串的環(huán)所構(gòu)成,環(huán)與環(huán)相扣,這個系統(tǒng)的強度就取決于其最弱的一環(huán),而不是其***的一環(huán)。相同的道理,我們也可以將我們的企業(yè)或機構(gòu)視為一條鏈條,每一個部門是這個鏈條其中的一環(huán)。如果我們想達成預期的目標,我們必須要從最弱的一環(huán);也就是從瓶頸(或限制)的一環(huán)下手,才可得到顯著的改善。換句話說,如果這個限制決定一個企業(yè)或組織達成目標的速率,我們必須從克服限制著手,才可以更快速的步伐在短時間內(nèi)顯著地提升系統(tǒng)的產(chǎn)出。
二、簡介
限制理論(TOC)是美籍以色列人高德拉特(Eli Goldratt)博士從物理學領域引進到管理學領域形成的,它是Theory Of Constraints的簡稱,最初它作為一個物理學原理使用,一個簡單的原理存在,它是指物理系統(tǒng)的最薄弱環(huán)節(jié)決定整個系統(tǒng)的產(chǎn)出或者效率,它在物理設計中經(jīng)常使用到。1984年,高德拉特博士出版了他的***本小說《目標》,書中運用約束的相關理論幫助一個工廠廠長在較短的時間內(nèi)實現(xiàn)了扭虧為盈,不僅很好的處理了企業(yè)的發(fā)展問題并且很好的解決了家庭中的矛盾。在高德拉特的不斷努力下,該書很快暢銷美國,并得到了相關管理專家的好評,從此,TOC開始非常流行。高德拉特博士在以后的實踐中,將該理論從生產(chǎn)領域逐漸擴展到銷售領域,以及企業(yè)的其它管理領域。繼目標以后,高德拉特又出版了《決不是靠運氣》和《關鍵鏈》等書籍,將該理論形成了一個完整的體系,并發(fā)展成為一種思維模式。約束理論在美國應用很廣,美國生產(chǎn)和庫存管理協(xié)會非常關注約束理論的發(fā)展,稱其為“約束管理”,并成立專門的約束理論研究小組。該小組認為:TOC是管理理論和管理工具的結(jié)合,它把企業(yè)在實現(xiàn)目標的過程中現(xiàn)存的或者潛伏的制約因素叫做“約束”,通過逐個識別約束和消除這些因素,使得企業(yè)的改進策略和改進方向更加明確化,從而幫助企業(yè)實現(xiàn)其目標。
三、應用在DevOps方面
DevOps的實施是面向復雜系統(tǒng)的,尋找瓶頸和限制約束的領域有下面四個。
上圖源于:http://www.jedi.be/blog/2012/05/12/codifying-devops-area-practices/
1. 每個領域的評價因素
對每個領域里面可能的瓶頸分層次的考察和剖析
2. 瓶頸的分析方法
以上是Dev到Ops的方向里,關于“交付到生產(chǎn)環(huán)境”領域的評測案例;里面分析的點是:使用相同的代碼來為應用搭建開發(fā)、測試和生產(chǎn)環(huán)境。
- Tools Layer : Deploys/Day
- Process Layer : Number of Change Requests/Day
- People Layer : People Involved per deploy
評估以上場景的時候,需要找出能夠在TPP三個層面可以度量的數(shù)據(jù)。當然可以加入DevOps流程中的其它相關指標。
3. DevOps積分卡
從每個領域的若干評估點上,既可以看到整體的成熟度矩陣。這也是DevOps落地點選擇的一種選取方式。問題越大的領域,應該是最應該改善,***改善的方面,由于它能立刻看到效果;但是也要考慮到業(yè)務產(chǎn)出,也要考慮它的投入風險;綜合看:應該選取有對業(yè)務價值產(chǎn)出有明顯幫助,且風險合理的領域。
4. 內(nèi)外循環(huán)
- 內(nèi)循環(huán):Automate - Measure 這2個領域組成了DevOps優(yōu)化改進的內(nèi)循環(huán),組織中的技術(shù)債務主要存在于這個循環(huán)中。
- 外循環(huán):Culture - Share 這2個領域組成了DevOps優(yōu)化改進的外循環(huán),組織中的社交債務主要存在于這個循環(huán)中。
四、總結(jié)
DevOps是一種狀態(tài),任何組織的任何產(chǎn)品都是一個復雜系統(tǒng),任一時刻都至少存在一個約束。DevOps是讓我們始終處于持續(xù)識別瓶頸和優(yōu)化系統(tǒng)的狀態(tài)中。
【本文為51CTO專欄作者“劉征”的原創(chuàng)稿件,轉(zhuǎn)載請通過作者微信公眾號“DevOps教練”(MyDevOps)獲取授權(quán)】