在快速發展的軟件開發領域,具有前瞻性思維的企業組織正在擁抱平臺工程文化的變革力量。這種創新方法強調創建共享平臺、工具和實踐,使開發人員能夠更快、更高效地交付高質量的軟件。在本文中,我們將深入探討平臺工程文化的核心原則和深遠的好處,探索它如何在技術團隊中促進協作、創新和可擴展性的獨特融合。
01 平臺工程文化的本質
平臺工程文化的核心理念是建立一套可重復使用、可擴展的工具、服務和框架,為整個組織的開發人員賦能。這種文化提倡創建可被不同團隊和項目利用的集中式平臺,而不是將基礎設施和通用服務視為孤立的項目。這種方法的協作性和前瞻性消除了重復勞動,簡化了開發流程,并確保了不同產品和服務之間協調一致的產出。
02 平臺工程的基本原則
-
抽象和標準化:平臺工程師熟練地抽象底層基礎設施和服務的復雜性,為開發人員提供簡單和標準化的 API。這樣,他們就能讓開發人員專注于構建特性和功能,而不是處理低層次的實施細節。
-
自動化:平臺工程文化的核心是對自動化的高度重視。自動化調配、部署、測試和監控流程使團隊能夠以更高的速度、可靠性和一致性交付軟件。
-
自助服務:平臺工程師努力賦予開發人員自助服務功能,使他們能夠毫不費力地訪問和管理資源。這些自助服務平臺有助于加快迭代速度,減少日常任務對集中團隊的依賴。
-
持續改進:平臺工程文化深深植根于持續改進的原則。平臺工程師會積極征求開發人員的反饋意見,找出痛點,迭代演進平臺,以滿足不斷變化的開發需求
03?擁抱平臺工程文化的優勢
-
加速開發:通過提供預構建的組件和服務,平臺工程文化加速了開發過程。開發人員可以集中精力構建應用邏輯,從而減少冗余,加快新功能和新產品的上市時間。
-
增強協作:平臺工程文化培養跨團隊協作精神。平臺團隊與應用程序開發團隊攜手合作,促進合作意識和共同責任,以交付高質量軟件。
-
可擴展性和效率:共享平臺本質上可以減少冗余工作并提高軟件開發效率。隨著組織的發展,該平臺可以無縫擴展以適應不斷增長的需求,而無需大幅增加資源。
-
一致性和可靠性:標準化平臺可確保各產品的一致性,從而帶來更可靠、更可預測的用戶體驗。此外,自動化流程可減少人為錯誤,提高系統可靠性。
-
鼓勵創新:通過將常見的基礎架構問題委托給平臺團隊,應用程序開發人員可以專注于創新和構建獨特的功能,為其產品或服務增加實質性價值。
-
降低風險:標準化平臺降低了系統故障和中斷的風險,提高了整體可靠性和性能。
向平臺工程文化過渡可能會帶來一些挑戰。循序漸進的采用過程,加上持續的反饋循環,可以確保無縫過渡,并確保每個人對平臺工程文化的接受。
04?案例研究:Licious 的卓越平臺工程之旅
以 Licious 為例,我們將分析向平臺工程過渡的實際好處與優勢。在 Licious 內部已經意識到需要一種更加精簡、可擴展和高效的軟件開發和部署方法。
在這一過程中,和許多其他企業一樣,都遇到了與軟件開發規模相關的挑戰。隨著應用程序數量的不斷增加、版本的頻繁發布以及復雜的技術堆棧,Licious 發現在 DevOps 實踐中保持一致性、可靠性和效率變得越來越困難。
認識到現有 DevOps 方法的局限性,去年年初,我們決定過渡到平臺工程,以全面應對這些挑戰。隨后我們分階段實施了戰略路線圖。
第 1 階段:通過自動化和左移增強 DevOps 能力
在第一階段,我們確定了以下工作領域:
-
戰略和可衡量指標:我們對當前的實踐進行了全面評估,找出了痛點,并制定了一個具有衡量標準的強大 DevOps 工程方法愿景。我們制定了明確的戰略,使平臺工程目標與公司的長期業務目標保持一致。
-
團隊重組和技能發展:對技術熟練的 DevOps 工程師團隊進行了重組和技能提升,使其專門從事平臺工程。還提供了額外的培訓,以確保他們掌握 IaC、容器化和通過云原生方法實現自動化部署管道等領域的必要知識。幫助他們將編程作為核心,而不僅僅是腳本。
-
采用基礎設施即代碼:我們投資于 IaC 實踐,使用 Terraform 自動配置和管理基礎設施。這使得基礎架構部署和補丁的一致性、可重復性和版本控制成為可能。
-
容器化和編排:使用 Docker 進行容器化,并通過 Kubernetes 進行協調,以簡化跨不同環境的應用部署、擴展和管理。采用云原生堆棧。創建基于 Kubernetes 的操作員,以自動化方式處理手動操作。
-
在 45 天內將 100+ 項服務從 EC2 遷移到 Kubernetes。
-
GitOps 和左移:我們投入了大量時間開發自助服務流程,并充分利用 GitOps 原則,使開發團隊能夠自主調配資源、管理部署和監控服務。這消除了資源瓶頸,減少了人工干預的需要。
-
持續改進:我們不斷收集開發團隊的反饋意見,并根據實際使用情況和挑戰迭代改進平臺工程實踐。
第一階段成果
第一階段的結果非常積極。在團隊內部,我們能夠:
1. 減少 DevOps 每天執行的冗余任務。
2. 減少對 DevOps 的依賴和阻礙。
3. 提高系統的可靠性和可擴展性。
4. 減少由于高峰時段和活動而導致的意外中斷。
5. 服務所有者更有能力自信地管理其應用程序。
6.?最重要的是,改善DevOps工程師的工作與生活平衡,減少夜間意外急救時間。
第 2 階段:內部開發人員平臺
Licious 平臺工程之旅的下一階段是內部開發人員平臺。
為什么?
在向 Kubernetes 平臺遷移的過程中,我們面臨的大部分挑戰都是如何找到已廢棄服務的所有權以及部署在 Git 上的活動分支。因此,我們萌生了建立內部服務目錄的想法。
要解決什么問題??
減少新服務的載入時間;改善開發人員體驗并實施服務成熟度指數;簡化我們從開發到生產的發布過程,實現對 DevOps/平臺工程師的零依賴。
進展如何?
目前,我們的 IDP 之旅還處于初期階段。但是,當我們越多地了解其他公司對內部開發人員平臺(如 Spotify 的 Backstage)的調整時,我們就越堅信自己走在正確的道路上。
第二階段成果
Licious 從 DevOps 到平臺工程的轉變,展示了采用整體方法進行軟件開發和部署的變革性影響。通過創建一個標準化、可擴展和自助式的平臺,將效率、可靠性和協作提升到新的水平。