摘要優先版本控制

按內容雜湊不可變發行身分

發行是在建立時解決的OCI開放容器計畫 — 容器映像格式和登錄中心的業界標準 摘要捆綁。標籤是人類可讀的別名;摘要是加密真理。

這對您的業務意味著什麼

保證測試內容與部署內容完全一致——逐位元組對應。不可變內容雜湊消除標籤漂移,為稽核員提供防篡改的部署驗證。

為什麼要採用摘要優先?

可變標籤會造成模糊性。同一個標籤隨時間可能指向不同的內容。Digest-first基於不可變內容雜湊(SHA-256摘要)而非可變標籤的發行識別——確保逐位元組一致的部署 版本控制消除了這種不確定性。

不可變身分

SHA-256 摘要確保升級的產出物與掃描的產出物位元組相同,並且

篡改檢測

對產出物的任何修改都會更改其摘要。拉動時間不匹配 = 部署失敗。篡改是不可能隱藏的。

稽核追蹤

通過連結掃描、核准和部署的加密證明,準確了解哪個產出物部署在何處、何時以及為何。

有意義的回滾

回滾返回到精確的已知良好摘要,而不是“無論什麼:到目前為止的最新點”。保證相同位元組。

發行結構

Stella 中的版本捆綁了多個元件,每個元件均由其 OCI開放容器計畫 — 容器映像格式和登錄中心的業界標準 摘要識別。該版本本身俱有便於人類閱讀的語義版本。

示例發行包

Release: myapp-v2.3.1

元件:

api: sha256:abc123...

worker: sha256:def456...

frontend: sha256:789abc...

從CLI

終端
$ stella release show myapp-v2.3.1 --json

標記到摘要解析

當您建立版本時,Stella 立即將所有標籤解析為其當前摘要。從那一刻起,發行就不再可變。

  • 像 :v2.3.1 這樣的標籤在建立時解析為 sha256:abc123...
  • 如果有人將新映像推送到同一標籤,您的發行不受影響
  • 登錄庫查詢始終使用 @sha256:digest 語法 — 無標記重新解析

不變性保證

建立版本後,其摘要集就無法更改。每次都會將完全相同的位元組部署到每個環境。

產生的產出物

每個部署都會產生不可變的產出物,從而實現可重複性、審核和回滾。

compose.stella.lock.yml

Docker Compose文件,其中所有映像引用都固定到特定摘要。包括用於可追溯性的 Stella 元資料標籤。

image: registry.example.com/myapp/api@sha256:abc123...

labels:

stella.release.id: "rel-uuid"

stella.digest: "sha256:abc123..."

stella.version.json

放置在部署目標上的 JSON 元資料文件,指示當前版本、元件、部署策略,以及用於回滾的先前版本。

"release": { "name": "myapp-v2.3.1" }

"deployment": { "strategy": "rolling" }

"previous": { "digest": "sha256:789..." }

"signature": "base64-encoded-signature"

證據綁定

每個版本都將安全證據與正在部署的確切摘要綁定在一起。證據通過推進隨著發行而傳播。

證據欄位內容
sbomDigest為此摘要產生的 SBOM軟體物料清單 - 軟體中所有套件和相依性的完整列表 的 SHA-256
scanVerdict帶有證據參考的策略評估的通過/失敗結果
reachabilityProof此摘要的簽名可達性圖的 CAS URI
policyHash用於評估的策略版本的雜湊

確定性重播:給定相同的版本和策略雜湊,重新評估會產生位相同的判決。稽核人員可以在幾個月後驗證決策。

準備不可變發行身分?

安裝 Stella Ops 並通過具有完整證據綁定的內容雜湊開始版本控製版本。