企業談到如何加快軟體推送速度時,經常會提到 DevOps 和平台工程。雖然有些人認為這兩種做法相互衝突,但事實上,兩者可以相互配合、共同運作。
DevOps 就像宏觀目標,代表團隊合作的文化和心態。而平台工程就像大規模實際達成目標的方法,所建構的工具可讓 DevOps 輕鬆運作。
如要瞭解這兩個概念如何相輔相成,首先必須明確定義。兩者差異在於,從專業領域、平台工程和其所建立的具體工具 (內部開發人員平台 (IDP)),將 DevOps 的文化目標獨立出來。
DevOps 是一套做法,可拉近程式碼編寫人員 (開發團隊或「Dev」) 和程式碼執行人員 (營運團隊或「Ops」) 的距離。
這主要是文化層面的變革,著重於讓團隊溝通更順暢、共同承擔責任,並將所有作業自動化。目標是結合人員、程序和工具,加快將軟體從構想轉化為客戶可使用的產品,進而快速創造業務價值。
內部開發人員平台 (IDP) 是平台工程團隊建構的實際工具和服務組合。開發人員可在此單一平台取得工作所需的一切資源,包括容器自動化調度管理、基礎架構即程式碼 (IaC) 工具和 CI/CD 管道。
舉例來說,以 Google Cloud 為基礎建構的 IDP 可能會使用 Google Kubernetes Engine (GKE) 執行容器。平台工程團隊將網站可靠性工程 (SRE) 和 DevOps 原則嵌入平台的「黃金途徑」,可減少人為錯誤的可能性,並將停機時間降至最低。IDP 會簡化複雜的作業,並提供自動化功能和教學課程,確保開發人員從一開始就能安全無虞地正確完成工作。
DevOps 是我們需要合作和自動化的「原因」。平台工程就是讓所有人都能輕鬆實現自動化的「方法」。
雖然小型公司或團隊可以透過密切溝通來管理程序,但所有組織都能從早期採用 DevOps 原則和最佳做法中受益。
但當公司規模擴大到數百名開發人員時:
複雜度大幅增加:每個開發團隊都必須學習並維護數十種工具,例如 Cloud Logging、Cloud Monitoring 和基礎架構程式碼。這種負擔稱為認知負擔,會減慢他們的速度。 |
複雜度大幅增加:每個開發團隊都必須學習並維護數十種工具,例如 Cloud Logging、Cloud Monitoring 和基礎架構程式碼。這種負擔稱為認知負擔,會減慢他們的速度。
不一致的情況逐漸出現:不同團隊可能會以不同方式設定環境,採用不同的安全做法、程式碼標準或部署設定。這讓營運團隊難以支援所有人。 |
不一致的情況逐漸出現:不同團隊可能會以不同方式設定環境,採用不同的安全做法、程式碼標準或部署設定。這讓營運團隊難以支援所有人。
平台工程可透過 Google Cloud 的全方位代管服務套件,建立標準化 IDP 來解決這個問題。此外,「黃金途徑」可助您輕鬆建構、管理及擴充 IDP。即使公司規模擴大,仍能維持 DevOps 的速度與品質目標。
DevOps 和平台工程相輔相成,但主要關注的領域不同。
DevOps 的核心是文化轉變,強調團隊合作、共同承擔責任,以及自動化整個交付管道。目標是整合人員和流程,迅速將價值從構想轉移到實際成果。
相較之下,平台工程的主要重點是開發人員體驗。方法是簡化基礎架構的複雜性,並提供自助式功能。平台工程為開發人員提供簡單可靠的途徑,是專門的領域,能大規模加速實現 DevOps 的文化目標。
對頂尖技術主管來說,平台工程可帶來財務和管理方面的優勢。
風險與法規遵循
平台工程可直接為平台建立安全性和法規遵循政策,在所有環境 (例如 GKE 叢集) 中自動強制執行標準,避免不一致的情況,進而降低風險。
開發人員工作效率
平台工程可提供簡單的自助式 API 和入口網站,大幅縮短開發人員處理基礎架構工作的時間,進而提升財務成效。
加快上市速度
Google Cloud 平台工程可為團隊提供高效率的工作流程,讓機構能輕鬆快速地推出新服務。Google Cloud 的基礎架構可提高部署效率,並提供更多優勢。
是否要成立專門的平台工程團隊並建構 IDP,並非取決於團隊規模,而是機構需求和摩擦成本。當應用程式開發人員花在基礎架構工作上的時間和心力,超過建構及維護平台本身所需的投資時,就適合採用平台。如要瞭解詳情,請參閱這份平台工程指南。
如果應用程式簡單明瞭,開發團隊也能輕鬆管理自己的基礎架構需求,那麼 Cloud Build 等簡單的 CI/CD 工具就已足夠。在這種情況下,最有效的方法是著重於 DevOps 的文化層面,也就是加強溝通、確立共同目標,以及簡化自動化作業。
當複雜性開始拖慢整個機構的步調時,通常就需要平台團隊。這通常是因為貴公司發生下列任一情況:
認知負擔過重:開發人員花費過多時間設定及維護基礎架構,無法專心開發功能。 |
認知負擔過重:開發人員花費過多時間設定及維護基礎架構,無法專心開發功能。
做法不一致:各項產品的安全、作業和部署模式不盡相同,導致支援和稽核作業難以進行。 |
做法不一致:各項產品的安全、作業和部署模式不盡相同,導致支援和稽核作業難以進行。
佈建速度緩慢:開發人員需要花費數天才能啟動新的測試或正式環境,導致開發生命週期出現瓶頸。 |
佈建速度緩慢:開發人員需要花費數天才能啟動新的測試或正式環境,導致開發生命週期出現瓶頸。
此時,建立平台團隊來建構一致的標準化 IDP,可帶來最大的投資報酬率,並維持 DevOps 承諾的速度和品質。