由於基於Kubernetes的雲原生軟件交付的複雜性和速度的限制,以往互不干涉的開發人員、運營人員和網站可靠性工程師(SRE)之間的合作開始變得至關重要。三者間的合作能夠推動雲原生軟件開發的發展、縮短開發週期,從而實現更快更安全的軟件交付。
本文由三部分組成,主要討論開發人員的職責有哪些變化、運營人員和SRE團隊的影響、以及雲原生開發領域對各角色的要求。
作者:Daniel Bryant
編譯:郭露
開發人員新常態
開發人員如今不僅僅要負責編程,還要完成數據傳輸和軟件運維等工作。當然,這些工作涉及到與運營人員和SRE的合作。對於開發人員來説,這種雲原生的“新常態”依賴於整個環境思維的轉變,以及對開發者掌控整個開發週期的信任。同時它還需要開發人員與SRE和運營團隊轉變合作方式,更多地關注軟件運作的目標,而不是處理故障或是臨時需求。這類團隊合作越多,開發人員的工作就越輕鬆,從而縮短開發週期,軟件就能更快、更安全地交付給終端用户。
舊的不去
開發人員在傳統的開發流程中效率較低,但這並不適用於雲原生開發的工作方式。微服務驅動的開發推動了重大變化,其中包括新技術和工作流程。“內部/開發/循環”與“外部/開發/循環”以及其他領域的聯繫日益緊密,其中涉及到各類複雜的傳輸過程。由於這種複雜性,雲原生仍然是未知的領域。目前各大雲原生公司處於不同的發展階段,因此編碼將不可避免地與雲原生同步進行,而開發開發人員將同時處於這兩個領域中。
對於對雲原生有一定了解的公司而言,雲原生開發生態系統使得系統構建、數據運輸和運行分佈式系統更為複雜,開發人員要重新涉足一個陌生的領域。儘管其他生態系統已經藉助各種工具進行處理,但這也使得工具過度氾濫。同時,隨着這些工具的流行,開發人員需要負責整個軟件開發週期,即使他們並不瞭解運行或交付方式。倘若不改變開發人員、SRE和運營人員之間的關係,不打破現有困境,不改變三者的工作範圍,那麼雲原生應用開發可能達不到預期的速度。
新的不來
那麼,未來的新型合作模式將如何呈現?開發人員如何調整他們的工作方式、如何創新開發模式並和SRE和運營團隊開展合作?這種工作模式如何幫助他們發揮雲原生開發的靈活性和優勢,從而促進雲原生應用的交付?
從開發者的角度來看,熟悉基礎設施的確非常困難。對於需要嚴格控制資源的公司或是團隊,讓開發人員親身瞭解基礎設施並運行應用程序非常有利。這種方法既能夠鍛鍊開發人員的能力,又可以釋放現有的SRE和運營團隊資源,並提高處理問題的效率。
從SRE的角度來看,團隊應當支持開發人員的工作,維護“誰建立,誰運行”的模式。SRE應支持交互式自助服務,而不是在事後放馬後炮。“倘若開發人員能夠了解完整的代碼運行過程,他們自己就可以處理故障。”
從運營和平台的角度來看,運營的功能是幫助維護開發者的工作,他們需要確保技術能夠完全契合開發人員的體驗。為開發者鋪平道路可以簡化他們的開發流程,而這有助於防止工具的蔓延,並支持開發人員的所有權,這是快速安全交付軟件的關鍵。
掌握開發週期所有權至關重要
儘管缺乏統一的開發人員體驗,但大多數以云為基礎的公司團隊,不管發展到了哪一個階段,都有許多共同點,主要為以下兩點。
第一,跨職能合作。對於開發人員來説,與SRE和運營團隊的跨職能合作極為重要。他們可以幫助減少開發人員工作的複雜程度,並確保用户能夠完整體驗軟件的功能。
第二,賦予開發人員所有權。確保開發人員的所有權有助於推動整體工作的實施,並促進團隊實現其目標。
如今開發人員的體驗正在逐步改善,加強合作並促進雲原生軟件開發能夠進一步保障開發人員的工作。