集中式產品整合

  • 專案主管:mesch@google.com
  • 領域:基礎架構、軟體供應商、MOS、開發人員

問題陳述

現有 SDK 支援後者;後者目前「不可能」。也就是說,它目前並未實際完成,理論上無法充分瞭解這個理論,也沒有妥善記錄,而且在實務中可能沒有實施這類理論所需的工具。

解決方案陳述式

建立「產品開發套件」(PDK),以及支援使用該套件的慣例、建議和基礎架構,並套用於為產品的多個存放區。

做為這個 PDK 的要素,我們建議:

  1. 如要建立一組工具,用來將所有版本 (Fuchia 與寵物) 的 Fuchsia 構件 (大部分為套件,外也是核心等等) 上傳至全球可定址存放區。

  2. 如要定義命名和中繼資料慣例,以便在建構、整合和部署位置的存放區位置參照這類構件,以及針對版本管理、建構參數等方面參照這類構件的參照,

  3. 使用上述名稱和中繼資料參照產品整合結果的方式,定義一種格式來描述產品整合範圍,以在全域整合之外表示產品設定。

  4. 要定義如何使用一系列工具,從這類產品整合說明中組合產品系統映像檔和 OTA 更新套件。

由於這是共享且全球通用的存放區,我們建議 MOS 使用 Fuchsia 所實作的 TUF。金鑰貢獻將使用命名慣例,以便處理套件中的整合問題。這個命名慣例應適用於在存放區之間共用二進位檔成果的其他方式,例如靜態 HTTP 伺服器或 CIPD。

這些工具將成為 SDK 的一部分。因此,PDK 不太需要建立獨立的套件,而是以新工具、新工具和現有工具做為補充 SDK 的具體方式。

以我們的第一個實質成果來說,我們提議使用從自家公開存放區到 MOS 的 PDK 來支援發布工作站產品。我們首先在樹狀結構存放區之外,建立「Hello World」產品,完成工作以便整合及發布。完成這項操作後,我們會將工作站重新合併到 Hello World 產品中。

依附元件

SWD

由 SWD 團隊開發的 Fuchsia 系統映像檔的新組譯工具,目前用於產品的樹組中目前的用途,並與 SDK 一起運送,供樹狀結構外的組裝使用。在 SDK 中取得這項工具後,我們會將其用於組合,並等到之後以全域整合中目前使用的現有工具進行原型設計為止。

行銷目標

為達成此目標,我們開發了上傳至 MOS 的工具。他們以新穎方式使用現有的 MOS API,並以新的規模執行 MOS 基礎架構。MOS 團隊致力支持我們,

工作站

工作站團隊致力將工作站從 Fuchsia 存放區移出,並使用 PDK 將產品整合至自己的存放區,並將產品釋出至 MOS。

風險與緩解措施

對現有客戶沒有直接幹擾的風險。所有現有程序都維持不變。我們會在新位置加入新程序,因為我們預期這些程序不會幹擾產品開發和發布。

就間接風險而言,我們建議將 MOS 用於高強度的新目的。這可能會公開 MOS 的資源調度問題,而這可能會幹擾現有客戶的持續支援版本。可能的原因是,我們提議以 MOS/TUF 為基礎的程序都不是關鍵,而且隨時都可以停止。