一文帶你了解內(nèi)部開發(fā)者門戶

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