平臺工程如何應對DevOps挑戰(zhàn)?
譯文譯者 | 布加迪
審校 | 重樓
隨著公司繼續(xù)以前所未有的速度擴展規(guī)模,DevOps的角色在發(fā)生重大轉變。雖然DevOps在彌合開發(fā)和運維之間的差距方面發(fā)揮了重要作用,但它的局限性和低效率已變得越來越突出。
平臺工程被許多人視為是DevOps的自然演變,有望解決其核心挑戰(zhàn),并使組織能夠更有效地擴展規(guī)模。隨著關注的焦點轉向創(chuàng)建自助式平臺以及助力開發(fā)人員,DevOps的傳統(tǒng)角色正被重新定義。
不妨看看DevOps面臨的重大挑戰(zhàn)以及平臺工程有沒有可能取而代之。
DevOps的當前挑戰(zhàn)
雖然DevOps已經徹底改變了軟件開發(fā)和部署,但現(xiàn)代云原生技術日益增加的復雜性卻給團隊帶來了前所未有的壓力。隨著組織規(guī)模不斷擴大,當前DevOps方法的局限性和低效率就變得更突出了。
一個主要的挑戰(zhàn)是需要端到端DevOps過程實現(xiàn)更高的自動化。Dynatrace公司最近對DevOps自動化的研究顯示,這些流程中只有56%是自動化的,導致交付時間變慢、效率降低。在一個典型的開發(fā)者流程中,平均有九次手動干預,包括審批和安全檢查,這就進一步加劇了這個現(xiàn)象。這導致問題解決時間延長,并嚴重影響組織的運營效率和降低客戶滿意度。
這有兩個核心原因。第一個原因是工具鏈的復雜性。DevOps生態(tài)系統(tǒng)中豐富的工具和技術可能導致碎片化環(huán)境,因而難以管理。這種復雜性使得團隊很難集成和維護連貫有序的DevOps工作流,從而導致效率低下和生產力降低。
第二個原因是孤立的團隊。孤島會阻礙協(xié)作和溝通,而協(xié)作和溝通則是成功采用DevOps的關鍵。孤立的團隊通常看不見對方的流程,從而導致不一致、重復性工作以及解決問題的時間比較長。
即使沒有這些問題,團隊也缺乏驅動自主運營的關鍵技能,這使得有效地實現(xiàn)和維護DevOps實踐變得頗具挑戰(zhàn)性,使得在單單一個團隊發(fā)掘和培養(yǎng)所需的技能(包括編程、基礎設施管理和自動化)困難重重。
隨著當前DevOps方法的局限性變得越來越明顯,眾多組織正在想方設法克服這些挑戰(zhàn),并改進其軟件交付流程。DevOps團隊必須縮短開發(fā)周期,以實現(xiàn)業(yè)務服務級別目標(SLO)、提高軟件質量以及加快創(chuàng)新速度,這時候平臺工程登臺亮相。
什么是平臺工程?
平臺工程是DevOps的一種現(xiàn)代方法,更準確地說,是DevOps的一種合理延伸,旨在與現(xiàn)有的DevOps原則上協(xié)同工作,同時減輕相關的認知負擔。平臺工程師通過構建提供單一應用程序開發(fā)和部署工具包的內部開發(fā)者平臺(IDP)來簡化標準的DevOps活動。
作為DevOps的一種重要延伸,平臺工程克服了傳統(tǒng)手工方法存在的缺點、缺陷和限制。它使開發(fā)和部署管道實現(xiàn)了自動化,簡化了它們以提高效率和效果,克服了傳統(tǒng)的限制。采用平臺工程文化使企業(yè)能夠在數字化轉型時代脫穎而出,因為它們能夠在如今快速變化的技術環(huán)境中長袖善舞。
平臺團隊可以簡化和改進以前由DevOps團隊處理的任務的效果。您的平臺團隊必須有明確定義的產品目標、既定的DevOps流程和合適的理念,才能發(fā)揮其潛力。
在新的技術時代,平臺工程師的角色并不取代DevOps,而是擴展使其成功應對新挑戰(zhàn)和機遇的原則。隨著我們在軟件開發(fā)和交付方面取得進展,平臺工程將發(fā)揮重要作用。
平臺支持大規(guī)模的DevOps
雖然DevOps的出現(xiàn)大大改變了軟件開發(fā),使其更敏捷、更協(xié)作,但組織經常需要獨立處理復雜問題方面的幫助。平臺工程源于企業(yè)需要為開發(fā)人員提供簡單的、可擴展的、對用戶友好的自助流程,以便更快地構建軟件。
組織可以充分利用平臺工程實現(xiàn)以下目的:
- 簡化流程:平臺工程通過提供標準化、簡化型的軟件開發(fā)和部署方法,簡化了復雜的流程。
- 實現(xiàn)基礎設施和部署自動化:自動化是平臺工程的核心,使團隊能夠以最少的人工干預配置基礎設施和部署應用程序。
- 提供自助式平臺以提高開發(fā)人員的效率:自助式平臺使開發(fā)人員能夠快速輕松地訪問所需的工具和資源,而無需依賴其他團隊或等待批準。
- 縮短產品上市時間:通過簡化流程和自動化處理任務,平臺工程可以幫助組織更快速、更頻繁地交付軟件。
- 提高可擴展性和彈性:平臺工程使組織能夠構建可擴展、有彈性的系統(tǒng),這些系統(tǒng)可以處理增加的需求,并在遇到故障后快速恢復。
- 促進協(xié)作:平臺工程通過提供共享平臺和一組通用的工具和實踐來促進協(xié)作,這些通用的工具和實踐使團隊能夠更有效地協(xié)同工作。
平臺工程可以幫助團隊快速擴展他們當前的DevOps流程來處理需求,又不帶來不必要的開銷。平臺工程不是依賴單個工具,而是構建了一個支持端到端交付的可靠基礎。
任何平臺工程團隊的關鍵目標都是促進工具和配置的重用。重用代碼使應用程序交付流程更高效、減少所需的工具并提高代碼一致性。開發(fā)人員可以專注于創(chuàng)新,而不是編寫重復的代碼。
平臺工程如何優(yōu)化DevOps效率?
軟件開發(fā)團隊的需求常常不一樣。如果每個開發(fā)團隊建立自己的DevOps實踐,您就會遇到復雜性、瓶頸和安全漏洞。平臺工程團隊可能會接管部分DevOps職責,比如以下:
- 自動化處理Git工作流:平臺團隊可以自動化處理Git代碼庫的創(chuàng)建、配置和管理,確保整個組織奉行一致、安全的版本控制實踐。
- 提供測試環(huán)境:通過自動化提供測試環(huán)境,平臺團隊可以減少安裝和維護測試基礎設施所需的時間和精力。
- 為持續(xù)集成/持續(xù)交付(CI/CD)管道構建配置模板:平臺團隊可以為CI/CD管道創(chuàng)建可重用的模板,使開發(fā)團隊能夠采用最佳實踐,并在面對諸多項目時迅速確保一致性。
- 為密文管理和用戶身份驗證配置一個中心存儲庫:集中管理這些功能有助于維護安全和合規(guī),同時簡化開發(fā)團隊的訪問控制。
- 為應用程序性能監(jiān)視配置存儲庫:平臺團隊可以為應用程序性能監(jiān)視安裝和維護一個集中式存儲庫,這便于開發(fā)人員深入了解其應用程序的行為和性能。
以下是平臺團隊優(yōu)化DevOps效率的幾個方法:
- 為內部開發(fā)人員構建一個工作所依賴的平臺:通過創(chuàng)建一個標準化的自助平臺,平臺團隊可以簡化開發(fā)過程,并減輕各個團隊的負擔。
- 建立已明確的途徑以減輕認知負擔:已明確的途徑為常見的開發(fā)任務提供了預定義的、經過充分測試的路徑,這減輕了開發(fā)人員的認知負擔,并將錯誤的風險降至最低。
- 使流程更簡單,實現(xiàn)流程標準化,并加以擴展:平臺團隊可以識別并簡化復雜的流程,制定標準,并確保這些流程可以隨組織發(fā)展而有效地擴展。
- 監(jiān)視關鍵性能指標(KPI)和度量指標:借助這種監(jiān)視,平臺團隊可以識別需要改進的方面,并做出數據驅動的決策,以優(yōu)化DevOps效率。
- 提升團隊的表現(xiàn),為客戶提供更大的價值:平臺團隊可以不斷評估和增強開發(fā)團隊的表現(xiàn),最終為客戶提供更好的價值。
以下是貴組織將合適的工程師吸引到您的平臺團隊的幾個關鍵策略。
- 確立清晰的目標,并制定一份切實的時間表:清楚地傳達平臺團隊的目標和期望,并設定一份可實現(xiàn)的時間表,這有助于吸引符合組織愿景的工程師。
- 擁抱多樣性,促進更好的溝通和協(xié)作:培養(yǎng)多樣性和包容性的團隊環(huán)境,可促進平臺工程師之間的創(chuàng)造力、創(chuàng)新和務實合作。
- 為平臺團隊提供合適的工具和技術:為平臺團隊提供必要的工具和技術,使他們能夠高效地工作,從而吸引注重全面支持的工作環(huán)境的熟練工程師。
DevOps的未來在于擁抱平臺工程,而不是奉行傳統(tǒng)的孤立實踐。為了在當今瞬息萬變的環(huán)境中保持競爭力,組織必須采用平臺工程作為DevOps旅程的下一步。它將在未來塑造團隊協(xié)作、整合和簡化軟件交付的方式。
隨著DevOps的不斷發(fā)展,平臺工程將促進無縫的跨團隊溝通,并優(yōu)化工作流。通過自助式功能和自動化管道,軟件更新將更快地完成,從而取代手動任務。
從DevOps轉向平臺工程可能是快速變化的IT行業(yè)面臨的下一個常態(tài)。新平臺有一天可能會結合和協(xié)調當下數字環(huán)境的所有復雜情況。只有那些在當今快速發(fā)展的數字世界中能從容應對的組織,才能夠與時俱進。
原文標題:How Platform Engineering Takes on DevOps Challenges,作者:Kenn Hussey