<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          企業(yè) DevOps 落地實踐經(jīng)驗分享

          共 6805字,需瀏覽 14分鐘

           ·

          2023-06-21 21:25

          來源:InfoQ架構(gòu)師頭條

          鏈接:https://mp.weixin.qq.com/s/uMAh-uqerEpLtrrp-UYTTw


          DevOps 始于 2009 年,這種范式讓許多組織能夠加快軟件交付速度和提升業(yè)務(wù)績效,正如“Accelerate 報告”及其著名的 DORA 指標——速度、穩(wěn)定性和恢復——所描述的那樣。

          敏捷首當其沖,與 DevOps 成為組合,在相同的工作流中平衡業(yè)務(wù)價值和技術(shù)交付。

          最近的一些實踐,如可靠性或安全性,都采用了“SRE”和“DevSecOps”這兩個術(shù)語。

          然而,來自 谷歌、Puppet、CircleCI 和 Dynatrace 等公司的各種 DevOps 狀態(tài)報告都揭示了他們對這個生態(tài)系統(tǒng)的一些相似的發(fā)現(xiàn)——難以持續(xù)及時交付業(yè)務(wù)價值和創(chuàng)新、孤立的團隊缺乏一致性、碎片化的工具鏈和質(zhì)量的犧牲。

          本文將分享如何利用過去幾年積累的經(jīng)驗和實踐,通過質(zhì)量工程來改進 DevOps 范式,從而帶來更多的價值,并解決這些已知的痛點。

          “開發(fā)和運維”
          DevOps 只是一個開始

          DevOps 沒有固定的宣言,理由很簡單——為演進留下空間。

          “我們并沒有對 DevOps 做出確切的定義。我們讓它朝著各個方向擴展,研究不同方向之間的改進可能意味著什么。人們很糾結(jié) DevOps 究竟是應該是怎樣的?!薄狿atrick Debois,Snyk(之前的 DevOpsDays)顧問,摘自由 Puppet 和 CircleCI 提供的“2020 年 DevOps 狀態(tài)報告”

          最初促進開發(fā)和運營流程的 DevOps 概念走向了多個方向。在安全性方向有了“DevSecOps”,在深入 研究企業(yè)實踐 后,谷歌甚至將可靠性作為指標的一部分添加了進去。

          圖 1. DevOps 繼續(xù)在許多方向上發(fā)展演進

          但當前生態(tài)系統(tǒng)中的創(chuàng)新和競爭在不斷提高參與者的門檻。一些新公司可以在 不到 3 個月的時間 里達到 10 億美元的估值,這給同一領(lǐng)域現(xiàn)有的公司帶來了壓力。因此,85% 的公司 感到有必要通過軟件來重塑他們的業(yè)務(wù)以求得生存。

          對于許多組織來說,軟件交付仍然是一個業(yè)務(wù)限制因素。

          圖 2.?軟件限制因素會直接對業(yè)務(wù)造成限制

          因此,DevOps 目前的發(fā)展狀態(tài)水平還不夠高。業(yè)務(wù)價值、安全性和可靠性只是保持競爭力需要滿足的部分需求。平衡質(zhì)量和速度需要一個跨越整個軟件生命周期(從業(yè)務(wù)想法到運維)的范式轉(zhuǎn)換,要“構(gòu)建得更好,構(gòu)建得更快”。

          要達到這一水平,DevOps 必須能夠發(fā)展到通過全速質(zhì)量軟件(Quality at Speed Software)在工程系統(tǒng)的所有領(lǐng)域?qū)崿F(xiàn)持續(xù)的價值交付。

          用集成方式來
          簡化有價值的活動

          DevOps 最初在從代碼到運維方面進行了大量改進,這導致出現(xiàn)了許多專注于加速開發(fā)團隊和運維團隊之間的流程的方法。

          然后,敏捷和精益等方法與 DevOps 結(jié)合,以便用更高的效率更好地關(guān)注價值交付,旨在實現(xiàn)“全速軟件(Software at Speed)”。還增加了一些具體的要求,如持續(xù)性實踐,包括監(jiān)控、安全性或測試。

          圖 3.即使有了 Accelerate 報告中所提及的發(fā)現(xiàn),質(zhì)量需求也只是剛剛開始被考慮到

          Accelerate 報告解釋了軟件交付和業(yè)務(wù)結(jié)果之間的正相關(guān)關(guān)系,定義了執(zhí)行者類別——“精英”執(zhí)行者們每天穩(wěn)定地進行多次發(fā)布。

          但隨著每天多次交付成為當今競爭的常態(tài),只能通過交付更多的價值來獲得競爭優(yōu)勢。因此,DevOps 必須進行轉(zhuǎn)變,以便更好地與現(xiàn)有方法集成,創(chuàng)建全速質(zhì)量(Quality at Speed)流程。

          圖 4.DevOps 必須簡化質(zhì)量流程

          第一個改變是綜合“從客戶到代碼”和“從代碼到客戶”這兩個數(shù)字轉(zhuǎn)型流程,正如米其林集團首席信息官 Yves Caseau 在《數(shù)字轉(zhuǎn)型的精益方法》一書中所說的那樣。

          DevOps 必須從一開始就將敏捷、全面質(zhì)量和精益啟動與全局視角相結(jié)合。將用戶描述與 CI/CD 平臺中的代碼部署聯(lián)系起來只是一個開始。共享的工作方式和支持工具必須進行更好地集成,以便實現(xiàn)更快、更有價值的從業(yè)務(wù)想法到運維的迭代。

          第二個改變是創(chuàng)建專門的實驗、核心業(yè)務(wù)和技術(shù)平臺價值流。 與 DevOps 打破端到端孤島的思維模式保持一致,每個流必須能夠相互解耦迭代,以確保它們對質(zhì)量和速度的需求能夠得到滿足。

          圖 5.左移是實現(xiàn)全速質(zhì)量軟件的范式之一?

          SRE 和 DevOps 是專門用于滿足可靠性和安全性非功能性需求的流程。后續(xù)的演進目標是滿足軟件生命周期中的其他需求,如可觀察性、可用性和可持續(xù)性,避免無法實現(xiàn)它們或試圖在之后通過高成本的返工來恢復。

          最后一個改變是系統(tǒng)性地應用端到端價值流約束理論。 整個生命周期中最薄弱的一點是確定 整個系統(tǒng) 的質(zhì)量和速度水平,價值流映射和移除限制因素必須成為 DevOps 改進習慣的一部分。

          雖然這些演進改進了協(xié)作流程,獲得了更多價值,但預期的加速需要的不僅僅是方法。技術(shù)必須讓組織能夠快速地演化和采用軟件。

          用最小可行架構(gòu)來構(gòu)建平臺

          為了支持更快的迭代,DevOps 非常強調(diào)集成和部署階段的自動化。部署自動化通過為開發(fā)人員提供原生管道提升了軟件質(zhì)量,并降低了總體維護成本。2020 年 Puppet 報告 顯示,超過 60% 的公司表示他們的 DevOps 處于中期演進階段。

          圖 6.GitLab 2022 年全球 DevSecOps 調(diào)查報告顯示,現(xiàn)代 DevOps 提升了安全性,但缺乏集成?

          好的方面是在利用技術(shù)和思維方式的變化為開發(fā)人員提供自助服務(wù)功能方面取得了進展。所有這些逐步利用云原生功能的自動化經(jīng)驗讓我們能夠更好地設(shè)想目標架構(gòu),從而幫助我們實現(xiàn)“更好、更快的構(gòu)建”。

          通過自助服務(wù)改進的自動化和協(xié)作生成了更多關(guān)于流程執(zhí)行、性能和交互的數(shù)據(jù)。隨著運維數(shù)據(jù)科學的不斷成熟,部署的 MLOps 和 AIOps 組件將能夠提供跨生命周期的持續(xù)可見性和自動化,就像 Sealights 那樣。

          圖 7.DevOps 架構(gòu)必須整合全速質(zhì)量平臺

          DevOps 轉(zhuǎn)變需要整合以下這些平臺。

          1. 基礎(chǔ)設(shè)施平臺;

          2. 開發(fā)者平臺;

          3. 實驗平臺。

          每一個平臺都是在彼此的基礎(chǔ)上逐步成熟,以最小的承諾和返工來滿足質(zhì)量要求。這種漸進式實現(xiàn)就是所謂的 最小可行架構(gòu),通過交付最小的架構(gòu)增量來支持產(chǎn)品迭代,實現(xiàn)更好的目標匹配和更快的采用。

          基礎(chǔ)設(shè)施平臺 讓運維團隊能夠通過自動化和云能力來提升生產(chǎn)力。這些改進可以用于構(gòu)建 開發(fā)者平臺,支持更快的核心業(yè)務(wù)變更迭代,同時又能滿足多種質(zhì)量需求,包括功能可用性、性能和安全性。

          然后,業(yè)務(wù)可以利用滿足質(zhì)量需求的軟件交付加速周期來迭代業(yè)務(wù)變更。在這個階段,公司可以主張獨特的價值,并且可以通過實驗平臺提供的自助工具和集成解決方案更快地實現(xiàn)它們。

          圖 8.Uber的實驗平臺

          構(gòu)建基礎(chǔ)設(shè)施的工程師、開發(fā)人員和實驗平臺都要將用戶視為他們的客戶。每個平臺的滿意度和性能直接與它們試驗和改進業(yè)務(wù)的能力掛鉤,并最終提供良好的用戶體驗。

          MACH(微服務(wù)、API、云、Headless)架構(gòu)顯著提升了平臺組件的模塊化、可組合性和可伸縮性。它不再是關(guān)于構(gòu)建孤立的模塊和框架,而是關(guān)于構(gòu)建可伸縮的平臺,為企業(yè)價值交付的加速周期提供支持。

          這種技術(shù)轉(zhuǎn)變需要團隊在同一個愿景上保持一致,具備使其成為現(xiàn)實的靈感和動力,克服組織的阻力,并有效地改變在軟件生命周期中參與協(xié)作的參與者的習慣。

          這里是管理發(fā)揮關(guān)鍵作用的地方。

          管理和驅(qū)動端到端價值交付

          Puppet 的 DevOps 報告 中提到了讓公司陷在 DevOps 轉(zhuǎn)變中間階段的文化障礙——阻礙冒險(21%)、責任不明確(20%)、缺乏快速確定優(yōu)先級的能力(18%)——導致反饋循環(huán)不足,限制了公司加快價值主張的速度。

          成功實現(xiàn) DevOps 轉(zhuǎn)變的公司明白,有效的管理對于打破現(xiàn)有的藩籬并實現(xiàn)更快的迭代流程是必要的。但是,從遺留文化模型到 DevOps 模型的重大轉(zhuǎn)變讓許多管理人員被困在技術(shù)和工程問題的泥潭里。

          DevOps 團隊需要專注于他們的工作,以便提高組織的成熟度和改進組織流程。然而,這導致一些人認為 DevOps 只是與工程問題有關(guān)。為了對迭代的端到端流程產(chǎn)生更大的影響,并交付更多的業(yè)務(wù)價值,管理者必須走出他們的舒適區(qū)。

          圖 9.DevOps 中的管理轉(zhuǎn)變必須是端到端的,并且能夠增加價值交付

          DevOps 中的管理者角色必須改變其定位。

          1. 提升(Shift Up)DevOps 的價值定位并增加交付;

          2. 分享愿景,為產(chǎn)出結(jié)果賦能;

          3. 驅(qū)動端到端轉(zhuǎn)型變化。

          Shift Up 這個概念 來自軟件質(zhì)量,軟件質(zhì)量的定義、溝通和度量是在運維團隊之外完成的,以使整個組織系統(tǒng)在質(zhì)量需求上保持一致。例如,與 C 級高層、總監(jiān)和業(yè)務(wù)線經(jīng)理協(xié)作定義軟件產(chǎn)品的質(zhì)量需求。

          其好處是通過讓關(guān)鍵利益相關(guān)者對每個角色的價值和對軟件產(chǎn)品的期望保持一致來改進變更管理。然后利用這個共識來獲得必要的投資和支持,以實現(xiàn)質(zhì)量需求和組織變化,特別是當它們涉及到技術(shù)時。

          要讓 DevOps 成為實現(xiàn)成功的數(shù)字化轉(zhuǎn)型的必要條件也需要同樣的轉(zhuǎn)變。鳳凰項目就是一個很好的例子,它向我們展示了 DevOps 是如何幫助改進業(yè)務(wù)的。推動 DevOps 的管理者必須走出他們的舒適區(qū),與業(yè)務(wù)利益相關(guān)者互動,促進一種觀念上的改變——即 DevOps 不是關(guān)于工程,而是關(guān)于加速業(yè)務(wù)再造。

          第二個關(guān)于管理上的改變是在公司的所有團隊之間系統(tǒng)地共享 DevOps 愿景,而不是將想法局限在工程領(lǐng)域。這種鼓舞人心的愿景必須涉及業(yè)務(wù)目標、設(shè)想的未來、即將到來的變化、風險和計劃,這有助于團隊實現(xiàn)這些變化。

          圖 10.DevOps 管理必須消除最重要的限制因素?

          這就要求管理者關(guān)注端到端的領(lǐng)導力變革。他們首先需要實現(xiàn)控制管理,為他們的團隊賦能,解決跨組織的障礙,并改進業(yè)務(wù)價值交付。他們必須適當?shù)胤峙涔ぷ鳎苿幼畲蟪潭鹊淖兓l(fā)生。例如,當團隊需要花費幾天或幾周時間定義規(guī)范時,卻花時間在改進只能減少幾分鐘時間的自動化上。

          管理層還要負責讓組織保持一致,創(chuàng)建與目標業(yè)務(wù)架構(gòu)保持一致的生態(tài)系統(tǒng)。

          讓組織與目標架構(gòu)和流程
          保持一致

          許多公司的重組都會更新可視化的組織結(jié)構(gòu)圖,但沒有做日常的業(yè)務(wù)做出任何改變。他們通常試圖讓每個人都參與進來,讓他們感受到“參與”和“包容”,但卻未能給陷入重組周期的公司帶來持久的變化和改善。

          表面的重組有一個共同的問題,那就是沒有讓組織與流程保持一致,缺乏對不斷變化的交互和強有力決策的關(guān)注,比如哪些團隊應該首先做出改變,哪些職責必須發(fā)生改變,以及如何實現(xiàn)有效的責任模型。

          DevOps 組織是關(guān)于如何實現(xiàn)業(yè)務(wù)再造。

          圖 11.DevOps 組織必須在以產(chǎn)品為中心的組織中與業(yè)務(wù)相結(jié)合

          為了擴大 DevOps 的影響,必須進行結(jié)構(gòu)化的改變。

          1. 定義真正的產(chǎn)品組織;

          2. 建立真正的“平臺即產(chǎn)品”團隊;

          3. 與職責模型保持一致。

          要讓公司采用產(chǎn)品組織模式,首先需要消除“產(chǎn)品管理”(即業(yè)務(wù))和“產(chǎn)品工程”(即“IT”)的藩籬,從全局考慮問題。這種人為的分離仍然在許多組織中存在,讓人們覺得藩籬仍然很重要,從而限制了溝通互動,造成了許多低效率的放任。

          團隊必須作為單一的跨職能單位,在擁有端到端流程全部所有權(quán)的地方專注價值流的交付。挑戰(zhàn)在于如何組合團隊,以滿足他們職責范圍內(nèi)的特定質(zhì)量需求。例如,致力于用戶體驗的部門與財務(wù)后臺部門所面臨的挑戰(zhàn)是不一樣的。

          實現(xiàn) DevOps 產(chǎn)品組織的第二個變化是采用《團隊拓撲》一書中所描述的“平臺即產(chǎn)品”方法。其目標是通過逐步創(chuàng)建一個提供自助服務(wù)平臺、支持跨職能團隊的專業(yè)角色或交付領(lǐng)導角色的平臺團隊讓 團隊的結(jié)構(gòu) 和交互與目標架構(gòu)保持一致。

          圖 12.用團隊拓撲建立全速質(zhì)量增量組織?

          為了實現(xiàn)上述的措施奏效,領(lǐng)導層必須做出強有力的投資決策,并向組織闡明這些投資決策。由于資源有限,公司不得不對投資做出權(quán)衡,但過多的妥協(xié)會導致績效降低,遠遠達不到要求。

          領(lǐng)導層必須決定哪些團隊獲得更多的資源——甚至可以超出保證服務(wù)持續(xù)性所需的資源,而讓一些團隊仍然使用有限的資源。他們需要闡明哪些團隊必須為復雜的子系統(tǒng)(如單體系統(tǒng))盡最大努力地工作,或者哪些決策仍然是中心決策,如為了保持一致性而采用的中心架構(gòu)。

          近來的演變還包括為實現(xiàn)“全速質(zhì)量”目標而出現(xiàn)的特定角色?!敖桓端姓摺必撠焹r值交付流程,“實踐領(lǐng)導者”負責高標準地開發(fā)專業(yè)技能,并確保知識得到共享。

          組織一致性是促進和維持業(yè)務(wù)和架構(gòu)轉(zhuǎn)變的主要動力之一。在日常工作中,結(jié)構(gòu)和交互的定義依賴于技術(shù),但主要還是依賴于參與者跨生命周期的協(xié)作。最后一個重要的轉(zhuǎn)變是技能。

          構(gòu)建可持續(xù)發(fā)展技能的
          生態(tài)系統(tǒng)

          對 DevOps 技能的關(guān)注反映了生態(tài)系統(tǒng)的成熟度,對“云工程師”的培訓側(cè)重于自動化、基礎(chǔ)設(shè)施即代碼,或特定的云服務(wù)部署。雖然這些基本能力都是必要的,但還不足以為公司再造提供足夠的質(zhì)量和速度。

          圖 13.DevOps 路線圖仍然停留在較底層的技術(shù)上(LinkedIn

          面臨的一個主要挑戰(zhàn)是技能專業(yè)化雖然提升了質(zhì)量,但同時也降低了交付速度。一方面,專業(yè)知識引入了更多的垂直領(lǐng)域,如“SRE”或“安全性”,但由于技能之間存在區(qū)別,這些專業(yè)角色之間的協(xié)作變得更加困難,這可能會影響價值交付的速度。

          全球技術(shù)人才稀缺不利于應對這一挑戰(zhàn)。組織努力吸引和保留轉(zhuǎn)型所需的人才,而全球都面臨著直接限制公司轉(zhuǎn)型的人才稀缺的壓力。一些重新轉(zhuǎn)化人才和簡化技術(shù)的措施有所幫助,但還不夠。

          為了實現(xiàn)全速質(zhì)量,組織必須通過以下幾個要素來平衡技能。

          1. 靈活和開放的職業(yè)道路;

          2. 在可擴展的技能(即平臺)上的投入;

          3. 用于技能發(fā)展的專門資源。

          第一個轉(zhuǎn)變是擁抱更靈活、更開放的職業(yè)道路。許多組織甚至為 DevOps 引入了 Taylorism 模型,為特定任務(wù)設(shè)置了“云工程師”職位。不過,在利用他們的互補技能的同時,他們可以學習工作的中部分內(nèi)容,從而讓公司能夠加速進一步的轉(zhuǎn)型。

          “T 型”技能出現(xiàn)在那些能夠結(jié)合垂直技能(如軟件工程師)和水平技能(如敏捷)的人身上。研究表明,這種模式正在朝著“π型”甚至“梳子型”的方向發(fā)展,人們能夠結(jié)合多種專長,從而讓與個人的合作變得更加快速,并讓他們可以有更豐富的職業(yè)生涯。

          圖 14.在一個持續(xù)學習的生態(tài)系統(tǒng)中,DevOps 技能獲得橫向發(fā)展

          這種適應和持續(xù)學習的能力意味著組織必須改變范式和生態(tài)系統(tǒng)來支持這種變化。他們必須為指導計劃進行專門的投入,引入實踐領(lǐng)導的角色來激勵人們,并確保每周有系統(tǒng)的培訓時間,而不是一年一次。

          其他的實踐,如實踐社區(qū)、會議和演講,對于培養(yǎng)一個有吸引力的生態(tài)系統(tǒng)來說仍然是很有用的。在這里,人們可以獲得自我發(fā)展。Zalando、Uber 或 Netflix 等公司成功地將開源作為吸引人才的方式,同時對產(chǎn)品進行內(nèi)源化,讓人才能夠在產(chǎn)品上進行全球性協(xié)作。

          雖然并非所有的公司都有這些巨頭那樣的規(guī)模和資源,但所有的公司都可以直接在可重用和可擴展的技能上投入,如技術(shù)集成和平臺。在一個技術(shù)組件變成模塊化服務(wù)的生態(tài)系統(tǒng)中,公司需要構(gòu)建的東西將更少,需要組合的東西將更多。

          全速質(zhì)量 DevOps?
          是持續(xù)的價值交付

          這種跨越方法、架構(gòu)、管理、組織和技能領(lǐng)域的 DevOps 轉(zhuǎn)變要求整個軟件工程系統(tǒng)進行橫向的演進,以便實現(xiàn)持續(xù)的價值交付。

          文化、方法和自動化都是 DevOps 的良好開端,但我們的競爭生態(tài)系統(tǒng)只會維持那些能夠通過全速質(zhì)量軟件迅速改造和擴展其價值主張的組織。

          我們在想,基于這種演變,DevOps 是否還應該保持同樣的叫法,畢竟它超越了“Dev”和“Ops”的界限,并成為支持組織數(shù)字化轉(zhuǎn)型的不可或缺的支柱。

          DevOps 的未來是 質(zhì)量工程

          - END -

          ?推薦閱讀?





          30天拿下高含金量K8s CKA+CKS雙認證!?
          Wireshark 找出 TCP 吞吐瓶頸
          K8s Kubectl集群管理工具使用技巧
          K8S 常用資源 YAML 詳解
          DevOps與CI/CD常見面試問題匯總
          我會在Docker容器中抓包了!
          19 個 K8S集群常見問題總結(jié),建議收藏
          運維高可用架構(gòu)的 6 大常規(guī)方案
          運維監(jiān)控指標全方面總結(jié)
          9 個實用 Shell 腳本,建議收藏!
          詳解 K8S Helm CI/CD發(fā)布流程
          ES+Redis+MySQL,這套高可用架構(gòu)設(shè)計太頂了!
          一臺服務(wù)器最大能支持多少條TCP連接?
          K8S運維必知必會的 Kubectl 命令總結(jié)
          16 張圖硬核講解 Kubernetes 網(wǎng)絡(luò)
          史上最全 Jenkins Pipeline流水線詳解
          主流監(jiān)控系統(tǒng) Prometheus 學習指南
          搭建一套完整的企業(yè)級 K8s 集群(二進制方式)
          40個 Nginx 常問面試題
          Linux運維工程師 50個常見面試題


          點亮,服務(wù)器三年不宕機

          瀏覽 64
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  精品国产aaa | 囯产精品久久久久久久久久久久 | 亚洲一二三四区 | www.国产无码 | 精品人妻无码一区二区三区苍井空 |