米樂M6 M6米樂在軟件開發(fā)領(lǐng)域,DevOps的理念已經(jīng)越來越普及,但在實(shí)際應(yīng)用中,卻存在著不少爭議和誤解。本文將從開發(fā)者視角出發(fā),質(zhì)疑DevOps在實(shí)際開發(fā)過程中的可行性,分享開發(fā)人員對(duì)于運(yùn)維工作的真實(shí)想法。讓我們一起來看看,究竟是什么原因讓開發(fā)者對(duì)DevOps產(chǎn)生抵觸情緒,以及如何化解這一矛盾。閱讀本文,你將獲得對(duì)DevOps更深入的理解,以及找到提高開發(fā)與運(yùn)維協(xié)作效率的啟示。
01引言在今年的敏捷團(tuán)隊(duì)建設(shè)中,我通過Suite執(zhí)行器實(shí)現(xiàn)了一鍵自動(dòng)化單元測(cè)試。Juint除了Suite執(zhí)行器還有哪些執(zhí)行器呢?由此我的Runner探索之旅開始了!
最初考慮引用“ DevOps 已死,平臺(tái)工程才是未來”作為標(biāo)題,但這樣的表達(dá)可能太過于絕對(duì)。最終,決定用了“扯淡的”這個(gè)詞來描述 DevOps,但這并不是一種文明的表達(dá)方式。
文章旨在重新審視 DevOps 和平臺(tái)工程,將分別探討 DevOps 和平臺(tái)工程的概念,并重點(diǎn)分析平臺(tái)工程所倡導(dǎo)的一些核心內(nèi)容。同時(shí),希望通過本文能夠給從事內(nèi)部開發(fā)平臺(tái)(IDP)工作的同學(xué)們帶來一些思考。
在 2009 年,DevOps 這一概念就被提出,重點(diǎn)強(qiáng)調(diào)團(tuán)隊(duì)協(xié)作、自動(dòng)化工具和流程改進(jìn),旨在提高軟件開發(fā)和部署的速度和質(zhì)量。然而,提出之后有近 15 年了,發(fā)現(xiàn)這一方法并未如預(yù)期完美實(shí)現(xiàn)了目標(biāo)。在我們公司內(nèi)部,我們也會(huì)發(fā)現(xiàn)軟件交付成本仍然還是較高,從部署發(fā)布工具的角度來看,無論是 J-ONE、JDOS 還是目前的行云部署,對(duì)于研發(fā)人員日常部署發(fā)布仍存在一定的成本,但這種現(xiàn)象好像不僅僅是工具層面的問題。DevOps 本身是一種理念,強(qiáng)調(diào)團(tuán)隊(duì)協(xié)作,使開發(fā)團(tuán)隊(duì)和運(yùn)維團(tuán)隊(duì)能夠緊密合作。盡管強(qiáng)調(diào)了自動(dòng)化和工具的重要性,但它并沒有明確指出具體的發(fā)展方向。因此,出現(xiàn)了平臺(tái)工程(Platform Engineering)這一理念。雖然最早是誰提出的已無法考證,但在 2022 年 7 月份,一條Twitter上的消息“DevOps is dead, long live Platform Engineering” 在國內(nèi)外的 DevOps 圈子迅速傳播開來,并得到了廣泛的回應(yīng)。
平臺(tái)工程(Platform Engineering)是一種新的運(yùn)維理念,強(qiáng)調(diào)內(nèi)部開發(fā)平臺(tái)應(yīng)該提供技術(shù)研發(fā)人員自服務(wù)的能力。其核心觀點(diǎn)之一是通過屏蔽基礎(chǔ)設(shè)施的復(fù)雜性,為技術(shù)研發(fā)人員提供靈活的工具鏈和工作流程。這樣,可以利用平臺(tái)米樂 M6的基本能力,自主解決問題,無需依賴平臺(tái)層的參與,使得開發(fā)團(tuán)隊(duì)能夠更加高效地開展工作,提高軟件交付的速度和質(zhì)量。
平臺(tái)工程的定義平臺(tái)工程是設(shè)計(jì)和構(gòu)建工具鏈和工作流的學(xué)科,可在云原生時(shí)代為軟件工程組織提供自助服務(wù)功能。平臺(tái)工程師提供的集成產(chǎn)品通常被稱為“內(nèi)部開發(fā)人員平臺(tái)”,涵蓋了應(yīng)用程序整個(gè)生命周期的運(yùn)營需求。--定義來自/p>
(關(guān)于平臺(tái)工程的定義較多,但大部分意思較一致:主要是倡導(dǎo)自助服務(wù)減少底層基礎(chǔ)支撐工具的復(fù)雜性和不確定性,減化工作流程,減少最終用戶在使用過程中的認(rèn)知成本,從而改善了最終用戶的體驗(yàn),和提高生產(chǎn)效率)
平臺(tái)工程和 DevOps 都是軟件開發(fā)和運(yùn)維領(lǐng)域的概念,它們共同關(guān)注提高軟件開發(fā)和部署的效率和質(zhì)量,但它們的重點(diǎn)和方法有所不同。平臺(tái)工程著重于構(gòu)建可重用的平臺(tái)架構(gòu),提供場(chǎng)景化的能力,提供自助化的體驗(yàn)。而 DevOps 則側(cè)重于團(tuán)隊(duì)協(xié)作、自動(dòng)化工具和流程改進(jìn),以提高軟件開發(fā)和部署的速度和質(zhì)量。
在 2023 年,Gartner 已將平臺(tái)工程列為頂級(jí)戰(zhàn)略趨勢(shì)之一。最近發(fā)布的 2024 年十大技術(shù)趨勢(shì)中,Gartner 再次提到了平臺(tái)工程,并且將其提升了一個(gè)級(jí)別,這表明平臺(tái)工程在業(yè)界的認(rèn)可度得到進(jìn)一步提升。
在過去的幾年中,人們一直追求 DevOps,并從能力成熟度的角度推動(dòng)提升。然而,對(duì)于投入和產(chǎn)出的量化評(píng)估卻相對(duì)模糊。平臺(tái)工程提出了一些衡量其價(jià)值產(chǎn)出的方式,包括自助式體驗(yàn)和盡可能減少人力投入。通過致力于建設(shè)自助化、場(chǎng)景化的能力,提供有價(jià)值的平臺(tái)。
02開發(fā)為什么不想做運(yùn)維理解,首先 MCube 會(huì)依據(jù)模板緩存狀態(tài)判斷是否需要網(wǎng)絡(luò)獲取最新模板,當(dāng)獲取到模板后進(jìn)行模板加載,加載階段會(huì)將產(chǎn)物轉(zhuǎn)換為視圖樹的結(jié)構(gòu),轉(zhuǎn)換完成后將通過表達(dá)式引擎解析表達(dá)式并取得正確的值,通過事件解析引擎解析用戶自定義事件并完成事件的綁定,完成解析賦值以及事件綁定后進(jìn)行視圖的渲染,最終將目標(biāo)頁面展示到屏幕。
DevOps 強(qiáng)調(diào)團(tuán)隊(duì)協(xié)作,并鼓勵(lì)開發(fā)人員承擔(dān)一定的運(yùn)維工作。然而,在現(xiàn)實(shí)中,為什么這一點(diǎn)往往難以實(shí)現(xiàn)?我認(rèn)為主要有以下幾個(gè)方面的理由:
專注于核心開發(fā)任務(wù):開發(fā)人員通常更傾向于日常軟件開發(fā)任務(wù),他們可能沒有太多時(shí)間和精力在其他方面,否則會(huì)影響日常任務(wù)的工作進(jìn)展。
不熟悉或不感興趣:開發(fā)人員可能沒有足夠的經(jīng)驗(yàn)來處理運(yùn)維的工作,或者他們對(duì)運(yùn)維工作不感興趣,導(dǎo)致在運(yùn)維方面缺乏積極性。
運(yùn)維的鍋太重、事太雜:運(yùn)維工作涉及到生產(chǎn)環(huán)境,因此其責(zé)任和影響范圍較大。任何運(yùn)維失誤都可能導(dǎo)致系統(tǒng)故障、服務(wù)中斷或數(shù)據(jù)丟失等嚴(yán)重后果。因此,對(duì)于開發(fā)人員來說,承擔(dān)運(yùn)維工作可能帶來額外的壓力和責(zé)任。此外,運(yùn)維工作通常包括各種瑣碎而繁雜的任務(wù),包括7*24值班。
缺乏好用的工具和平臺(tái)支持:缺乏易用且高效的自動(dòng)化工具和平臺(tái),運(yùn)維工作就會(huì)更加依賴手工操作,從而增加了運(yùn)維的成本和復(fù)雜性。
以上可能是開發(fā)人員不太愿意承擔(dān)運(yùn)維工作的一些可能的理由。我接下來看下運(yùn)維的本質(zhì)是什么?
運(yùn)維工作重點(diǎn)是保障系統(tǒng)的安全和穩(wěn)定運(yùn)行。它不僅需要 7x24小時(shí)監(jiān)控線上環(huán)境的穩(wěn)定性,還需要處理各種日常的運(yùn)維任務(wù)。這些任務(wù)可能包括資源管理、日常巡檢、故障排查與修復(fù)、工單處理等。
去年宕機(jī)事故頻發(fā),某APP出現(xiàn)超長宕機(jī),根據(jù)網(wǎng)上流傳的信息,故障事件的原因是選擇了成本較低的K8S的原地升級(jí)方案,由于錯(cuò)誤的升級(jí)操作,導(dǎo)致升級(jí)變成了降級(jí),干掉了所有的pod,直至次日下午,該APP才基本恢復(fù)正常。
此次線上故障對(duì)整個(gè)行業(yè)都產(chǎn)生了極大的警示,所有企業(yè)也都一樣面臨著線上穩(wěn)定性挑戰(zhàn)。
安全生產(chǎn),警鐘長鳴:面對(duì)線上問題,我們絕不能單純地追求速度和省事,對(duì)于任何線上操作,都必須保持敬畏之心。
安全生產(chǎn),人人有責(zé):無論是開發(fā)人員編寫的錯(cuò)誤代碼邏輯,還是運(yùn)維人員錯(cuò)誤的升級(jí)操作,最終都有可能給公司帶來無法估量的損失。
生產(chǎn)環(huán)境的穩(wěn)定性,最難得不是技術(shù),而是依賴無數(shù)細(xì)節(jié)的落地,穩(wěn)定性的保障需要大量的投入,然而這個(gè)事最大的問題就是,難被認(rèn)可,以及怎么來衡量做的好呢?網(wǎng)上曾經(jīng)一個(gè)段子,大概意思就是“那些代碼寫的沒有 Bug 的人,往往默默無聞,甚至可能掉;相反,那些經(jīng)常寫 Bug 的同學(xué),因?yàn)槿粘Cβ涤谛迯?fù) Bug ,反而能風(fēng)生水起”,當(dāng)然,開發(fā)不愿意承擔(dān)運(yùn)維的原因,確實(shí)是因?yàn)榫€上穩(wěn)定性的責(zé)任重大,同時(shí)運(yùn)維工作的負(fù)擔(dān)也很重,并且缺乏適用的工具和平臺(tái)來支持。
然而,平臺(tái)工程被提出,作為一種新的理念,旨在解決這些問題,并提高軟件交付流程。接下來聊一聊,與 DevOp米樂 M6s 相比【平臺(tái)工程】的成功關(guān)鍵因素有哪些。
03平臺(tái)工程成功的關(guān)鍵因素理解,首先 MCube 會(huì)依據(jù)模板緩存狀態(tài)判斷是否需要網(wǎng)絡(luò)獲取最新模板,當(dāng)獲取到模板后進(jìn)行模板加載,加載階段會(huì)將產(chǎn)物轉(zhuǎn)換為視圖樹的結(jié)構(gòu),轉(zhuǎn)換完成后將通過表達(dá)式引擎解析表達(dá)式并取得正確的值,通過事件解析引擎解析用戶自定義事件并完成事件的綁定,完成解析賦值以及事件綁定后進(jìn)行視圖的渲染,最終將目標(biāo)頁面展示到屏幕。
作為一個(gè)相對(duì)新穎的概念,平臺(tái)工程已連續(xù)兩年獲得 Gartner 的認(rèn)可,將其推向了我們不得不關(guān)注的重要地位。要在公司內(nèi)推動(dòng)平臺(tái)工程,我認(rèn)為需明確以下幾個(gè)方面:
?。簝?nèi)部有許多工具,首先要確立權(quán)威或認(rèn)證的工具,進(jìn)行持續(xù)投入與迭代,而非各自發(fā)展,以免造成重復(fù)建設(shè)和成本的浪費(fèi)。
:平臺(tái)到底是為誰而做,為誰服務(wù),技術(shù)研發(fā)人員是我們的上帝,建立以服務(wù)技術(shù)研發(fā)人員為主的平臺(tái)文化,同時(shí)滿足公司管理角度。
?。汉诵哪繕?biāo)是構(gòu)建場(chǎng)景化的工具,使技術(shù)人員能在平臺(tái)中自助化使用,把場(chǎng)景化、自助化作為核心目標(biāo)。
?。浩髽I(yè)內(nèi)的IPD不可能集中在同一個(gè)部門,因此確定特定場(chǎng)景的 Owner 至關(guān)重要,可以消除職責(zé)邊界不清晰的問題。
?。阂磺幸匝邪l(fā)需求為主,要兼顧研發(fā)人員的使用體驗(yàn),避免大而全的版本升級(jí)改動(dòng),導(dǎo)致研發(fā)遷移系統(tǒng),遷移資源,從而帶來的額外使用成本。
:內(nèi)部平臺(tái)天然就應(yīng)具備豐富API,滿足內(nèi)部研發(fā)的需求,并也應(yīng)提供詳細(xì)的文檔讓技術(shù)人員使用。
綜上,從全局的維度討論了如何在內(nèi)部推動(dòng)平臺(tái)工程。接下來,我們探討一下平臺(tái)工程下的工具應(yīng)具備哪些特質(zhì):
個(gè)人認(rèn)為,相較于面向消費(fèi)者的產(chǎn)品,內(nèi)部工具更為重要。因?yàn)橄M(fèi)者產(chǎn)品用戶有選擇權(quán),但內(nèi)部人員并無太多選擇余地,最多只是抱怨幾句,卻仍需繼續(xù)使用。要打造令內(nèi)部人員滿意的工具,個(gè)人覺得至少需要以下關(guān)鍵屬性:
:內(nèi)部的工具平臺(tái)一定要產(chǎn)品化,定位于服務(wù)全集團(tuán),而非局限自己所在部門的幾個(gè)人,或者幾十人使用,一定要把目標(biāo)用戶定位是集團(tuán)內(nèi)所有研發(fā)同學(xué),只有這樣才能把工具做好。
?。褐匾曈脩趔w驗(yàn),除了提供基礎(chǔ)的GUI界面,API等能力之外,另外也要注意屏蔽復(fù)雜的后端邏輯,降低用戶的使用成本。
?。哼@里講集成,不僅是像目前行云/泰山一樣通過工具市場(chǎng)把各個(gè)工具集成到平臺(tái)上就行了,這些僅完成了第一步,還是以研發(fā)使用場(chǎng)景為目標(biāo),以應(yīng)用為視角工作區(qū),例如在發(fā)布時(shí),整合監(jiān)控、日志、預(yù)案、告警等可觀測(cè)的視圖,讓用戶在一個(gè)地方滿足所有該場(chǎng)景的需求。
自助化:用戶無需平臺(tái)同學(xué)的協(xié)助,能滿足一切功能,這里舉個(gè)例子,我們?nèi)ャy行取錢,在柜臺(tái)人工可以取,但需銀行人員的協(xié)助,但我們通過ATM,一樣也可以完全自助的取錢。
如何衡量平臺(tái)工程的成功呢?主要在于要從一些指標(biāo)維度進(jìn)行衡量評(píng)估。如果一個(gè)平臺(tái)或者工具,在做了一年后,對(duì)于自身的使用情況一無所知,而僅專注在做功能開發(fā),那么怎么來衡量這個(gè)平臺(tái)帶來的價(jià)值呢?我覺得最關(guān)鍵的在于要尋找一個(gè)關(guān)鍵的指標(biāo),這個(gè)指標(biāo)可以是業(yè)務(wù)維度,也可以是產(chǎn)品維度或組織維度,我拋出幾個(gè)維度僅供參考:
04平臺(tái)工程的未來理解,首先 MCube 會(huì)依據(jù)模板緩存狀態(tài)判斷是否需要網(wǎng)絡(luò)獲取最新模板,當(dāng)獲取到模板后進(jìn)行模板加載,加載階段會(huì)將產(chǎn)物轉(zhuǎn)換為視圖樹的結(jié)構(gòu),轉(zhuǎn)換完成后將通過表達(dá)式引擎解析表達(dá)式并取得正確的值,通過事件解析引擎解析用戶自定義事件并完成事件的綁定,完成解析賦值以及事件綁定后進(jìn)行視圖的渲染,最終將目標(biāo)頁面展示到屏幕。針對(duì)平臺(tái)工程的未來發(fā)展,目前國內(nèi)外的情況如下:
當(dāng)前,國外各大廠像Google、Spotify、Netflix、Walmart等一大批公司均在積極推動(dòng)平臺(tái)工程在企業(yè)內(nèi)部的實(shí)施,11月份,CNCF正式發(fā)布了平臺(tái)工程的能力成熟度模型,分別從5個(gè)維度上劃分了4個(gè)級(jí)別,CNCF發(fā)布的成熟度模型維度比較粗粒度,主要從團(tuán)隊(duì)/人員、平臺(tái)應(yīng)用、用戶體驗(yàn)、自服務(wù)以及平臺(tái)迭代等方面進(jìn)行評(píng)估,并未對(duì)平臺(tái)功能維度進(jìn)行詳細(xì)劃分。
國內(nèi)的情況在國內(nèi),目前平臺(tái)工程也逐漸受到大家的關(guān)注,特別是原來就負(fù)責(zé)DevOps工具相關(guān)的人員,更加關(guān)注平臺(tái)工程帶來的新的概念和倡導(dǎo)方向。中國信息通信研究院也正在組織行業(yè)內(nèi)的專家,共同梳理一份符合國內(nèi)現(xiàn)狀的平臺(tái)工程能力要求標(biāo)準(zhǔn),會(huì)明確平臺(tái)工程功能維度。最后,放個(gè)一個(gè)Gartner預(yù)測(cè)的數(shù)據(jù),Gartner預(yù)測(cè),到 2026 年, 80% 的軟件工程組織將建立平臺(tái)團(tuán)隊(duì),其中 75% 將包含開發(fā)者自助服務(wù)門戶。80%的軟件工程組織將建立平臺(tái)團(tuán)隊(duì)作為可重復(fù)使用的服務(wù)、組件和工具的內(nèi)部提供者,用于應(yīng)用程序交付。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
日本Gacha自動(dòng)售貨機(jī)僅以3.25美元的價(jià)格向垃圾佬銷售酷睿i7-8700
娃哈哈總部舊址前的溫馨一幕,男孩拿走門前的ad鈣奶想喝被隨行大人阻止放回?!凹绎L(fēng)很好正確的教育才能教出好孩子”
女孩發(fā)布了自己日常鍛煉的視頻,各種花式俯臥撐都輕松拿捏,小朋友你傷到大朋友們的自尊心了。
電話:13644723777
傳 真:+86-173-4169
手 機(jī):13644723777
郵 箱:mile@nmgdp.net
地 址:內(nèi)蒙古包頭市昆區(qū)昆工路光彩商業(yè)街99號(hào)