IDP中的黃金路徑究竟是什麼?

Seal數澈發表於2023-05-05

在雲原生時代,開發人員面臨著越來越多的工具、技術、思維方式的選擇,給他們帶來了極大的認知負擔和工作量。為了提高開發人員的開發效率與開發體驗,一些頭部科技公司開始建立自己的內部開發者平臺(IDP)。在之前的文章我們有簡單瞭解過 IDP 相關的基礎概念。IDP 是一套由平臺工程團隊維護的工具和技術,讓開發者能夠更快更便捷地構建和部署軟體。IDP 透過抽象化基礎設施的細節和提供一致、標準化的工作方式來幫助減少軟體開發的複雜性和運營成本。
 

當然,IDP 並不是一個適用於所有情況的解決方案,不同業務對應的要求、技術和架構也會有所不同。因此,IDP 需要為開發人員提供一些具備靈活性和可定製的選項,以便為他們的業務用例選擇best solution。這就是黃金路徑發揮作用的時候了。
 

在這篇文章中,我們將聊聊黃金路徑究竟是什麼,它的優勢和特點有哪些,以及企業為 IDP 建立黃金路徑時需要注意什麼。
 

什麼是黃金路徑?

黃金路徑(Golden Paths)是一種預先設定的架構和支援方法,用於在 IDP 上構建和部署特定型別的軟體,是指導開發人員如何使用 IDP 的 best practice。它可以涵蓋從程式碼編寫、測試、審查、整合、部署、監控等各個階段的標準流程和工具。透過遵循黃金路徑,開發人員不再需要學習用於建立該道路的技術的所有細節,由此開發人員的體驗和生產力得以提升,應用程式的質量和可靠性也得到了保障。
 

黃金路徑的優勢

企業建立 IDP 後,開發人員終於擁有完全屬於他們的自助服務平臺,黃金路徑則能夠為開發者們提供一個擁有良好支援的開發路徑。
 

黃金路徑可以 加速典型的應用開發用例。黃金路徑能夠提供資源庫模板、流水線、部署清單以及可觀測性配置,可以作為任何新專案的起點。而開發者們也因為不需要從頭開始構建一切,也不用學習如何使用不同的工具和服務,大大節省了時間和精力。
 

與此同時,開發人員還能夠參考並受益於黃金路徑中的best practice和標準,從而 提高程式碼的質量和配置的一致性。黃金路徑體現了平臺工程團隊希望在整個企業組織內推廣的標準和管理,例如程式碼質量、安全、測試、效能等到你。這些best實踐能夠幫助開發人員避免常見的陷阱和錯誤,確保他們開發的應用程式能夠滿足企業和客戶的期望和要求。
 

在助力開發人員的同時,黃金路徑也 幫助平臺工程團隊更好地進行維護和支援。由於黃金路徑可以確保所有的應用程式遵循相同的結構和格式,為應用程式的相關操作提供了更高的統一性,使得應用程式甚至是開發者平臺變得更容易維護、排除故障和監控。這樣還能夠減少應用環境的複雜性和可變性,提高整個系統的穩定性與可靠性。同時,更好的統一性也能促進共享元件和介面的團隊和專案之間的協作。
 

傳統 DevOps 團隊往往被繁瑣的基礎設施相關工作所牽絆。 黃金路徑則透過抽象繁瑣的基礎設施決策來減少操作負擔,開發者們不必擔心底層基礎設施的複雜性和可變性,也不用考慮如何供應、配置、擴充活更新基礎設施資源,專注於核心業務邏輯和戰略,因為這些任務會由平臺工程團隊或工具自動化處理。這樣一來,開發過程能夠得到有效精簡,同時人為錯誤及錯誤配置等風險得以降低。黃金路徑還能夠幫助企業更好地管理和控制平臺上的資源和工具,減少冗餘和浪費。
 

黃金路徑的特點

黃金路徑有一些共同的特點,使其有效和方便使用者,根據 Raffaele Spazzoli 的觀點,黃金路徑的特點可以總結為以下:

  • 靈活可選。黃金路徑的確為開發者及其他相關團隊帶來許多優勢,但它不是 IDP 的強制採用方式,而是需要留有餘地,允許和促進創新。開發者們可以根據他們的需要和工作偏好,來選擇是否使用黃金路徑。

  • 高度透明。黃金路徑將業務從底層複雜邏輯中抽象出來,開發人員也因此節省了學習底層技術和工具的時間。當然這種抽象並不是將底層基礎設施掩蓋起來,相反,在開發人員需要進行檢查和細節修改時,這些底層技術是完全透明可見的。例如,如果黃金路徑使用 K8s 作為部署平臺,開發人員應當根據自身業務需求,無障礙閱讀和編輯 K8s 清單。

  • 與時俱進。黃金路徑會根據使用者的反饋和技術環境的變化而逐步發展,同時生成並隨時更新相應的文件、支援技術和治理機制。比如,如果釋出了新版本的框架和庫,黃金路徑應當相應更新,並將變化傳達給使用者。
     

