部署
在你自己的基礎設施上執行 ObjectOS —— 開放的社群版映象或需許可證的企業版映象,同一個執行時、同一份配置契約,以及許可證額外帶來什麼。
ObjectOS 有兩個自管理版本,它們的部署方式相同。ObjectOS Community 是開源 的執行時映象;ObjectOS Enterprise 是需許可證的映象,可以作為 Enterprise Single-Node 執行在單節點上,也可以作為完整的企業版部署。兩者運行同一個執行時, 讀取同一份配置:一個數據庫、一個認證金鑰和一個加密金鑰。不同之處在於映象從哪裡 來、應用如何進入,以及許可證解鎖什麼。本節的每一頁都同時為兩者編寫一次,並以 企業版額外提供一節結尾,說明需許可證的映象能多做什麼。
兩個映象
| Community | Enterprise | |
|---|---|---|
| 映象 | ghcr.io/objectstack-ai/objectstack,公開 | 需許可證的企業版映象,來自私有映象倉庫;你的許可證附帶映象倉庫憑據 |
| 固定方式 | 確切的版本標籤(X.Y.Z),與映象內的 ObjectStack CLI 一致;在位元組不能變化的地方,還要固定它的摘要(原因) | 你的釋出說明中點名的映象摘要 |
| 架構 | linux/amd64 和 linux/arm64 | 僅 linux/amd64 |
| 應用如何到達 | 你用 os build 編譯出的 objectstack.json:掛載進去、複製進你自己的映象,或由 OS_ARTIFACT_URL 指定。空的執行時則改為從 Console 市場安裝應用。 | 三種執行形態之一:應用打包在映象中、一個已釋出的產物,或者一個與映象的企業外掛組合在一起的已釋出產物(見下文) |
| 必須設定的變數 | OS_DATABASE_URL、OS_AUTH_SECRET、OS_SECRET_KEY(映象已經設定了 OS_PORT=8080) | 同上,另加 OS_LICENSE_KEY 和一個經過考慮的 OS_CLOUD_URL |
| 可複製的配置 | 這些頁面上的示例 | 隨每個版本釋出的部署包 |
| 許可證解鎖什麼 | —— | 產品內 AI(AI Builder、"問你的資料")、AI 治理、叢集與高可用、一個部署上的多個組織、SCIM、物理隔離執行 |
版本對比給出了完整的矩陣。在 Community 上構建的應用 就是普通的 ObjectStack 後設資料,不做任何修改即可在 Enterprise 上執行。
每個部署都要決定三件事
| 決策 | 含義 |
|---|---|
| 執行哪些位元組 | 固定一個確切的映象。像 latest 這樣的滾動標籤可能在你不知情時被重新指向,確切的版本標籤在該版本被重新構建時也會如此;只有摘要不會。保留上一個版本:那就是回滾。 |
| 配置放在哪裡 | 放在映象和應用之外。資料庫 URL、金鑰和部署的身份都是在執行時注入的環境變數,絕不烘焙進映象。環境變數就是契約。 |
| 哪個資料庫 | 生產環境執行在 PostgreSQL 上。沒有 OS_DATABASE_URL 時,執行時會在其主目錄下寫一個 SQLite 檔案,這適合一臺持久的主機,但在容器的臨時檔案系統上會丟失資料。 |
應用如何進入
Community 映象不帶任何應用。你把 os build 編譯出的產物
dist/objectstack.json 交給它,有三種方式:
| 方式 | 做法 | 何時使用 |
|---|---|---|
| 掛載 | 把檔案掛載到 /srv/app/objectstack.json,映象預設在那裡查詢 | 你完全不想構建映象 |
| 複製進你自己的映象 | 一個 FROM 官方映象的兩階段 Dockerfile | 你每個版本釋出一個自包含的映象 |
| 按 URL 指定 | OS_ARTIFACT_URL,可選帶一個 #sha256= 完整性固定值 | 你希望升級應用就是一次環境變更加一次重啟 |
Docker 展示了全部三種方式。完全沒有產物時,執行時 會啟動一個空核心,應用從 Console 市場安裝。
指南
- Docker —— 執行映象、配置它、把它放到代理後面、升級它。
- Kubernetes —— 在編排器上運行同一個映象,以及需要保持的屬性。
- 物理隔離 —— 僅限企業版:物理隔離是一種許可證模式,以及會在啟動時被拒絕的組合。
沒有容器執行時的話,同一個產物可以在裝有 Node.js 22 的主機上通過 os start
執行 —— 參見在本地執行 ObjectOS Community。
企業版額外提供
另外兩個決策:許可證和雲端姿態
| 決策 | 含義 |
|---|---|
| 哪種許可證 | 許可證是正常路徑的一部分,而不是附加項。有些部署形態沒有許可證會拒絕啟動。 |
| 哪種雲端姿態 | 這個執行時是否與控制平面通訊。它與許可證模式耦合,不受支援的組合會在啟動時被拒絕,而不是悄悄降級。 |
實踐中這兩者是同一個決策,而選錯的後果是啟動失敗,而不是緩慢的洩漏。 物理隔離完整列出了受支援的組合 —— 即使你的站點是聯網 的也請讀一讀,因為正是那一頁解釋了這些組合為什麼是現在這樣。
部署包
你的版本會附帶一個部署包:一個 Compose 技術棧、每種受支援形態的環境模板, 以及一份 README,其中有適用於你的版本的確切命令 —— 包括映象倉庫引用、摘要和供應 鏈校驗步驟。
這些頁面承載的是決策 —— 為什麼用摘要、哪種形態用哪種許可證模式、多節點使 什麼成為必需、執行時會拒絕什麼。部署包承載的是你要複製的值。當兩者看起來 不一致時,以隨你的映象釋出的部署包為準:它與它所配置的執行時一同版本化。
三種執行形態
企業版映象可以用三種方式執行應用,而這個選擇會影響你能用什麼 —— 它不僅僅是 打包方式的問題。
| 形態 | 應用來自 | 何時使用 |
|---|---|---|
| 配置編寫 | 映象自帶的應用 —— 映象中編寫的後設資料,加上安裝進它的任何內容 | 單組織部署;Compose 技術棧配置的預設形態,也是不需要任何配置的形態。 |
| 產物固定 | 一個按 URL 指定的已釋出應用產物,在任何部署配置執行之前解析 | 你執行一個已釋出的應用,並希望升級應用就是一次環境變更加一次重啟,無需重建映象。注意,在這條路徑上部署的企業外掛不會載入。 |
| 組合 | 一個與本部署的企業外掛組合在一起的已釋出應用產物 | 多個組織共享一個數據庫。這是託管的單應用 SaaS 形態 —— 並且僅限物理隔離許可證,在啟動時強制執行。 |
每種形態在部署包中都有自己的環境模板。複製適用於你的形態的那一個,而不是改寫 另一個:這些模板的不同之處,正是決定姿態的那些值,而它們恰恰是執行時在提供任何 服務之前會檢查的值。