ixCSP 店中店(二房東 / CSP-of-CSP)平台設計梳理
用戶上網租多區 GPU 算力切片,自用一部分、把剩下分租給別人;分租客可再自治管理組織/角色、選幣別、自訂收費,必要時再往下轉租。平台對整條鏈治理 + 持續分潤,並預留 OP 代操。
願景 問題 / 願景
把纏在一句話裡的需求拆成五條正交的軸——腦袋亂的根因是「店中店」單一需求同時踩到全部五軸。
1 五軸決策總表(已拍板)
使用者於 2026-07-02 逐一 sign-off。這些是設計方向決策,非能力宣稱。
| 軸 | 決定 | 現實對標 |
|---|---|---|
| 轉售層數 | 模型支援 n 層遞迴;上線 policy 預設 enforce 2 層(可調) | Azure CSP / AWS distributor 實務止於 ~2 層;無限遞迴 = reconciliation liability(Codex) |
| 幣別 | hybrid 平台單一 base 幣別(USD)= 帳本/結算 SSOT;各層在地幣別僅 display/collect;FX 由平台 policy 控制;依實體 region 分 currency zone | Stripe Connect 中央結算 + Azure CSP 在地開票 |
| 收費 | (c) 混合 平台批發折扣打底 + 對下游每筆抽 take-rate + markup 上限(×N) | Stripe application fee + Azure partner margin(受規則 bound) |
| 可見性 / 隔離 | (3) 黑箱 + 授權破例 結算所需匯總數字上線恆可見;明細 / 客戶身分需下線授權或平台 concierge 破例(顆粒+時效+稽核) | Azure GDAP(Granular Delegated Admin Privileges) |
| OP 代操 | 與「上線代管下線」共用同一套 delegated-access;不做兩套(actor 差別:平台 OP vs 上線 reseller) | GDAP 同機制 |
2 架構:五個關注點分離
五軸正交 → 分開設計即解耦。
ResellerAccount;可往下切配額(quota)ResellerAccount 自我遞迴(platform → reseller → sub-reseller → …)店中店核心 · 新• Org 樹:每個 reseller 內部 organization / project(部門 / 專案)
3 實體模型草圖
全 mock-first、API-shaped。粗體 = 後端目前不存在、需新建。
ResellerAccount— reseller 樹節點。parentId(自我遞迴)、depthPolicy(層數 cap)、隔離邊界。platform = root。Entitlement/ResourcePool— 一筆實體容量授予(region + SKU:NVL72/GB200/B200/RTX6000 + storage + network)給某 ResellerAccount;可 downward 切 quota。ScopeNode—platform | reseller(tenant) | organization | project;reseller 邊由 parent link 構成、org 為內部樹;downward-only 沿用並跨 reseller 邊。Role/RoleBinding— 既有 RBAC 工作(scope-aware、繼承鏈、TTL、deny-wins)。- 商業層:
CurrencyZone(region→結算幣別)、Ledger(USD SSOT)、WalletBalance(擴 per-currency)、PricingPolicy(wholesale discount + markup cap ×N)、TakeRate(每條 reseller 邊平台抽成 %)、FxSnapshot(immutable 匯率快照 + lock window + spread)、SettlementCycle、RevenueShare(沿鏈分潤)。 DelegatedAccessGrant— grantor(下線)→ grantee(上線 reseller 或 平台 OP)、granular permission subset、expiresAt、status、每次使用寫auditlog。- 可見性規則:上線對下線恆可見「roll-up 匯總」(客戶數 / 用量 / 應分潤額);「明細 / 客戶身分 / 角色」需
DelegatedAccessGrant才可見。
4 對現有 ix-csp-ui-real RBAC 的改動
- scope 模型:寫死 4 層 →
ResellerAccount可遞迴 + 內部 org 樹;downward-only 沿用但跨 reseller 邊。← 收掉 handoff 卡住的待拍板題(scope nest / 往下看邊界)。 - 新增商業層(後端全無):entitlement/quota、多幣別 wallet、pricing policy、take-rate、settlement / 分潤。
- 新增
DelegatedAccessGrant+ impersonation + 稽核。 - 可移植資產:
libs/feature/access-control(matrix / role-drawer / binding / audit / simulator / scope CRUD)、libs/data-access/.../rbac(authz 引擎 + RbacService mock)、impact map。
5 子專案路線圖
各自 spec → plan → 實作。SP-2 先做,其他都掛它上面。
Reseller 租戶模型 軸 ②⑤
遞迴租戶結構 + 隔離語意 + 可見性 (3)。地基,先做。
Entitlement / 配額 軸 ①→②
多區實體切片 → 可往下分配的 quota。
商業層 軸 ④
幣別 / pricing / take-rate / settlement / 分潤。最重,靠 SP-2 邊界。
RBAC 接 reseller 邊 + OP 角色 軸 ②③
接現有 access-control lib。
DelegatedAccessGrant / concierge 軸 ⑤
與 SP-2 可見性同機制。
6 外部產品對標(有來源)
「GPU 店中店」市場已有現成產品,可對標抄好的部分。
Microsoft Azure CSP
indirect provider→reseller→customer;partner/customer 幣別各由協議定、partner 自訂 margin、受規則 bound;實質 2-tier。
Stripe Connect
central balance + FX + multi-currency settlement(~18 幣)+ application fee + on-behalf-of。
Azure GDAP
顆粒化 + 時效 + 客戶同意 + 稽核。可見性 (3) 的直接範式。
AWS Solution Provider
AWS 對 partner 收費,下游 customer billing 多 partner 自理(非平台結算遞迴鏈)。
hosted.ai / Rafay / UpCloud
overcommit margin、WHMCS/Stripe 計費、白牌 portal、GPU PaaS for neoclouds。
7 誠實保留 / 風險(Codex premise challenge)
- 多層遞迴 over-build 風險:對 GPU cloud 有 margin 疊加、配額囤積、退款/發票/客服歸屬複雜;無大廠做無限遞迴。緩解 = 模型支援 n 層但上線卡 2 層,驗證商業需求再開深。
- 最大風險 = 鏈式義務的 FX / 退款錯配(終端付 JPY、子經銷欠 TWD、經銷欠 USD,兩週後退款遇匯率變動→誰吃虧)。緩解:centralized ledger + immutable FX snapshot + rate-lock + per-currency balance + reserve + negative-balance recovery + 法律條款界定 FX 風險歸屬。→ 這些必須在 SP-3 允許遞迴收費前先到位。
8 待業務給值的參數(可調 policy,非設計缺口)
.claude/plans/ixcsp-store-in-store-reseller-design.md · Codex + 市場研究 findings:docs/agent-handoff/agents/codex-reseller-currency-model-20260702.md對標來源:Azure CSP(learn.microsoft.com/partner-center)· Stripe Connect(docs.stripe.com/connect)· Rafay / hosted.ai / UpCloud。
延續:凍結原型
ixcsp-rbac-prototype spec v3 + 真整合 ix-csp-ui-real branch feat/rbac-access-control。內部機密 · 全為待實作設計,非既有產品能力。