引言
最初考慮引用“ DevOps 已死,平臺工程纔是未來”作爲標題,但這樣的表達可能太過於絕對。最終,決定用了“扯淡的”這個詞來描述 DevOps,但這並不是一種文明的表達方式。 文章旨在重新審視 DevOps 和平臺工程,將分別探討 DevOps 和平臺工程的概念,並重點分析平臺工程所倡導的一些核心內容。同時,希望通過本文能夠給從事內部開發平臺(IDP)工作的同學們帶來一些思考。
DevOps的目標
在 2009 年,DevOps 這一概念就被提出,重點強調團隊協作、自動化工具和流程改進,旨在提高軟件開發和部署的速度和質量。然而,提出之後有近 15 年了,發現這一方法並未如預期完美實現了目標。在我們公司內部,我們也會發現軟件交付成本仍然還是較高,從部署發佈工具的角度來看,無論是 J-ONE、JDOS 還是目前的行雲部署,對於研發人員日常部署發佈仍存在一定的成本,但這種現象好像不僅僅是工具層面的問題。
DevOps 本身是一種理念,強調團隊協作,使開發團隊和運維團隊能夠緊密合作。儘管強調了自動化和工具的重要性,但它並沒有明確指出具體的發展方向。因此,出現了平臺工程(Platform Engineering)這一理念。雖然最早是誰提出的已無法考證,但在 2022 年 7 月份,一條Twitter上的消息“DevOps is dead, long live Platform Engineering” 在國內外的 DevOps 圈子迅速傳播開來,並得到了廣泛的迴應。
平臺工程(Platform Engineering)是一種新的運維理念,強調內部開發平臺應該提供技術研發人員自服務的能力。其核心觀點之一是通過屏蔽基礎設施的複雜性,爲技術研發人員提供靈活的工具鏈和工作流程。這樣,可以利用平臺的基本能力,自主解決問題,無需依賴平臺層的參與,使得開發團隊能夠更加高效地開展工作,提高軟件交付的速度和質量。
平臺工程的定義
平臺工程是設計和構建工具鏈和工作流的學科,可在雲原生時代爲軟件工程組織提供自助服務功能。平臺工程師提供的集成產品通常被稱爲“內部開發人員平臺”,涵蓋了應用程序整個生命週期的運營需求。 --定義來自 platformengineering.org (關於平臺工程的定義較多,但大部分意思較一致:主要是倡導自助服務 減少 底層基礎支撐工具的 複雜性和不確定性 , 減化 工作 流程 , 減少 最終用戶在使用過程中的 認知成本 ,從而改善了最終用戶的體驗,和提高生產效率)
平臺工程和 DevOps 都是軟件開發和運維領域的概念,它們共同關注提高軟件開發和部署的效率和質量,但它們的重點和方法有所不同。平臺工程着重於構建可重用的平臺架構,提供場景化的能力,提供自助化的體驗。而 DevOps 則側重於團隊協作、自動化工具和流程改進,以提高軟件開發和部署的速度和質量。
在 2023 年,Gartner 已將平臺工程列爲頂級戰略趨勢之一。最近發佈的 2024 年十大技術趨勢中,Gartner 再次提到了平臺工程,並且將其提升了一個級別,這表明平臺工程在業界的認可度得到進一步提升。
在過去的幾年中,人們一直追求 DevOps,並從能力成熟度的角度推動提升。然而,對於投入和產出的量化評估卻相對模糊。平臺工程提出了一些衡量其價值產出的方式,包括自助式體驗和儘可能減少人力投入。通過致力於建設自助化、場景化的能力,提供有價值的平臺。
回到本文的標題,我們來談談爲什麼開發人員不願意承擔運維的工作。
開發爲什麼不想做運維
DevOps 強調團隊協作,並鼓勵開發人員承擔一定的運維工作。然而,在現實中,爲什麼這一點往往難以實現?我認爲主要有以下幾個方面的理由:
以上可能是開發人員不太願意承擔運維工作的一些可能的理由。我接下來看下運維的本質是什麼?
運維工作的本質
運維工作重點是保障系統的安全和穩定運行。它不僅需要 7x24小時監控線上環境的穩定性,還需要處理各種日常的運維任務。這些任務可能包括資源管理、日常巡檢、故障排查與修復、工單處理等。
最近,一些大廠經歷了重大的線上穩定性故障,這給業界帶來了很大的關注。
最近的這些線上故障對整個行業產生了極大的警示,所有企業都一樣面臨着線上穩定性挑戰。
帶來的一些思考
安全生產,警鐘長鳴:面對線上問題,我們絕不能單純地追求速度和省事,對於任何線上操作,都必須保持敬畏之心。
安全生產,人人有責:無論是開發人員編寫的錯誤代碼邏輯,還是運維人員錯誤的升級操作,最終都有可能給公司帶來無法估量的損失。
生產環境的穩定性,最難得不是技術,而是依賴無數細節的落地,穩定性的保障需要大量的投入,然而這個事最大的問題就是,難被認可,以及怎麼來衡量做的好呢?網上曾經一個段子,大概意思就是“那些代碼寫的沒有 Bug 的人,往往默默無聞,甚至可能被幹掉;相反,那些經常寫 Bug 的同學,因爲日常忙碌於修復 Bug ,反而能風生水起”,當然,開發不願意承擔運維的原因,確實是因爲線上穩定性的責任重大,同時運維工作的負擔也很重,並且缺乏適用的工具和平臺來支持。
然而,平臺工程被提出,作爲一種新的理念,旨在解決這些問題,並提高軟件交付流程。接下來聊一聊,與 DevOps 相比【平臺工程】的成功關鍵因素有哪些。
平臺工程成功的關鍵因素
如何在公司內推動平臺工程
作爲一個相對新穎的概念,平臺工程已連續兩年獲得 Gartner 的認可,將其推向了我們不得不關注的重要地位。要在公司內推動平臺工程,我認爲需明確以下幾個方面:
綜上,從全局的維度討論瞭如何在內部推動平臺工程。接下來,我們探討一下平臺工程下的工具應具備哪些特質:
平臺工程下建設什麼樣的工具
個人認爲,相較於面向消費者的產品,內部工具更爲重要。因爲消費者產品用戶有選擇權,但內部人員並無太多選擇餘地,最多隻是抱怨幾句,卻仍需繼續使用。要打造令內部人員滿意的工具,個人覺得至少需要以下關鍵屬性:
平臺工程下的內部開發團隊
在平臺工程背景下,內開發團隊可能會有以下共性情況,例如這四方面:
個人覺得內部平臺團隊應要堅持做以下幾件事:
如何衡量平臺工程的成功呢?
主要在於要從一些指標維度進行衡量評估。如果一個平臺或者工具,在做了一年後,對於自身的使用情況一無所知,而僅專注在做功能開發,那麼怎麼來衡量這個平臺帶來的價值呢?我覺得最關鍵的在於要尋找一個關鍵的指標,這個指標可以是業務維度,也可以是產品維度或組織維度,我拋出幾個維度僅供參考:
平臺工程的未來
針對平臺工程的未來發展,目前國內外的情況如下:
國外的情況
當前,國外各大廠像Google、Spotify、Netflix、Walmart等一大批公司均在積極推動平臺工程在企業內部的實施,11月份,CNCF正式發佈了平臺工程的能力成熟度模型,分別從5個維度上劃分了4個級別,CNCF發佈的成熟度模型維度比較粗粒度,主要從團隊/人員、平臺應用、用戶體驗、自服務以及平臺迭代等方面進行評估,並未對平臺功能維度進行詳細劃分。
國內的情況
在國內,目前平臺工程也逐漸受到大家的關注,特別是原來就負責DevOps工具相關的人員,更加關注平臺工程帶來的新的概念和倡導方向。中國信息通信研究院也正在組織行業內的專家,共同梳理一份符合國內現狀的平臺工程能力要求標準,會明確平臺工程功能維度。我目前也參與了部分工作,如有對此感興趣的同事,歡迎聯繫我一同參與。
最後,放個一個Gartner預測的數據,Gartner預測,到 2026 年, 80% 的軟件工程組織將建立平臺團隊,其中 75% 將包含開發者自助服務門戶。80%的軟件工程組織將建立平臺團隊作爲可重複使用的服務、組件和工具的內部提供者,用於應用程序交付。
可見,平臺工程不僅僅是一種趨勢,它是軟件交付的未來
作者:京東零售 井亮亮
來源:京東雲開發者社區 轉載請註明來源