遠端基礎設施
部署明確的 ait-server 與 ait-runner 邊界,用於遠端權威、異地恢復和儲存庫自有的 CI。
適用對象: 維運
需要了再開遠端權威#
常規的本地工作流程不需要服務端。遠端基礎設施帶來的是三項相互獨立的 能力,前提是它們真能解決具體問題:
- 透過共享、持久的工作流程權威做遠端管理;
- 把已記錄的 Snapshot 和 Line 狀態異地儲存下來,用於恢復;以及
- 透過帶型別的 Worker Job 執行儲存庫自己的 CI。
它同時也把認證、TLS、網路暴露面、資料根備份、升級和相容性這些責任 壓到維運身上。完整的資料流、保護邊界和恢復步驟,讀 `ait-server`:遠端權威與恢復。
元件邊界#
ait-server擁有儲存庫登錄檔、共享的工作流程狀態、策略、證據和 Worker Job 佇列。ait-runner認領相容的帶型別 job,物化出確切的 Snapshot 內容, 執行儲存庫宣告的 CI 入口,傳回有界的結果。
runner 不會變成儲存庫權威,也不會替你挑某種語言專屬的建置系統。
在本地試用 1.1.1 服務端#
除非已經有一條經過評審的安全入口,否則把評估用的容器綁到 loopback。
docker network create ait-native
docker volume create ait-native-data
docker run --detach \
--name ait-server \
--network ait-native \
--publish 127.0.0.1:8088:8088 \
--restart unless-stopped \
--volume ait-native-data:/var/lib/ait \
ghcr.io/weita2026/ait-server:1.1.1
curl --fail http://127.0.0.1:8088/healthz公開的容器索引覆蓋 Linux amd64 和 arm64。
註冊並設定儲存庫#
本地儲存庫還沒有數字 Repository 權威時,remote add 會註冊一個,然後 把這個 remote 存下來。如果已經配了儲存庫索引,它就去核驗那個確切的 權威,而不是再分配一個。
ait remote add origin <server-url> --default
ait remote list --json
ait config show --json
ait repo show --remote origin --json別把別的儲存庫的索引抄過來。這個索引是遠端權威路由的一部分。光註冊 不會傳任何 Snapshot;要做出一份可恢復的異地副本,得走設定好的遠端 工作流程,或者明確執行一次 ait push。
Runner 契約#
runner 接收某個已註冊儲存庫的版本相容 job,執行它確切的 ci/run.sh 或 ci/run.ps1 入口。原始碼根目錄、嘗試目錄、worker 身份和儲存庫索引 都是維運自己選的值。
嘗試用的儲存要隔開,投遞失敗要盯著,終態結果之後還得確認嘗試目錄 自己那份資料已經清乾淨。
專門的 `ait-runner`:原生 CI 執行面 一章,展開講了 1.1.1 的確切命令、Worker Job 生命週期、帶型別的契約、 物化上限、租約、證據、部署和排查。
就緒與收尾#
遠端工作會發布一個選定的 Patchset,並在 Task 最終收尾之前記錄下 CI、attestation、評審和策略這幾類完成的證據。
ait workflow ready <change-id> --apply
ait workflow finish <change-id> --apply某道關卡還沒過時,就緒與 finish 命令會報出確切的下一步動作。選定的遠端 Patchset 已經就緒時,也可以走設定好的 Task 級入口 ait task finish <task-or-change-id>。
恢復這件事是明確的#
ait-server 只能作為送達過它的那部分狀態的恢復源。髒檔案、未跟蹤 檔案以及其他沒被記錄下來的工作區檔案,都在這條邊界之外;而且一臺 服務端並不提供自動故障切換。把確切的 Repository 索引留在恢復清單 裡,單獨保護好服務端資料根,並按 `ait-server` 那一章裡帶版本的 恢復流程演練一遍。