企業如何為 IDP 構建黃金路徑

構建黃金路徑需要平臺團隊和開發團隊之間的合作。平臺團隊應提供實現黃金路徑的基礎設施和工具,而開發團隊應提供塑造黃金路徑的反饋和需求。
 

黃金路徑的組成部分

根據 RedHat 的文章,黃金路徑通常由四個關鍵部分組成:倉庫模板、流水線、部署清單、可觀測性配置。當然根據各企業的應用程式不同,黃金路徑的組成部分也會有所區別,但通常遵循都相同的原則。
 

1. 倉庫模板
倉庫模板是開發者寫程式碼的起點。它包含了讓開發者快速開始所需的資源和配置。倉庫模板應該是容易使用和理解的,同時符合企業要求。理想情況下,倉庫模板被放在一箇中央倉庫服務上,讓開發者可以輕鬆複製或修改。
 

2. 流水線
流水線是一系列的步驟,可以將程式碼構建並推送到生產環境。流水線應該包含所有企業認為必要的步驟,來確保程式碼是可信的。流水線應該是自動化且可靠的,同時具備可配置性和靈活性。理想情況下,流水線與倉庫服務或中央流水線服務整合,開發者就可以輕鬆地觸發或監控流水線。
 

3. 部署清單
部署清單是一組指令,描述瞭如何將應用程式部署到目標環境。它定義了應用程式執行所需的資源和配置。部署清單應該是宣告式和冪等的。它也應該與目標環境保持一致和相容。理想情況下,它應該使用一種標準格式或模板語言編寫,讓開發者可以輕鬆地自定義或引數化它。
 

4. 可觀測性配置
可觀測性配置是一組可以從應用程式收集和分析資料的設定。它定義了監控和排查應用程式所需的指標、日誌、追蹤和警報。可觀測性配置具備全面性,同時與企業使用的可觀測性工具和平臺保持一致和相容。理想情況下,可觀測性配置嵌入在應用程式的程式碼或映象中,或者提供為一個單獨的配置檔案。
 

構建黃金路徑時需要考慮什麼?

企業在為 IDP 構建黃金路徑時,企業可以考慮這幾個方面:

  • 瞭解開發人員的需求和痛點:在設計和構建黃金路徑之前,需要與開發人員進行溝通和調研,充分了解他們在開發過程中遇到的問題和挑戰,以及他們期望從 IDP 中獲得的價值和支援。這樣可以確保黃金路徑能夠滿足開發人員的實際需求,而不是強加給他們不適合或不必要的工具和流程。

  • 制定清晰和簡潔的指導原則:在制定黃金路徑時,需要遵循一些指導原則,以便為開發人員提供清晰和簡潔的指引。例如:

    • 優先考慮自助服務:應該儘可能地提供自助服務的能力,讓開發人員可以自主地獲取和管理他們需要的資源,而不需要依賴運維或 DevOps 團隊。這樣可以提高開發人員的效率和靈活性,同時減輕運維或 DevOps 團隊的負擔。
    • 提供合理的約束和選擇:在提供自助服務的同時,也提供合理的約束和選擇,以避免出現過度複雜或不一致的情況。例如,在 IDP 中預置一些模板或配置選項,讓開發人員可以根據自己的需求進行選擇或修改,而不需要從零開始編寫程式碼或指令碼。同時,黃金路徑也可以設定一些安全和合規的規則和限制,防止開發人員使用不合適或不安全的資源或工具。
  • 提供清晰和實用的文件、指導:在開發人員使用平臺的過程中,黃金路徑應當為開發者提供詳細和易懂的說明,比如,如何使用平臺上提供的資源和服務,如何遵循良好實踐,以及如何解決可能遇到的問題。

  • 持續改進和更新:黃金路徑應該根據開發人員的反饋和需求,持續改進和更新。例如,定期收集開發人員的意見和建議,分析他們的使用情況和滿意度,找出平臺的優勢和不足。同時,也可以根據市場的變化和技術的發展,引入新的資源或工具,或者升級現有的資源或工具,以保持平臺的先進性和競爭力。
     

總結

黃金路徑是一個新興概念,旨在透過 IDP 提供定製和支援的方式來構建和部署特定型別的軟體,而開發團隊在平臺工程團隊的支援下可以加速開發過程,並降低複雜性。黃金路徑對於企業及其開發團隊的價值顯而易見,但想要構建完美的黃金路徑,企業仍需要不斷在內部進行測試、部署、調整和迭代,以建立best實踐和統一性。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70026925/viewspace-2950046/,如需轉載,請註明出處,否則將追究法律責任。

相關文章