從藍鯨視角談DevOps 嘉為科技

2022-09-23 07:27:09 字數 2784 閱讀 6242

devops源於development和operations的組合

常見的定義

devops是一種重視「軟體開發人員(dev)」和「it運維技術人員(ops)」之間溝通合作的文化、運動或慣例。透過自動化「軟體交付」和「架構變更」的流程,來使得構建、測試、發布軟體能夠更加地快捷、頻繁和可靠。

下面這個戴明環也是常見的表達形式:

藍鯨在深度實踐devops後,結合對devops理解和經驗總結,重新定義了devops。即下圖這6個英文單詞的首字母組成:

do、efficiency、value、open、progress、security。

結合這六個詞、結合藍鯨產品團隊在今年6月藍鯨devops活動上的分享以及個人理解,我們將從藍鯨的視角展開來談談devops:

do實踐:以實踐為基礎推行devops

devops文化、理論體系的宣導者眾多,各種大會也會去介紹各種「道、法、術」;大一些的企業基本都會有設立教練的角色,指導各個研發團隊開展devops轉型。但一些企業使用者在聽完各種「道、法、術」之後,要麼是講的聽不懂,要麼是懂也不會做、做也做不好。也有企業先找諮詢公司做諮詢,但諮詢完後卻不知道怎麼落地。

藍鯨devops認為devops的第一要素,就是實踐,即所謂的「事上練」。沒有實踐過devops的經歷就沒有感悟,談論再多的文化、理論,還不如貼近業務研發痛點,動手行動,用實踐來驗證想法和理論,點滴積累,繪成逐漸強大的devops體系。

efficiency效能:效能是devops追求的目標

在我們開展實踐之後,需要有目標。devops 根本的目標就是提公升研發效能。

首先,效能體現在可以讓大家可以「focus on your job」。開發人員的職責是寫**和合併**,合併**完就去抽菸,其他的交給平台自動化執行;而不是去推動打包、申請資源、部署、測試、生產上線。

其次,效能體現在可以讓大家在同一套平台中進行工作和協同,而不是在不同的工具中做不同的事情。乙個企業it部門有18套研發、測試、運維工具,這代表先進還是落後呢?很顯然,這是一種落後的表現,因為這幾乎將無法實現跨系統自動排程。藍鯨devops平台可以將devops工具鏈進行整合,讓不同的角色專注於其本職工作,達到提公升效能的目標。

value價值:devops必須輸出價值

devops要為使用者不斷的輸出價值,就要為devops體系中融入更多的提供價值的功能。例如:

在devops平台中加入質量紅線,可以提供給使用者來建立各種質量門禁,如:**准入門禁、迭代驗收門禁、發布控制門禁;

在devops平台中提供編譯加速,幫助使用者提公升編譯的效能;

在devops平台中提供構建資源池,在構建的時候可以自動排程構建資源,完成構建之後可以自動釋放資源等等;

在devops平台中優化流水線的體驗和原子,使用者可以輕鬆組裝出來各種複雜的業務場景……

價值也應該是可以複製的,企業通常有多個團隊同時開展多個專案,我們對某個專案團隊進行了大量devops方面的改進,並邀請工信部對專案進行了devops能力成熟度評級,我們團隊達到了3級。但是,其他的專案或團隊呢?他們能否達到3級標準?我們在devops方面做出的努力,是否可以平行複製到其他團隊?

藍鯨devops有乙個理念是——價值應被平行複製到各個專案團隊。每乙個價值點的輸出,都可以讓使用者真正的感受到devops所能帶來的改變,這樣才能把使用者凝聚在平台上,而不是總是考慮**用得不順,自己建立一套平台。藍鯨devops帶來的體系完善、效能提公升,不是針對某個團隊,而是可以平行複製到所有的研發團隊,這就是最大的價值。

open開放:以開放的心態面對各種場景

