內部開發人員平台整合了由專門平台團隊建構及維護的一組精選技術和工具。這個堆疊通常包含容器自動化調度管理解決方案、基礎架構即程式碼 (IaC) 工具,以及由開放原始碼專案支援的 CI/CD 管道。
內部開發人員平台 (IDP) 應視為產品,開發人員則是使用者。因此,務必滿足他們的用途、收集意見回饋,並透過疊代持續修正平台。IDP 是連結這些工具的層級,可免除複雜度,讓開發人員透過簡單的自助服務模型執行工作。我們的目標是讓正確的做法變得簡單,讓開發人員能自信地自主建構及推送軟體。
認知負載是指一個人工作記憶中花費的心力總量。這就像開發人員的心智頻寬。如果將這些頻寬用於非程式設計工作,他們專注於解決複雜問題的能力就會降低。
開發人員經常必須在數十種不同的工具、資訊主頁和設定檔之間切換,才能部署簡單的變更。每次切換情境,大腦都必須載入一組新資訊,這會造成精神負擔。不斷切換工具和程序會增加認知負載,導致過勞、錯誤增加,以及創新速度變慢。
平台工程是設計、建構及維護內部開發人員平台的學科。如果將 IDP 視為產品,平台工程團隊就是負責產品生命週期的產品團隊。他們的客戶是組織的開發人員。
這種做法代表平台使用方式就像其他軟體產品使用方式。平台工程團隊的職責是瞭解開發人員需求、制定發展藍圖,並提供可靠、安全且易於使用的工具。
平台和入口網站有何不同?這是我們經常聽到的問題。雖然這兩個詞有時會互通使用,但代表的是開發人員體驗的不同層面。內部開發人員平台 (IDP) 就像整個引擎,包含所有工具、工作流程和基礎架構,可推動開發生命週期。
另一方面,內部開發人員入口網站則是該引擎的資訊主頁。它是圖形使用者介面 (GUI),可讓開發人員透過單一集中位置存取平台功能。開發人員入口網站可協助開發人員探索及使用工具、查看說明文件、建構新服務,以及檢查建構作業的狀態,不必瞭解底層複雜的運作機制。雖然完整的 IDP 通常會包含開發人員入口網站,以提升可用性和曝光率,但平台本身是整套基礎技術和自動化程序。
雖然每間公司的需求不同,但大多數 IDP 都是由幾個相互合作的核心元件組成。這些元件的重點,在於打造從開發到正式環境的簡化、安全且有效率的路徑。
開發人員體驗是核心介面,可免除基礎架構的底層複雜性。通常是開發人員入口網站或指令列介面 (CLI),讓開發人員能自助存取所需的工具、說明文件和資源。舉例來說,Cloud Code 等 IDE 外掛程式可協助開發人員直接在熟悉的工具中,編寫及偵錯程式碼;而使用 Google Cloud 上的 Backstage 等解決方案建構的入口網站,則可提供整個軟體生態系統的單一整合檢視畫面。
應用程式範本 (有時稱為黃金途徑) 可為開發人員提供預先定義的最佳做法結構,方便他們建構新應用程式。這些範本可包含樣板程式碼、設定好的 CI/CD 管道、基礎架構即程式碼檔案和監控資訊主頁。團隊可透過 App Design Center 等資源,建立及管理範本目錄,確保可輕鬆找到最佳做法並重複使用。這種做法可加快開發人員的到職訓練速度,並確保所有服務的一致性。
這個元件可將安全性直接整合至開發工作流程。自動強制執行安全政策,例如 Identity and Access Management (IAM)、角色式存取控管 (RBAC)、網路政策、安全漏洞掃描和基礎架構強化。將安全防護機制嵌入平台基礎架構,團隊就能「提前確保安全」,在開發生命週期初期解決潛在問題。這樣一來,在正式發布前,就能避免安全問題成為瓶頸。
以應用程式為中心的基礎架構,可在底層基礎架構上建立標準化抽象層。提供統一模型,可解決重要的營運問題,讓您在所有環境中採用相同的網路、安全性和觀測做法。這種一致性簡化了管理作業,並減輕開發人員的認知負擔,他們不必擔心每個部署目標的獨特細節,例如特定的 Google Kubernetes Engine (GKE) 叢集設定。
雲端應用程式平台是整合式雲端服務組合,可做為整個 IDP 的核心支柱。將運算、儲存空間、網路、Cloud API、CI/CD 工具和觀測能力整合至一致的系統。在 Google Cloud 等全方位基礎架構上建構 IDP,團隊就能運用強大的代管服務,加速開發、提升可靠性,並確保平台可擴充,滿足需求。
採用內部開發人員平台可為工程組織帶來顯著優勢。
提升開發人員體驗
IDP 可減少認知負載,並提供簡單的自助式工作流程,有助於提升開發人員體驗。
縮短產品/服務上市時間
自動化和標準化有助於加快軟體建構和部署程序,讓團隊能更快為顧客創造價值。
提高可靠性和一致性
IDP 可透過黃金途徑,協助強制執行最佳做法,進而讓應用程式部署作業更一致可靠。
加強安全防護與法規遵循
安全政策可直接嵌入平台範本和自動化工作流程,確保所有新服務從一開始就符合法規要求。
開發人員享有更多自主權
集中平台管理可減輕開發人員的工作負擔,讓他們專注於開發功能,並自主管理應用程式的生命週期。
為了瞭解 IDP 的實際運作方式,我們來看看使用 Google Cloud 的常見內部開發人員平台範例。假設開發人員需要啟動新的微服務,而該服務需要專屬資料庫和 CI/CD 管道。
開發人員需要手動建立 Cloud 原始碼存放區、編寫 Terraform 模組來佈建 Cloud SQL 資料庫、建立及設定 Google Kubernetes Engine (GKE) 部署檔案 (YAML)、在 Cloud Build 中設定新觸發條件,以及管理所有項目的 IAM 權限。這可能需要數天時間,並涉及多個團隊。
程序簡單許多。
透過入口網站提出要求:開發人員登入開發人員入口網站,找到「Python 微服務搭配 Cloud SQL 資料庫」的預先建構範本。
簡單輸入內容:填寫簡短表單,提供服務名稱和團隊名稱。
開始自動化調度管理:開發人員點選「建立」後,平台自動調度管理工具就會接手。
自動化動作:在幕後,自動調度管理工具會使用 Google Cloud API 執行一系列自動化任務:
完成:程序會在幾分鐘內完成。開發人員會收到通知,內含新存放區連結、GKE 測試環境中正在執行的應用程式連結,以及資料庫憑證連結,完全不必撰寫任何設定。
如要進一步瞭解組成內部開發人員平台的概念和技術,請參閱下列其他資源: