扯淡的DevOps,我們開發根本不想做運維!
來源:京東技術 Tech 導讀
在軟體開發領域,DevOps的理念已經越來越普及,但在實際應用中,卻存在著不少爭議和誤解。本文將從開發者視角出發,質疑DevOps在實際開發過程中的可行性,分享開發人員對於運維工作的真實想法。讓我們一起來看看,究竟是什麼原因讓開發者對DevOps產生牴觸情緒,以及如何化解這一矛盾。閱讀本文,你將獲得對DevOps更深入的理解,以及找到提高開發與運維協作效率的啟示。
導讀
最初考慮引用“ DevOps 已死,平臺工程才是未來”作為標題,但這樣的表達可能太過於絕對。最終,決定用了“扯淡的”這個詞來描述 DevOps,但這並不是一種文明的表達方式。
文章旨在重新審視 DevOps 和平臺工程,將分別探討 DevOps 和平臺工程的概念,並重點分析平臺工程所倡導的一些核心內容。同時,希望透過本文能夠給從事內部開發平臺(IDP)工作的同學們帶來一些思考。
DevOps的目標
(關於平臺工程的定義較多,但大部分意思較一致:主要是倡導自助服務減少底層基礎支撐工具的複雜性和不確定性,減化工作流程,減少終端使用者在使用過程中的認知成本,從而改善了終端使用者的體驗,和提高生產效率)
平臺工程和 DevOps 都是軟體開發和運維領域的概念,它們共同關注提高軟體開發和部署的效率和質量,但它們的重點和方法有所不同。平臺工程著重於構建可重用的平臺架構,提供場景化的能力,提供自助化的體驗。而 DevOps 則側重於團隊協作、自動化工具和流程改進,以提高軟體開發和部署的速度和質量。
在 2023 年,Gartner 已將平臺工程列為頂級戰略趨勢之一。最近釋出的 2024 年十大技術趨勢中,Gartner 再次提到了平臺工程,並且將其提升了一個級別,這表明平臺工程在業界的認可度得到進一步提升。
回到本文的標題,我們來談談為什麼開發人員不願意承擔運維的工作。
DevOps 強調團隊協作,並鼓勵開發人員承擔一定的運維工作。然而,在現實中,為什麼這一點往往難以實現?我認為主要有以下幾個方面的理由:
專注於核心開發任務:開發人員通常更傾向於日常軟體開發任務,他們可能沒有太多時間和精力在其他方面,否則會影響日常任務的工作進展。
不熟悉或不感興趣:開發人員可能沒有足夠的經驗來處理運維的工作,或者他們對運維工作不感興趣,導致在運維方面缺乏積極性。
運維的鍋太重、事太雜:運維工作涉及到生產環境,因此其責任和影響範圍較大。任何運維失誤都可能導致系統故障、服務中斷或資料丟失等嚴重後果。因此,對於開發人員來說,承擔運維工作可能帶來額外的壓力和責任。此外,運維工作通常包括各種瑣碎而繁雜的任務,包括7*24值班。
缺乏好用的工具和平臺支援:缺乏易用且高效的自動化工具和平臺,運維工作就會更加依賴手工操作,從而增加了運維的成本和複雜性。
以上可能是開發人員不太願意承擔運維工作的一些可能的理由。我接下來看下運維的本質是什麼?
運維工作的本質
一些重大的線上穩定性故障給業界帶來了很大的關注。以下是發生的兩個關注度比較高的P0級故障案例:
某雲全球所有區域同時出現故障,由於AK的異常的程式碼存在邏輯缺陷,導致有效請求都不在白名單中,造成相關係列產品共計三個半小時的故障。最終,採取了分批重啟 AK 服務的措施,才陸續進行恢復。 某APP出現超長當機,根據網上流傳的資訊,這次故障事件的原因是由於選擇了成本較低的K8S的原地升級方案,由於錯誤的升級操作,導致升級變成了降級,幹掉了所有的pod,直至次日下午,該APP才基本恢復正常。
帶來的一些思考
安全生產,人人有責:無論是開發人員編寫的錯誤程式碼邏輯,還是運維人員錯誤的升級操作,最終都有可能給公司帶來無法估量的損失。
然而,平臺工程被提出,作為一種新的理念,旨在解決這些問題,並提高軟體交付流程。接下來聊一聊,與 DevOps 相比【平臺工程】的成功關鍵因素有哪些。
如何在公司內推動平臺工程
平臺範圍:內部有許多工具,首先要確立權威或認證的工具,進行持續投入與迭代,而非各自發展,以免造成重複建設和成本的浪費。 平臺文化:平臺到底是為誰而做,為誰服務,技術研發人員是我們的上帝,建立以服務技術研發人員為主的平臺文化,同時滿足公司管理角度。 平臺目標:核心目標是構建場景化的工具,使技術人員能在平臺中自助化使用,把場景化、自助化作為核心目標。 平臺Owner:企業內的IPD不可能集中在同一個部門,因此確定特定場景的 Owner 至關重要,可以消除職責邊界不清晰的問題。 需求來源:一切以研發需求為主,要兼顧研發人員的使用體驗,避免大而全的版本升級改動,導致研發遷移系統,遷移資源,從而帶來的額外使用成本。 平臺API:內部平臺天然就應具備豐富API,滿足內部研發的需求,並也應提供詳細的文件讓技術人員使用。
平臺工程下建設什麼樣的工具
產品化:內部的工具平臺一定要產品化,定位於服務全集團,而非侷限自己所在部門的幾個人,或者幾十人使用,一定要把目標使用者定位是集團內所有研發同學,只有這樣才能把工具做好。 使用者體驗:重視使用者體驗,除了提供基礎的GUI介面,API等能力之外,另外也要注意遮蔽複雜的後端邏輯,降低使用者的使用成本。 整合化:這裡講整合,不僅是像目前行雲/泰山一樣透過工具市場把各個工具整合到平臺上就行了,這些僅完成了第一步,還是以研發使用場景為目標,以應用為視角工作區,例如在釋出時,整合監控、日誌、預案、告警等可觀測的檢視,讓使用者在一個地方滿足所有該場景的需求。 自助化:使用者無需平臺同學的協助,能滿足一切功能,這裡舉個例子,我們去銀行取錢,在櫃檯人工可以取,但需銀行人員的協助,但我們透過ATM,一樣也可以完全自助的取錢。
平臺工程下的內部開發團隊
產品化:內部工具再需求把控方面特別容易被定製,經過一段時間後,可能會演變成了某個人或者某個小部門的定製產品。 優先順序:經常接到或面臨“某C-x老闆”的高優先順序需求。 認可性:由於與業務脫節,難以衡量價值,長期下來,對產出的價值認可可能會產生疑慮。 重複建設:內部工具和平臺的重複建設問題較為嚴重。
持續收集使用者需求,並對平臺長遠規劃路線圖。 完善使用者使用手冊和最佳實踐,提升使用者體驗。 保持開放心態,一定要提供API。 持續推廣和運營所負責的平臺。(生孩子和養孩子) 針對重複建設問題,加強合作共建,避免陷入小範圍的自嗨式“個人/部門工具”建設
使用者維度(第一個就是要使用者維度,提升使用者體驗):周活躍使用者數、賦能業務數、NPS淨推薦值 產品維度:訪問效率、執行效率、執行成功率 組織維度:XX週期、XX用時
國外的情況
可見,平臺工程不僅僅是一種趨勢,它是軟體交付的未來。
來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70027825/viewspace-3008193/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 這個需求,開發說我們不想做.......
- DevOps,就是開發吃掉運維?dev運維
- Lambda將從根本上改變我們開發Java程式的方式Java
- Devops 開發運維高階篇之容器管理dev運維
- 從.net開發做到雲原生運維(八)——DevOps實踐運維dev
- 運維為什麼要學開發?linux運維學習難不難運維Linux
- 我們自研的那些Devops工具dev
- 我的運維故事運維
- 【devops】智慧運維就是由 AI 代替運維人員?dev運維AI
- 為什麼客戶不喜歡我們開發的軟體
- 程式猿不招妹子們喜愛的根本原因
- 再聊我們自研的那些Devops工具dev
- 運維轉型之路 —手工運維到無人值守的自動化運維,從根本實現降本增效運維
- 我是如何重構整個研發專案,促進自動化運維DevOps的落地?運維dev
- 我對運維的思考運維
- 當開發遇到運維運維
- 女生適不適合做Linux運維開發工程師?Linux運維工程師
- 我們的移動混合開發之旅
- 我們們聊聊如何搭建開發環境?開發環境
- 運維開發的痛點和思考運維
- 我是一個不會運維的後端程式設計師運維後端程式設計師
- 【iOS開發】扯淡 Method SwizzlingiOS
- 閒聊我心中的運維運維
- 運維開發工程師運維工程師
- 我們必須要了解的Java位運算(不僅限於Java)Java
- 我們一般的前端開發流程前端
- 不扯淡,一個簡化後的httptest庫HTTP
- ElementUI 不維護了?供我們選擇的 Vue 元件庫還有很多!UIVue元件
- 遠離“人禍”,關於安全運維,我們建了個系統……運維
- DevOps是什麼?DevOps能夠給我們帶來什麼?dev
- 從 Java 應用部署方式看 IT 思潮——從開發和運維到開發自運維Java運維
- 寫給java開發的運維筆記Java運維筆記
- IT運維和自動化運維以及運維開發有啥不同?能解釋下嗎?運維
- 人工智慧是如何改變IT運維和DevOps的?人工智慧運維dev
- 想做web開發,就學JavaScriptWebJavaScript
- 想做web開發 就學JavaScriptWebJavaScript
- 從“悲劇”的幾個運維場景談談運維開發的痛點運維
- 雲來了!我們該如何成為一個好的運維工程師運維工程師