一文帶你了解內部開發(fā)者門戶
內部開發(fā)者門戶(internal developer portal)是一個自助服務的應用程序和數(shù)據(jù)存儲,可以為軟件工程團隊提供提供訪問所有軟件組件、資源、環(huán)境、工具和文檔的能力,讓開發(fā)人員和管理人員跟蹤并組織其工程團隊構建和運行的所有內容。
?
信息碎片化問題常常困擾著運行復雜分布式系統(tǒng)的軟件工程組織,而內部開發(fā)者門戶則旨在解決該問題。通過將開發(fā)人員所需要搜索的信息,例如 wiki、代碼倉庫、配置文件、日志、指標等,放在一個集中的位置,從而避免在多個來源之間搜索信息,為企業(yè)內部開發(fā)資產和流程提供真實可靠的來源。
?
今天的文章將帶你一同了解內部開發(fā)者門戶的基本概念,包括其主要組成部分,特點以及優(yōu)勢。
?
內部開發(fā)者門戶的主要組成部分
內部開發(fā)者門戶抽象了在不同的云環(huán)境上管理和記錄應用程序的復雜性,通過自助式的應用和數(shù)據(jù)存儲,讓開發(fā)者和管理者能夠訪問、跟蹤和管理所有應用程序的資源和文檔。內部開發(fā)者門戶的主要組成部分會根據(jù)每個企業(yè)的具體需求和目標而有所區(qū)別,以下是我們總結的一些常見的組成部分:
?
軟件目錄(software catalog):這是一個顯示所有可用軟件組件和資源的列表,比如應用程序、微服務、庫、框架、數(shù)據(jù)庫等。它可以幫助開發(fā)者找到和重復利用現(xiàn)有的解決方案,而避免從頭開始創(chuàng)建新的東西。
評分卡層(scorecard layer):這是一個顯示每個軟件組件和資源的質量和可靠性的指標的界面,比如測試覆蓋率、錯誤率、響應時間等。它可以幫助開發(fā)者選擇合適的組件和資源,并且能夠及時發(fā)現(xiàn)并改進問題。
自助服務操作層(developer self-service actions layer):這是一個能夠讓開發(fā)者自己執(zhí)行一些常見任務而不需要其他人或團隊幫助的功能,比如創(chuàng)建新的微服務、配置基礎設施、部署應用程序等。在這個功能的加持下,能夠有效提高開發(fā)者效率和滿意度,減少錯誤和延遲。
工作流自動化層(workflow automation layer):這是一個自動化地將代碼從源代碼倉庫轉移到生產環(huán)境或其他目標環(huán)境的過程。它可以幫助開發(fā)者快速地交付高質量和可靠性的軟件產品,并且能夠隨時回滾或修復問題。
內容倉庫(content repository):內容倉庫用來存儲和展示軟件開發(fā)生態(tài)系統(tǒng)的所有信息。包括微服務、應用、資源、文檔、監(jiān)控、部署等,以及這些信息的管理者和所有者。內容倉庫可以使用版本控制系統(tǒng),比如 Git 或 SVN。
監(jiān)控儀表盤(monitoring dashboard):監(jiān)控儀表盤是一個顯示軟件系統(tǒng)中各種數(shù)據(jù)和指標的界面,比如日志、錯誤率、響應時間等 。它可以幫助開發(fā)者了解系統(tǒng)運行狀況,并且能夠及時檢測并解決問題。
文檔中心(documentation center):文檔中心提供了所有相關文檔,比如 API 參考文檔、用戶手冊、教程等。它可以幫助開發(fā)者學習和使用軟件系統(tǒng),并且能夠保持文檔更新。
?
內部開發(fā)者門戶的特點
根據(jù)內部開發(fā)者門戶的組成部分及其功能,我們總結了以下幾個關鍵特點:
?
可見性:內部開發(fā)者門戶可以提供對軟件生命周期的增強可見性,從設計到部署到監(jiān)控。它可以顯示所有可用的軟件組件、資源、環(huán)境、工具和文檔,以及它們是如何連接的 。它還可以顯示每個組件和資源的狀態(tài)、健康狀況和性能 。
可追溯性:內部開發(fā)者門戶可以提供對軟件開發(fā)和交付過程的可追溯性。它可以跟蹤并記錄在整個生命周期中發(fā)生的所有變化、事件和行為 。它還可以鏈接并關聯(lián)系統(tǒng)的不同元素,比如代碼提交、配置文件、日志、指標等 。
可審計性:內部開發(fā)者門戶可以提供對軟件開發(fā)和交付過程的可審計性。它可以確保并強制遵守最佳實踐、標準和政策。還可以驗證每個組件和資源的質量、安全性和可靠性。
可觀察性:內部開發(fā)者門戶可以提供對軟件開發(fā)和交付過程的可觀察性。它可以收集并分析來自各種來源的數(shù)據(jù),比如日志、指標、追蹤等。它還可以可視化并警報關鍵指標和異常。
自助服務:內部開發(fā)者門戶可以為開發(fā)者提供自助服務能力。它可以讓開發(fā)者自己配置他們的基礎設施和依賴,而不依賴于手動流程或外部團隊。它還可以讓開發(fā)者使用持續(xù)交付流水線部署并更新他們自己的應用程序。
?
內部開發(fā)者門戶的優(yōu)勢
通過上面的內容,我們總結出內部開發(fā)者門戶能夠幫助企業(yè)的軟件開發(fā)團隊獲得以下優(yōu)勢:
?
提高生產力。開發(fā)者們可以輕松且快速第找到他們所需要的資源,而無需再多個來源上搜索或等待批準浪費時間。他們還可以使用預定義的模板和工作流來創(chuàng)建新微服務、配置環(huán)境、訪問云資源、執(zhí)行數(shù)據(jù)工程操作等。
增強協(xié)作。開發(fā)者可以與他們在團隊和項目中的同行分享最佳實踐、反饋、代碼片段、文檔和指標。他們還可以快速找到現(xiàn)有服務和 API,以便重復使用或集成。
提高質量。開發(fā)者可以遵循他們所做事情的最優(yōu)路徑,確保他們遵守組織設定的標準、指南和政策。他們還可以利用與內部開發(fā)者門戶集成的自動化測試、監(jiān)控和調試工具。
降低風險。開發(fā)者可以通過使用內部開發(fā)者門戶的驗證輸入輸出來避免常見錯誤,例如配置錯誤、安全漏洞、數(shù)據(jù)丟失或合規(guī)違規(guī)。如果出了問題,開發(fā)者也可以輕松地恢復更改。
?
誰需要內部開發(fā)者門戶?
內部開發(fā)者門戶通過提供一系列工具和資源來最大限度地支持開發(fā)團隊,促進軟件開發(fā)過程。這樣看來內部開發(fā)者門戶確實能夠給企業(yè)軟件工程團隊帶來許多好處,但是不是每個企業(yè)都需要它呢?事實上,實施內部開發(fā)者門戶的決定應當基于組織的特定需求和目標。
?
例如,對于擁有大型開發(fā)團隊同時進行多個項目的組織,尤其是有復雜、分布式、微服務化的軟件系統(tǒng)企業(yè),內部開發(fā)者門戶可以幫助簡化開發(fā)過程并提高效率。通過在中心位置提供工具、資源和信息的便捷訪問,內部開發(fā)者門戶可以為開發(fā)人員節(jié)省時間和精力。
?
相較而言,對于擁有較少開發(fā)人員或項目較簡單的較小企業(yè)組織,內部開發(fā)者門戶可能不會提供太多價值。在這些情況下,使用現(xiàn)有工具和流程可能比投資于定制內部開發(fā)者門戶更有實際效率。
?
總 結
內部開發(fā)者門戶能夠解決分布式系統(tǒng)中的信息化碎片問題,并有效提高開發(fā)者的自主性和效率。然而,打造一套內部開發(fā)者門戶是一個耗時且花費較高的過程,并不是所有企業(yè)都需要投資定制內部開發(fā)者門戶,企業(yè)需要根據(jù)自身軟件發(fā)開的需求以及項目的復雜度綜合考量。