一文帶你瞭解內部開發者門戶

2023-03-17 15:01:59

內部開發者門戶(internal developer portal)是一個自助服務的應用程式和資料儲存,可以為軟體工程團隊提供提供存取所有軟體元件、資源、環境、工具和檔案的能力,讓開發人員和管理人員跟蹤並組織其工程團隊構建和執行的所有內容。
 

資訊碎片化問題常常困擾著執行復雜分散式系統的軟體工程組織,而內部開發者門戶則旨在解決該問題。通過將開發人員所需要搜尋的資訊,例如 wiki、程式碼倉庫、組態檔、紀錄檔、指標等,放在一個集中的位置,從而避免在多個來源之間搜尋資訊,為企業內部開發資產和流程提供真實可靠的來源。
 

今天的文章將帶你一同瞭解內部開發者門戶的基本概念,包括其主要組成部分,特點以及優勢。
 

內部開發者門戶的主要組成部分

內部開發者門戶抽象了在不同的雲環境上管理和記錄應用程式的複雜性,通過自助式的應用和資料儲存,讓開發者和管理者能夠存取、跟蹤和管理所有應用程式的資源和檔案。內部開發者門戶的主要組成部分會根據每個企業的具體需求和目標而有所區別,以下是我們總結的一些常見的組成部分:
 

  • 軟體目錄(software catalog):這是一個顯示所有可用軟體元件和資源的列表,比如應用程式、微服務、庫、框架、資料庫等。它可以幫助開發者找到和重複利用現有的解決方案,而避免從頭開始建立新的東西。
  • 評分卡層(scorecard layer):這是一個顯示每個軟體元件和資源的質量和可靠性的指標的介面,比如測試覆蓋率、錯誤率、響應時間等。它可以幫助開發者選擇合適的元件和資源,並且能夠及時發現並改進問題。
  • 自助服務操作層(developer self-service actions layer):這是一個能夠讓開發者自己執行一些常見任務而不需要其他人或團隊幫助的功能,比如建立新的微服務、設定基礎設施、部署應用程式等。在這個功能的加持下,能夠有效提高開發者效率和滿意度,減少錯誤和延遲。
  • 工作流自動化層(workflow automation layer):這是一個自動化地將程式碼從原始碼倉庫轉移到生產環境或其他目標環境的過程。它可以幫助開發者快速地交付高質量和可靠性的軟體產品,並且能夠隨時回滾或修復問題。
  • 內容倉庫(content repository):內容倉庫用來儲存和展示軟體開發生態系統的所有資訊。包括微服務、應用、資源、檔案、監控、部署等,以及這些資訊的管理者和所有者。內容倉庫可以使用版本控制系統,比如 Git 或 SVN。
  • 監控儀表盤(monitoring dashboard):監控儀表盤是一個顯示軟體系統中各種資料和指標的介面,比如紀錄檔、錯誤率、響應時間等 。它可以幫助開發者瞭解系統執行狀況,並且能夠及時檢測並解決問題。
  • 檔案中心(documentation center):檔案中心提供了所有相關檔案,比如 API 參考檔案、使用者手冊、教學等。它可以幫助開發者學習和使用軟體系統,並且能夠保持檔案更新。
     

內部開發者門戶的特點

根據內部開發者門戶的組成部分及其功能,我們總結了以下幾個關鍵特點:
 

  • 可見性:內部開發者門戶可以提供對軟體生命週期的增強可見性,從設計到部署到監控。它可以顯示所有可用的軟體元件、資源、環境、工具和檔案,以及它們是如何連線的 。它還可以顯示每個元件和資源的狀態、健康狀況和效能 。
  • 可追溯性:內部開發者門戶可以提供對軟體開發和交付過程的可追溯性。它可以跟蹤並記錄在整個生命週期中發生的所有變化、事件和行為 。它還可以連結並關聯絡統的不同元素,比如程式碼提交、組態檔、紀錄檔、指標等 。
  • 可審計性:內部開發者門戶可以提供對軟體開發和交付過程的可審計性。它可以確保並強制遵守最佳實踐、標準和政策。還可以驗證每個元件和資源的質量、安全性和可靠性。
  • 可觀察性:內部開發者門戶可以提供對軟體開發和交付過程的可觀察性。它可以收集並分析來自各種來源的資料,比如紀錄檔、指標、追蹤等。它還可以視覺化並警報關鍵指標和異常。
  • 自助服務:內部開發者門戶可以為開發者提供自助服務能力。它可以讓開發者自己設定他們的基礎設施和依賴,而不依賴於手動流程或外部團隊。它還可以讓開發者使用持續交付流水線部署並更新他們自己的應用程式。
     

內部開發者門戶的優勢

通過上面的內容,我們總結出內部開發者門戶能夠幫助企業的軟體開發團隊獲得以下優勢:
 

  • 提高生產力。開發者們可以輕鬆且快速第找到他們所需要的資源,而無需再多個來源上搜尋或等待批准浪費時間。他們還可以使用預定義的模板和工作流來建立新微服務、設定環境、存取雲資源、執行資料工程操作等。
  • 增強共同作業。開發者可以與他們在團隊和專案中的同行分享最佳實踐、反饋、程式碼片段、檔案和指標。他們還可以快速找到現有服務和 API,以便重複使用或整合。
  • 提高質量。開發者可以遵循他們所做事情的最優路徑,確保他們遵守組織設定的標準、指南和政策。他們還可以利用與內部開發者門戶整合的自動化測試、監控和偵錯工具。
  • 降低風險。開發者可以通過使用內部開發者門戶的驗證輸入輸出來避免常見錯誤,例如設定錯誤、安全漏洞、資料丟失或合規違規。如果出了問題,開發者也可以輕鬆地恢復更改。
     

誰需要內部開發者門戶?

內部開發者門戶通過提供一系列工具和資源來最大限度地支援開發團隊,促進軟體開發過程。這樣看來內部開發者門戶確實能夠給企業軟體工程團隊帶來許多好處,但是不是每個企業都需要它呢?事實上,實施內部開發者門戶的決定應當基於組織的特定需求和目標。
 

例如,對於擁有大型開發團隊同時進行多個專案的組織,尤其是有複雜、分散式、微服務化的軟體系統企業,內部開發者門戶可以幫助簡化開發過程並提高效率。通過在中心位置提供工具、資源和資訊的便捷存取,內部開發者門戶可以為開發人員節省時間和精力。
 

相較而言,對於擁有較少開發人員或專案較簡單的較小企業組織,內部開發者門戶可能不會提供太多價值。在這些情況下,使用現有工具和流程可能比投資於客製化內部開發者門戶更有實際效率。
 

總 結

內部開發者門戶能夠解決分散式系統中的資訊化碎片問題,並有效提高開發者的自主性和效率。然而,打造一套內部開發者門戶是一個耗時且花費較高的過程,並不是所有企業都需要投資客製化內部開發者門戶,企業需要根據自身軟體發開的需求以及專案的複雜度綜合考量。