《云原生降本增效大咖說(shuō)》是企業(yè)網(wǎng)D1Net與騰訊云聯(lián)合策劃出品的訪談欄目,我們期望通過(guò)深度專訪,挖掘企業(yè)應(yīng)用云原生技術(shù)的驅(qū)動(dòng)因素,探索各自的應(yīng)用歷程,了解企業(yè)面臨的技術(shù)痛點(diǎn)以及解決之道,梳理云原生技術(shù)應(yīng)用最佳實(shí)踐的一系列方法論,向外界展示云原生技術(shù)的價(jià)值,為中國(guó)企業(yè)的云歷程再添助力。
本欄目采訪了騰訊云、蒙牛、中國(guó)黃金集團(tuán)、海爾、石化盈科5家企業(yè)技術(shù)大咖,來(lái)分享企業(yè)在部署云原生背后的思考、實(shí)踐效果和方法沉淀。
由于DevOps具有變革性,可以加快企業(yè)的數(shù)字化轉(zhuǎn)型進(jìn)程,因此多數(shù)大型企業(yè)都在做 DevOps,但是只有少數(shù)企業(yè)獲得了期望中的業(yè)務(wù)價(jià)值。借助DevOps,各團(tuán)隊(duì)可以快速的反饋循環(huán)并進(jìn)行更加緊密的協(xié)作,它使 IT 能夠更接近業(yè)務(wù)和客戶,從而縮短從構(gòu)思到實(shí)現(xiàn)想法的整個(gè)過(guò)程。
但是,對(duì)許多企業(yè)而言,DevOps 的旅程可能不是一帆風(fēng)順的。蒙牛數(shù)字科創(chuàng)部產(chǎn)品經(jīng)理劉維剛在接受企業(yè)網(wǎng)D1Net采訪時(shí)提到,他在將近兩年的時(shí)間里組建了蒙牛的開(kāi)發(fā)團(tuán)隊(duì)和新的產(chǎn)品經(jīng)理團(tuán)隊(duì),但在應(yīng)用DevOps的過(guò)程中也走了一些彎路,經(jīng)歷了一個(gè)痛并快樂(lè)的過(guò)程,如今這些痛點(diǎn)有些已經(jīng)解決,有些尚在嘗試解決的過(guò)程中。
以下是企業(yè)網(wǎng)D1Net對(duì)蒙牛DevOps應(yīng)用實(shí)踐采訪內(nèi)容的整理報(bào)道。
蒙牛數(shù)字科創(chuàng)部產(chǎn)品經(jīng)理 劉維剛
企業(yè)網(wǎng)D1Net:首先請(qǐng)您做一下自我介紹,也介紹一下蒙牛的數(shù)字科創(chuàng)部。
劉維剛:我到蒙牛將近兩年時(shí)間,之前一直在互聯(lián)網(wǎng)行業(yè)從事偏開(kāi)發(fā)的工作。來(lái)蒙牛之后,我負(fù)責(zé)搭建了蒙牛自己的開(kāi)發(fā)團(tuán)隊(duì)和新的產(chǎn)品經(jīng)理團(tuán)隊(duì),現(xiàn)在擔(dān)任開(kāi)發(fā)團(tuán)隊(duì)和產(chǎn)品經(jīng)理團(tuán)隊(duì)的負(fù)責(zé)人。
蒙牛數(shù)字科創(chuàng)部的前身是信息技術(shù)部,隨著部門(mén)的更名,數(shù)字科創(chuàng)部的職能也從IT(信息科技Information Technology)轉(zhuǎn)換為DT(數(shù)據(jù)科技Data Technology),從原來(lái)的穩(wěn)態(tài)組織,變成敏態(tài)組織。
企業(yè)網(wǎng)D1Net:蒙牛研發(fā)團(tuán)隊(duì)的規(guī)模是多少人?近兩年研發(fā)團(tuán)隊(duì)規(guī)模呈現(xiàn)怎樣的發(fā)展趨勢(shì)?
劉維剛:蒙牛DT團(tuán)隊(duì)的規(guī)模,到今天準(zhǔn)確的數(shù)字應(yīng)該是273人,接近300人的規(guī)模。近兩年,整個(gè)團(tuán)隊(duì)的規(guī)模正在以每年60~70人的速度不斷增長(zhǎng),而增長(zhǎng)背后主要的驅(qū)動(dòng)因素源于蒙牛的企業(yè)戰(zhàn)略,也就是現(xiàn)在正在做的“數(shù)字化轉(zhuǎn)型”和“5年再創(chuàng)一個(gè)新蒙牛”的企業(yè)戰(zhàn)略。
借助數(shù)字化轉(zhuǎn)型,我們期望五年內(nèi)蒙牛整體成為一個(gè)數(shù)智驅(qū)動(dòng)的經(jīng)營(yíng)模式。在這一戰(zhàn)略的指引下,我們發(fā)現(xiàn)除了需要做大量的IT基礎(chǔ)工作之外,還要做一些所謂的DT的工作,也就是跟數(shù)據(jù)相關(guān)的一些工作。為此,除了搭建開(kāi)發(fā)部門(mén)和產(chǎn)品經(jīng)理部門(mén)以外,還額外組建了一個(gè)大數(shù)據(jù)部門(mén),這個(gè)部門(mén)包括數(shù)據(jù)產(chǎn)品經(jīng)理、數(shù)據(jù)工程師和算法工程師等等,幾個(gè)團(tuán)隊(duì)加起來(lái)總?cè)藬?shù)是273人,接近300人的規(guī)模。
從蒙牛的企業(yè)戰(zhàn)略到人才戰(zhàn)略,有一個(gè)具體的目標(biāo),蒙牛希望在“2025再創(chuàng)一個(gè)新蒙牛”,在實(shí)現(xiàn)新蒙牛之時(shí),希望這些員工也是新的蒙牛人,具備對(duì)數(shù)據(jù)的處理能力,基于數(shù)據(jù)分析的業(yè)務(wù)能力等等與工程相關(guān)的一些能力,提出了一些明確的訴求,以此為指引,我們來(lái)到了蒙牛,又引進(jìn)了很多這樣的人才。
企業(yè)網(wǎng)D1Net:蒙牛采用DevOps的驅(qū)動(dòng)因素來(lái)自哪些方面?
劉維剛:蒙牛是一家非常傳統(tǒng)的制造快銷企業(yè),我們有很多制造領(lǐng)域,也有很多快消品常見(jiàn)的經(jīng)銷商、渠道等分銷領(lǐng)域,還有一部分是我們現(xiàn)在比較看重和正在發(fā)力的面向消費(fèi)者直營(yíng)的領(lǐng)域,我們簡(jiǎn)稱為DTC。
其中,DTC部分主要由蒙牛數(shù)字科創(chuàng)部的DT部門(mén),也就是我負(fù)責(zé)的團(tuán)隊(duì)在全面負(fù)責(zé)開(kāi)發(fā)和迭代。這其實(shí)更像是一家互聯(lián)網(wǎng)公司,我們使用我們的技能進(jìn)行產(chǎn)品設(shè)計(jì),幫助業(yè)務(wù)做一系列工作,這就需要有一定的交付質(zhì)量和速度的保障。
那么,為了快速試錯(cuò),提升用戶體驗(yàn),最終贏得我們消費(fèi)者的認(rèn)可,幫助業(yè)務(wù)人員實(shí)現(xiàn)他的業(yè)績(jī)和業(yè)務(wù)價(jià)值,我們招了很多技術(shù)人員,如果沒(méi)有一個(gè)統(tǒng)一的DevOps的管理或研發(fā)平臺(tái),我相信速度和質(zhì)量都很難保障。
同時(shí)反觀我們自己,我們也希望在不斷吸納新的人才之時(shí),不用再去重復(fù)過(guò)去那種比較早期的協(xié)作方式和管理方式,期望借助DevOps能夠高效、保質(zhì)地讓整個(gè)團(tuán)隊(duì)快速邁向正軌,這是我們用DevOps的核心驅(qū)動(dòng)力。
企業(yè)網(wǎng)D1Net:蒙牛應(yīng)用DevOps平臺(tái)經(jīng)歷了怎樣的過(guò)程?用到了哪些工具?
劉維剛:蒙牛應(yīng)用DevOps經(jīng)歷了一個(gè)痛并快樂(lè)的過(guò)程。
痛在哪呢,痛主要是因?yàn)槠鸪跷覀儗?duì)DevOps的理解比較淺,更多的是基于源代碼的線上手動(dòng)部署,我們通過(guò)設(shè)置不同崗位把這個(gè)職責(zé)拆開(kāi),認(rèn)為這可能是DevOps,并不是由程序員完成部署過(guò)程,而是由運(yùn)維人員幫助程序員完成這個(gè)過(guò)程,我們把它稱之DevOps,但是今天回過(guò)頭來(lái)看,這絕對(duì)是一個(gè)很痛且吃了不少虧的過(guò)程。
痛并快樂(lè),快樂(lè)是什么呢?快樂(lè)是我們有很好的外部參考,在了解和學(xué)習(xí)后我們發(fā)現(xiàn)有非常多的工具能夠幫助實(shí)現(xiàn)我們想要的DevOps。這里面首當(dāng)其沖的是采用開(kāi)源的Jenkins實(shí)現(xiàn)流水線管理,包括代碼掃描、漏洞檢測(cè)、單元測(cè)試、鏡像構(gòu)建、打包發(fā)布等等一系列工作,最早都是在Jenkins上面實(shí)現(xiàn)的。有了這套Jenkins,再結(jié)合容器技術(shù),其實(shí)我們?cè)诰€上部署時(shí),已經(jīng)跑得非常順暢了。
但是之后我們發(fā)現(xiàn),我們自己維護(hù)這套Jenkins,在上面做二次開(kāi)發(fā)的工作,其實(shí)也可以省掉。由于我們跟一些主流的云廠商的合作關(guān)系,我們發(fā)現(xiàn)云平臺(tái)上的企業(yè)級(jí)代碼管理平臺(tái),提供從團(tuán)隊(duì)的任務(wù)協(xié)同、任務(wù)管理,到代碼管理,再到整個(gè)流水線作業(yè)的打包發(fā)布,與云實(shí)例、云資源的整合,包括云原生的動(dòng)態(tài)伸縮技術(shù)等等,與我們現(xiàn)在所面臨的問(wèn)題和困難高度契合,所以我們又把整套To C的部分改用了云上的企業(yè)級(jí)代碼管理平臺(tái),最后也帶來(lái)一些不錯(cuò)的效果。
企業(yè)網(wǎng)D1Net:蒙牛在研發(fā)中遇到的痛點(diǎn)和訴求有哪些?采取哪些措施來(lái)改善研發(fā)效率?
劉維剛:首先,蒙牛作為一家體量非常龐大的企業(yè),三方合作機(jī)構(gòu)非常多,源代碼管理是首當(dāng)其沖的一大難題。
蒙牛作為一家傳統(tǒng)的制造企業(yè),過(guò)去對(duì)源代碼的管理不夠嚴(yán)謹(jǐn),大多數(shù)的三方廠商或供應(yīng)商向我們提供源代碼時(shí),都是以打包的形式做項(xiàng)目交付,我們很難確認(rèn)我們收到的源代碼和廠商在線上幫我們部署的源代碼是否保持高度一致。這就面臨一個(gè)風(fēng)險(xiǎn),我們不知道在廠商的運(yùn)維期結(jié)束之后,我們自己如何承接整套系統(tǒng)后續(xù)的運(yùn)維和迭代工作,這是一大痛點(diǎn)。
針對(duì)這一問(wèn)題,我們通過(guò)GitLab以及云廠商的代碼管理工具,基于內(nèi)部和外部廠商分開(kāi)使用不同源代碼的管理方式,要求所有三方廠商必須通過(guò)我們的源代碼和我們的流水線進(jìn)行發(fā)布,從而確保給到我們的源代碼和線上部署的源代碼之間的高度一致性。
第二個(gè)是手工發(fā)布帶來(lái)的諸多問(wèn)題。包括:效率偏低,容易出錯(cuò),不能回滾,無(wú)法管控,不易審計(jì),遇到問(wèn)題也很難定位,排查問(wèn)題的過(guò)程也非常復(fù)雜等等。今天,我們已經(jīng)完全杜絕了手工發(fā)布,禁止一切線上生產(chǎn)環(huán)境的手工干預(yù),這些都依賴于云廠商提供的基于代碼管理平臺(tái)的一整套解決方案。
第三個(gè)是資源利用率不高的問(wèn)題。每個(gè)項(xiàng)目占用的資源是由那些三方廠商或交付單位來(lái)評(píng)估的,這些資源的占用其實(shí)相對(duì)獨(dú)立,一定會(huì)有重復(fù)利用的部分,但是在資源部署的過(guò)程中,大家沒(méi)有協(xié)同地去考慮這一問(wèn)題,造成了一定的資源浪費(fèi)。為此,我們通過(guò)容器技術(shù),讓我們的運(yùn)維人員可以進(jìn)行很好的資源調(diào)配,從而大幅提升了資源利用率。
第四個(gè)是缺乏統(tǒng)一的研發(fā)管理平臺(tái)。隨著我們自己開(kāi)發(fā)能力的補(bǔ)齊,自研系統(tǒng)的陸續(xù)上線,我們發(fā)現(xiàn):沒(méi)有統(tǒng)一的研發(fā)管理平臺(tái),包括任務(wù)管理平臺(tái)和發(fā)布平臺(tái)等等一系列工具,很難提升研發(fā)效率。我們當(dāng)時(shí)有一些簡(jiǎn)單的任務(wù)管理平臺(tái),但是發(fā)布要上Jenkins,然后測(cè)試、缺陷跟蹤又是其他的工具或平臺(tái),我們需要在系統(tǒng)之間來(lái)來(lái)回回的進(jìn)行切換,不但管理的成本高,效率也提不上來(lái)。而云廠商的企業(yè)級(jí)代碼管理平臺(tái),幫我們解決了這一問(wèn)題。
最后,是研發(fā)效能的問(wèn)題。我們的整個(gè)研發(fā)效能能否被數(shù)字化?如何將研發(fā)過(guò)程清晰地以量化的方式告知我們的業(yè)務(wù)部門(mén)和高層領(lǐng)導(dǎo)?我們的整個(gè)開(kāi)發(fā)團(tuán)隊(duì)正在以怎樣的效能推進(jìn)工作?這樣的效能放在同行業(yè)處于怎么樣的水平?如何讓大家充分理解和相信我們正在用先進(jìn)的方式做一些很有挑戰(zhàn)性的工作,從而突出我們的價(jià)值?這是現(xiàn)在比較大的一個(gè)痛點(diǎn),目前我們正在嘗試解決這一問(wèn)題。
企業(yè)網(wǎng)D1Net:您看重DevOps開(kāi)發(fā)工具的哪些價(jià)值?應(yīng)用DevOps對(duì)蒙牛產(chǎn)生了哪些影響?
劉維剛:我最看重兩個(gè)方面的價(jià)值。首先,對(duì)于蒙牛而言DevOps最好的價(jià)值是它的可靠性,幫我們解決了人工部署這件事,使生產(chǎn)環(huán)境的可靠性和安全性得到了一定的保障。因?yàn)槲覀円恢睆?qiáng)調(diào)生產(chǎn)環(huán)境出現(xiàn)問(wèn)題會(huì)影響我們的整個(gè)交易流程,包括后端供應(yīng)鏈以及前端的分銷體系,總之整個(gè)交易流程受到影響,將對(duì)企業(yè)的營(yíng)收造成巨大影響,因此可靠性一定是我們最關(guān)注的。
其次,是效率方面的提升。使用整套DevOps工具之后,我們整個(gè)團(tuán)隊(duì)的效率得到了顯著提升。過(guò)去,我們一周只能迭代發(fā)布1次,相當(dāng)于如果我們有100個(gè)系統(tǒng),那么一周只能迭代發(fā)布1/100;如今,每個(gè)系統(tǒng)我們至少能做到雙周發(fā)布1次,同樣按照100個(gè)系統(tǒng)來(lái)計(jì)算,兩個(gè)星期就能把100個(gè)系統(tǒng)都發(fā)布一遍,也就是一周發(fā)布50次。當(dāng)然,從一周1次到一周50次發(fā)布,不完全是由DevOps平臺(tái)帶來(lái)的價(jià)值,也與我們不斷增加的人力資源密不可分。
企業(yè)網(wǎng)D1Net:蒙牛所用的云上的代碼開(kāi)發(fā)工具,其產(chǎn)品優(yōu)勢(shì)是什么?
劉維剛:一方面,我們?cè)谑褂迷瀑Y源的同時(shí),使用云上的DevOps平臺(tái),跟它的容器等等結(jié)合的比較緊密。另一方面,支持開(kāi)箱即用,沒(méi)有太大的學(xué)習(xí)成本。
我們?cè)?jīng)對(duì)比過(guò)其他廠商,也與GitLab溝通過(guò),但是我們發(fā)現(xiàn)GitLab的解決方案更擅長(zhǎng)源代碼這一側(cè),而我們更希望我們的團(tuán)隊(duì)能夠?qū)W⒂趲椭鷺I(yè)務(wù)解決實(shí)際的業(yè)務(wù)問(wèn)題,我們希望得到端到端的整套解決方案,從最開(kāi)始的需求管理,一直到最后的交付和發(fā)布,這是我們選擇云上的DevOps平臺(tái)的初衷。
企業(yè)網(wǎng)D1Net:對(duì)于DevOps,蒙牛還有哪些希望改進(jìn)和完善的內(nèi)容或空間?
劉維剛:我們希望DevOps工具能夠更智能,使運(yùn)維人員得以解放,實(shí)現(xiàn)智能運(yùn)維。其實(shí)我更希望運(yùn)維人員能夠幫我們做合理的資源規(guī)劃,而不是每天盯著這些線上的資源,做一些瑣碎的工作。我們希望整套DevOps工具可以結(jié)合我們以往在數(shù)據(jù)和操作方面的沉淀,能在未來(lái)智能地幫我們解決一些重復(fù)出現(xiàn)或比較常見(jiàn)的同類型的問(wèn)題,而不是單純依賴我們的運(yùn)維人員。
企業(yè)網(wǎng)D1Net:您是否認(rèn)可“DevOps或敏捷開(kāi)發(fā)是推進(jìn)數(shù)字化轉(zhuǎn)型的內(nèi)生有力工具”這一觀點(diǎn)?您覺(jué)得應(yīng)用DevOps將對(duì)蒙牛的數(shù)字化轉(zhuǎn)型帶來(lái)哪些助力?
劉維剛:首先,我認(rèn)可這一觀點(diǎn)。其次,我認(rèn)為DevOps解決了一個(gè)最大的問(wèn)題,就是讓專業(yè)的人去做專業(yè)的事。過(guò)去沒(méi)用DevOps時(shí),我們從需求到開(kāi)發(fā)、再到上線發(fā)布的全流程全環(huán)節(jié),其實(shí)業(yè)務(wù)、開(kāi)發(fā)和運(yùn)維大家是強(qiáng)耦合在一起的,為了保證每一步都能夠順利完成,大家要不斷的去檢查和校驗(yàn),浪費(fèi)了很多時(shí)間,不但整體效率難以提升,而且成本也很高。
自從有了DevOps之后,開(kāi)發(fā)人員能夠?qū)W⒂谕ㄟ^(guò)自己的專業(yè)技術(shù)能力與合理的架構(gòu)設(shè)計(jì),提升效率并簡(jiǎn)化代碼量;產(chǎn)品人員能夠?qū)W⒂谧约旱漠a(chǎn)品設(shè)計(jì)和業(yè)務(wù)滿足度等方面;運(yùn)維人員也被徹底解放出來(lái),他們專注于整套DevOps工具的順利執(zhí)行和完成。
DevOps其實(shí)讓大家充分解耦,不需要跳出自己本崗位的工作,去額外關(guān)注上下游的事情,而是專注于自己的專業(yè)方向,然后依靠流程和工具把大家拉在每一條項(xiàng)目線上,我覺(jué)得這是DevOps給我們帶來(lái)的本質(zhì)上的變化,讓我們整個(gè)團(tuán)隊(duì)的效率,尤其是專業(yè)效率得以大幅提升。這也是我們能從一周發(fā)布1次提升至大幾十次的原因,相當(dāng)于變相的放大了技術(shù)紅利,讓我們的技術(shù)價(jià)值在蒙牛這樣一家傳統(tǒng)企業(yè)得以充分釋放,讓交付速度得以大幅提升。
結(jié)語(yǔ)
經(jīng)過(guò)一系列深度訪談,企業(yè)網(wǎng)D1Net與騰訊云發(fā)現(xiàn),雖然大型傳統(tǒng)企業(yè)選擇云原生技術(shù)的契機(jī)、面臨的挑戰(zhàn)以及技術(shù)的實(shí)現(xiàn)方式略有差異,但是呈現(xiàn)的效果卻殊途同歸,云原生架構(gòu)的先進(jìn)性,在降本增效、快速迭代、架構(gòu)標(biāo)準(zhǔn)化、資源復(fù)用、高效協(xié)同、業(yè)務(wù)松耦合管理、夯實(shí)安全能力等方面,發(fā)揮了顯著作用。
云原生作為科技發(fā)展的重要里程碑,這項(xiàng)技術(shù)本身及其背后的一整套管理方法論正在持續(xù)迭代的過(guò)程中,為此騰訊云聯(lián)合中國(guó)信息通信研究院、作業(yè)幫編寫(xiě)推出了2+萬(wàn)字的《降本之源-云原生成本管理白皮書(shū)》,系統(tǒng)介紹了如何通過(guò)云原生來(lái)提升IT資源利用率,實(shí)現(xiàn)企業(yè)的降本增效。
白皮書(shū)中提出的“云原生成本管理模型”,在騰訊內(nèi)部、外部客戶歷經(jīng)大規(guī)模實(shí)踐,實(shí)現(xiàn)了通過(guò)云原生技術(shù)并充分利用彈性技術(shù),整體平均利用率提升到30%~40%;一些企業(yè)在使用云原生混部技術(shù)后,最高實(shí)現(xiàn)整體平均利用率提升到60%~70%。
下載《降本之源-云原生成本管理白皮書(shū)》
http://hfnxjk.com/statics/images/ad/202206/20220601_Tencent_cloud_wp.pdf
掌握提升企業(yè)IT資源利用率方法論