內部開發(fā)者平臺與門戶:二者有何關聯(lián)?

內部開發(fā)者門戶和內部開發(fā)者平臺是兩個密切相關的概念。通過之前的文章,我們了解到這兩個概念都旨在通過提供一個自助服務層,抽象出底層技術棧的復雜性和多樣性,來改善開發(fā)者的體驗和生產力。然而,它們有著不同的范圍和功能,且能夠相互補充。
?
在這篇文章中,我們將探討這兩者的相似之處、差異,以及二者對現(xiàn)代軟件開發(fā)重要性。
?
內部開發(fā)門戶與平臺的區(qū)別
內部開發(fā)者門戶是一個自助服務應用程序和數(shù)據存儲,能夠讓開發(fā)者和管理人員跟蹤和組織他們的工程團隊構建和使用的所有內容。內部開發(fā)者門戶是一個供開發(fā)人員發(fā)現(xiàn)和訪問內部開發(fā)者平臺的界面,可以幫助開發(fā)者們完成例如創(chuàng)建新的微服務、配置基礎設施、配置 CI/CD 流水線、管理環(huán)境、記錄 API 和訪問資源等任務。內部開發(fā)者門戶主要主要組成部分有:
軟件目錄:這是企業(yè)中所有軟件資產的綜合清單,例如應用程序、微服務、庫、框架、數(shù)據庫等。它可以幫助開發(fā)者找到和重復利用現(xiàn)有的解決方案,而避免從頭開始創(chuàng)建新的東西。
評分卡層:這是一個顯示每個軟件組件和資源的質量和可靠性的指標的界面,比如測試覆蓋率、錯誤率、響應時間等。它可以幫助開發(fā)者選擇合適的組件和資源,并且能夠及時發(fā)現(xiàn)并改進問題。
自助服務操作層:在此操作層,開發(fā)者能夠執(zhí)行一些常見任務而不需要其他人或團隊幫助的功能,比如創(chuàng)建新的微服務、配置基礎設施、部署應用程序等。在這個功能的加持下,能夠有效提高開發(fā)者效率和滿意度,減少錯誤和延遲。
工作流自動化層:這是一個自動化地將代碼從源代碼倉庫轉移到生產環(huán)境或其他目標環(huán)境的過程。它可以幫助開發(fā)者快速地交付高質量和可靠性的軟件產品,并且能夠隨時回滾或修復問題。
?
而內部開發(fā)者平臺則是平臺工程團隊將所有技術和工具結合在一起,為開發(fā)者鋪設黃金通道的匯總。它降低了整個工程組織的認知負荷,并實現(xiàn)了開發(fā)人員的自我服務。內部開發(fā)者平臺遵循平臺即產品(Platform-as-a-product)的方法,由平臺團隊按照產品管理原則和最佳實踐來構建、維護和持續(xù)改進。根據提煉總結,一個內部開發(fā)者平臺通常由以下四層組成。
云層(cloud layer):這是提供訪問云資源的層,如計算、存儲等。云層可以基于一個或多個云供應商。
容器層(container layer):在容器層,開發(fā)人員能夠獲取對容器協(xié)調的訪問,如 Kubernetes。它允許開發(fā)人員使用容器部署和管理他們的應用程序,而不必擔心低級別的細節(jié),如 pod 和服務等。
平臺層(platform layer):在平臺層,開發(fā)人員可以順利訪問平臺服務,例如 CI/CD、日志、監(jiān)控等。在該層,開發(fā)人員可以使用預定義或自定義流水線、儀表盤等來自動化和精簡他們的工作流程。
應用層(application layer):這是一個提供訪問應用服務的層,如數(shù)據庫、消息傳遞隊列等。它允許開發(fā)人員提供和連接他們的應用程序與所需的服務,而不必擔心配置或維護問題。
?
在對比內部開發(fā)者平臺與內部開發(fā)者門戶時,我們不難看出兩者在范圍與功能上的區(qū)別。
?
首先內部開發(fā)者門戶側重于為開發(fā)者提供統(tǒng)一的用戶體驗,以訪問各種平臺服務和資源。而內部開發(fā)者平臺則側重于提供一套標準化的平臺服務和資源,讓開發(fā)者能夠輕松使用。內部開發(fā)者門戶可以被視為是內部開發(fā)者平臺上的一層,它能夠簡化開發(fā)者所需資源和服務的獲取,例如查找和訪問、文檔管理,同時促進團隊間的協(xié)作。
?
此外,內部開發(fā)者門戶更多的是對企業(yè)內現(xiàn)有的軟件和數(shù)據資產進行編目和歸納,而內部開發(fā)者平臺則是在組織中創(chuàng)建和管理新的軟件和數(shù)據資產。內部開發(fā)者門戶幫助企業(yè)跟蹤和組織已經建立和運行的東西,內部開發(fā)者平臺則幫助企業(yè)建立和運行開發(fā)需要的東西。
?
另外,與內部開發(fā)門戶相比,內部開發(fā)者平臺更依賴于底層技術棧。內部開發(fā)者門戶需要與提供不同平臺服務和資源的各種工具和技術集成,而內部開發(fā)者平臺可以抽象出底層技術棧的細節(jié),為開發(fā)者們提供一個一致的界面。內部開發(fā)者門戶可以適應企業(yè)技術棧的多樣性,而內部開發(fā)者平臺可以減少企業(yè)技術棧的復雜性。
?
內部開發(fā)門戶與平臺的相似之處
內部開發(fā)者門戶與內部開發(fā)者平臺雖然概念不同,但有一些共同的目標和優(yōu)勢,比如:
改善開發(fā)人員的經驗和生產力:通過減少認知負荷,實現(xiàn)自助服務,并為開發(fā)人員提供一個統(tǒng)一的、直觀的界面來訪問各種平臺服務和資源。
加快發(fā)布周期:通過支持持續(xù)部署流程,在不同環(huán)境中自動部署,并為開發(fā)人員提供更快的反饋循環(huán),以測試和迭代他們的應用程序。
加強集成:通過標準化和簡化技術棧中不同組件和服務的集成,并提供一個一致的方式來記錄和溝通API和數(shù)據模式。
自助服務:通過允許開發(fā)人員請求和提供資源、環(huán)境、部署等而不依賴于外部團隊,并提供一種管理權限和治理策略的方式。
提高安全性:通過強制執(zhí)行整個技術棧的最佳實踐和安全標準,如加密、認證等,并提供監(jiān)測和審計活動的方式。
?
內部開發(fā)者門戶與平臺的相輔相成
如果企業(yè)正在尋找提高軟件開發(fā)速度、效率和質量的方法,在面對內部開發(fā)者門戶與內部開發(fā)者平臺時,可能需要思考是否同時采用兩者。接下來我們就來看看這兩者的關系,以及它們是如何相關聯(lián)的。
?
首先內部開發(fā)者門戶與平臺這兩個概念都是為了降低整個工程團隊的認知負荷,改善開發(fā)者的體驗。實際上,它們可以很好地相互補充。內部開發(fā)者門戶和內部開發(fā)者平臺對現(xiàn)代軟件開發(fā)都很重要,因為它們解決了開發(fā)者體驗的不同但互補的方面。
?
內部開發(fā)者門戶可以作為界面,開發(fā)者可以通過它發(fā)現(xiàn)和訪問內部開發(fā)者平臺的能力。例如,門戶網站可以讓開發(fā)人員使用一個簡單的 Web UI 來配置基礎設施、配置應用程序、部署代碼等,并連接到底層平臺協(xié)調器。內部開發(fā)者平臺可以作為門戶支撐,開發(fā)者們通過內部開發(fā)者門戶進入到內部開發(fā)者平臺,獲取他們所需要的資源。比如,平臺可以自動化工作流程、執(zhí)行政策、集成工具或管理資源,以支持門戶網站的自助服務。
?
內部開發(fā)者門戶幫助開發(fā)者從現(xiàn)有的技術棧中找到并使用他們需要的東西,而內部開發(fā)者平臺幫助開發(fā)者從新的技術棧中創(chuàng)建并管理所需資源。內部開發(fā)者門戶幫助開發(fā)者了解和操作他們的軟件和數(shù)據資產,而內部開發(fā)者平臺幫助開發(fā)者自動化和簡化他們的工作流程。內部開發(fā)者門戶能夠幫助開發(fā)者與其他相關團隊進行協(xié)作和溝通,而內部開發(fā)者平臺幫助開發(fā)者進行不同商業(yè)模式的實驗和創(chuàng)新。
?
因此,同時擁有一個內部開發(fā)者門戶和一個內部開發(fā)者平臺對于擁有大型且復雜項目的企業(yè)組織來說是十分有益的。兩者結合,可以提供統(tǒng)一的開發(fā)者體驗,提高生產力、質量和協(xié)作。
?
總結
當企業(yè)同時擁有內部開發(fā)者門戶與內部開發(fā)者平臺時,就能夠為開發(fā)者提供全面且一致的開發(fā)體驗,提升開發(fā)者的生產力、滿意度和創(chuàng)造力。企業(yè)可以利用這兩者的優(yōu)勢:現(xiàn)有技術棧的多樣性和新技術棧的簡單性,從而達到平衡自助服務和治理、抽象和背景、標準化和定制等的目標。當然,分別構建內部開發(fā)者門戶與內部開發(fā)者平臺絕非易事,企業(yè)還是應當根據自身的情況與項目的需求來確定是否需要其一或兼?zhèn)涠摺?/p>