不同的企業甚至同一家企業的不同團隊,其devops落地的程序和對devops的要求都有差異的,我們必須用開放的心態接受這種差異。

例如:藍鯨devops平台裡面有敏捷協同模組,可以管理專案的需求、任務、缺陷、迭代計畫等等,但是許多傳統行業,基於企業的研發管控制度等原因,已經建立了適合自己的需求管理平台、研發任務管理平台等工具平台,我們的解決方案是不斷給使用者**讓使用者放棄現有的協同和管理模式,還是以開放的心態來面對客戶現有的管理體系呢?

藍鯨的選擇是以開放的體系面對不同團隊的需求,提供盡可能靈活的架構和工具,通過工具開放的方式來相容不同團隊的模式。藍鯨本身也是面向ci-cd-co的研運一體化平台。

progress演進:持續交付核心在於不斷演進

devops的乙個重要理念就在於持續改進。我們可以通過各個子系統的資料進行整體的度量,來發現哪個專案、哪些環節經常出現停滯、失敗率比較高、耗時比較長,並且進行針對性的改進。

例如:如果研發效能瓶頸在測試環節,就需要深究導致測試耗時長的問題。如果是因為沒有引入自動化的測試、手工測試耗時較長,就可以逐步補充自動化測試用例;如果研發效能瓶頸需要人工響應才能推進,就可以引入自動化的流水線和優化研發流程,減少人工參與和不必要的審核節點。

只有通過不斷的改進,企業才能將原來的每月迭代和發布,縮短為每週迭代和發布,甚至逐步改進為每天迭代和發布,最終達到google、facebook等企業達到的1天若干次發布的效果。

各個團隊可以跟自己比,每一階段都相比前一階段有進步,就是團隊的自我發展。而藍鯨devops平台也是不斷演進的成果。

security安全:安全是基礎

乙個企業級的devops平台,安全是非常重要的。研發人員電腦、**庫、構建機、測試環境、製品庫都可能導致**及軟體包的洩露,這也導致遊戲行業大量私服的出現。而軟體上線之後還要考慮漏洞被利用、跨站***、資料竊取等等問題。

不論devops平台本身,還是從平台流出的製品,一切要以安全為依歸。devops平台本身應該提供監、管、控手段,可以進行細粒度的許可權控制,避免非法訪問和非法竊取資料、**、軟體包。devops平台也應該提供**掃瞄、安全掃瞄、質量紅線等安全工具,可以獨立執行或者結合到流水線裡面自動呼叫,保證交付的軟體的可靠性,給平台使用者以及產出軟體的使用者乙個安全保障。

作者:方勇

從檔案視角看mysql

這裡的幾個rpm意義分別是 mysql client 包含最少的訪問mysql伺服器所需要的客戶端命令。裡面包含的是像mysql,mysqladmin這樣的工具。mysql devel 包含開發mysql客戶端所需要的庫。裡面沒有包含工具,都是包含.a這樣的庫鏈結檔案 mysql server 包含...

從微觀視角看消費問題

一位忙著裝修新居的朋友這兩天到處看家具,轉了北京多個賣場竟然很難找到沒有刺鼻的甲醛味道的產品,最後還是乾脆到宜家購買一套家具了事。我也稱不上是宜家的粉絲,但是宜家的東西質量上過得去,設計得簡潔明瞭,讓我放心 省心。我是被那些賣爛貨的店趕去宜家的。原來是一種 驅趕效應 難怪宜家店裡的客人總是那麼多,直...

從使用者的視角看待網頁設計(一)

網頁設計師 常常看乙個 一本宣傳冊 一張海報的角度與普通人是完全不同的,不只是美觀的問題。你可能會更多注意的是排版與設計的細節,而使用者在乎的點則不相同。使用者只在意他們是否能快速理解他們看到的事物 互動物件 至於這種效果是如何實現的,為什麼這種方式是最合適的,使用者並不關心,這就是最真實存在的。但...