未经同意,请勿转载!
作者 :徐火军(Dell Principal Engineer) 基线 :参考 Azure Stack Hub
azs-2604文档体系;本文维护日期 2026 年 7 月 系列:上篇(运营视角)→ 下篇《Azure Stack Hub 市场解决方案------设计、发布与运营》(设计与发布视角)
§1 引言:为什么市场是 Azure Stack Hub 的"另一半产品力"
Azure Stack Hub 是微软面向混合云场景的集成系统(Integrated System)。在 OEM(戴尔、惠普、联想等)将 PowerEdge / ProLiant / ThinkSystem 等硬件与 Azure Stack Hub 软件预集成之后,客户拿到的不是一个空盒子,而是一台"出厂即可运营"的小型云。
但"出厂即可运营"不等于"出厂即可用"。Azure Stack Hub 操作系统镜像只是基础底盘;要让客户拿到 SQL Server、Web 应用、AI 推理、数据库、消息中间件等真正"开箱即用"的能力,必须有一个**市场(Marketplace)**作为交付通道。
市场(Marketplace)是微软推荐的标准软件分发渠道,也是 Azure Stack Hub 提供统一治理体验的官方交付入口。
需要明确的是,市场不是 Azure Stack Hub 上的唯一交付路径。Azure Stack Hub 同时支持多种受管理接口的导入与发布方式:
- 通过
Add-AzsGalleryItem导入自定义 Gallery Item - 通过管理员门户或 PowerShell 添加自定义 VM Image
- 通过 ARM Template 进行批量部署
- 通过 PowerShell 直接管理资源
- 通过 Azure Stack Hub Resource Provider 独立安装(如事件中心、物联网中心等 PaaS 服务)
对于企业内部镜像、自定义 Gallery Item 或资源提供程序,管理员仍可通过这些受支持的管理接口完成导入与发布。市场与这些路径并存,而不是互斥。
本篇是这个系列的上篇,专注于运营视角:
- Azure 市场与 Azure Stack Hub 市场的本质区别
- 市场同步机制的工作原理
- 已连接场景与离线场景下市场项的下载流程
- 市场下载对基础设施容量的影响
- 市场安全与供应链治理(企业客户重点关注)
下篇《设计、发布与运营》会从 ISV 视角切入,讲解 5 类市场解决方案(Resource Provider / Existing Solutions / Images / Extensions / ARM Template)的设计与发布流程。
§2 Azure 市场 vs Azure Stack Hub 市场
§2.1 Azure 市场:云端的"应用商店"
Azure 市场(Azure Marketplace)是微软运营的在线商店,提供经过认证的开源社区软件、开发人员服务和预先配置好的 Azure 资源。它面向全球 Azure 订阅者,由微软 + ISV 共同维护。
Azure 市场的特点:
- 完全在线交付 ------ 客户下单后几分钟内即可在 Azure 上部署资源
- 由 ISV 自主定价与计费 ------ 微软提供平台与结算通道
- 覆盖 100+ 类目 ------ 计算、网络、存储、AI、IoT、安全、DevOps 等
§2.2 Azure Stack Hub 市场:本地化的"资源集合"
Azure Stack Hub 市场是 Azure Stack Hub 上的"市场"组件。它不是 一个独立的网站,而是一个服务 + UI + 数据模型的组合,运行在 Azure Stack Hub 集群内部:
- 服务:Azure Stack Hub Marketplace Service(市场服务)
- UI:管理员门户的"市场"管理刀片 + 租户门户的"市场"购物体验
- 数据模型:Azure Stack Hub Marketplace Tenant Experience(租户体验层)
Azure Stack Hub 市场交付的对象包括:
- 虚拟机镜像(含 SQL Server、Windows Server、各类 Linux 发行版等)
- 虚拟机扩展(部署后配置、监控、自动化)
- 资源提供程序(如 Event Hubs、IoT Hub、SQL Resource Provider、App Service Resource Provider 等)
- 由 ISV 发布的预制解决方案(Existing Solutions)
§2.3 两个市场的核心差异
|--------|------------------------|-----------------------------------------------------|
| 维度 | Azure 市场 | Azure Stack Hub 市场 |
| 交付对象 | 全球 Azure 订阅者 | Azure Stack Hub 集成系统内的租户 |
| 内容来源 | 微软 + ISV 上传 | Azure 市场同步 + Azure Stack Hub 管理员自定义 |
| 同步机制 | 即时(在线) | 手动 / 定时同步(已连接);离线下载(联合工具) |
| 内容类型 | Azure 服务 + 多云镜像 + SaaS | Azure Stack Hub 兼容的镜像 + 扩展 + RP + Existing Solution |
| 计费 | Azure 订阅扣费 + ISV 自结算 | 由 Azure Stack Hub 管理员 / 套餐(Offer / Plan)控制 |
| 客户群 | 全球 | 单个 Azure Stack Hub 集成系统的租户 |
§2.4 订阅、套餐、访问控制
要使用 Azure Stack Hub 市场中的某项,租户必须先订阅一个能授予该资源访问权限的套餐。这是 Azure Stack Hub 公有云运营语义(Operating Model)的核心------与 Azure 的订阅模型相似但有差异:
- Offer(套餐):一组 Plan 与服务的集合,由云管理员创建
- Plan(计划):一组可订阅的服务 + 配额 + RBAC 角色
- Subscription(订阅):租户订阅某个 Plan 后获得的访问权
要访问某个市场项,路径是:云管理员创建包含该市场项的 Offer → 租户订阅该 Offer → 在租户门户的市场中看到该项 → 部署使用。
这一点在原始 PPT 中只占了一句话("用户必须订阅可向其授予对该项的访问权限的套餐"),但对企业架构师而言,这是把市场能力纳入 RBAC / 计费 / 配额治理体系的关键入口。
§3 市场的重要性:从"发现 → 部署 → 集成"的价值链
Azure Stack Hub 市场的核心价值可以归纳为四个环节:
§3.1 发现(Discovery)
第三方软件必须容易被找到 。Azure Stack Hub 市场提供了一个统一的搜索 / 分类 / 推荐 UI,避免客户在多个 ISV 站点之间跳转。
§3.2 部署(Deployment)
市场项是预配置的------客户点击"创建"后,系统会自动完成资源模板渲染、依赖检查、配额校验、计费登记等步骤。这大幅降低了"安装第三方软件"的认知与操作成本。
§3.3 集成(Integration)
市场项与 Azure Stack Hub 平台能力(ARM / 网络 / 存储 / 身份)原生集成------不是孤立的"装在 VM 里的软件"。这是市场相对于"独立软件安装包"的核心优势。
§3.4 功能补充(Extension)
应用市场补充了 Azure Stack Hub 平台本身不具备的能力------例如 ISV 的 AI 推理镜像、第三方备份软件、监控 SaaS 接入器、自动化运维工具等。
§3.5 企业视角:为什么 ISV 推荐走 Azure Stack Hub 市场
对于 ISV,Azure Stack Hub 市场是触达 Azure Stack Hub 客户的官方渠道。原因:
- 集成:与 Azure Stack Hub 平台集成(身份 / 计费 / 配额)
- 规模化:上架后所有 Azure Stack Hub 客户都可见
- 品牌:被微软背书(特别是参与了 Azure Stack Hub 认证计划的镜像)
对于企业客户,走市场意味着"开箱即用 + 平台集成 + 可治理"------这三点是 ISV 直销无法同时满足的。
§4 市场解决方案类型全景
Azure Stack Hub 市场中的内容按微软公开分类通常分为 4 种类型:Resource Providers、Existing Solutions、Images、Extensions。
需要注意的是,ARM Template 不是 Marketplace Item Type,而是 Azure Stack Hub 上的一种部署技术。Marketplace 中大量 Existing Solution 的底层实现都依赖 ARM Template------本系列下篇会专门展开。
§4.1 Resource Providers(资源提供程序)
通过 RP 模式提供的 PaaS 服务。微软官方在 Azure Stack Hub 上提供以下 RP(具体可用性以当期官方文档为准):
- Event Hubs Resource Provider(提供事件流服务)
- IoT Hub Resource Provider(提供物联网中心服务)
- SQL Resource Provider(提供 Database as a Service)
- App Service Resource Provider(提供应用托管服务)
RP 部署后,会以新的 ARM 资源类型呈现,租户可通过 Azure 资源管理器(ARM)模板或门户创建 / 管理。
§4.2 Existing Solutions(现有解决方案)
由 ISV 发布的预制解决方案------通常是 ARM Template、Gallery Item、VM Image、Extension 等多个组件的组合,实际内容由 ISV 定义。客户点击后会自动部署一整套资源,而不是单个 VM。
§4.3 Images(VM 镜像)
VM 部署时使用的操作系统镜像或预装软件镜像。例如:
- 各 Linux 发行版(Ubuntu、CentOS、Red Hat Enterprise Linux 等)
- Windows Server 各版本
- ISV 预装软件镜像(如 SQL Server on Windows Server)
- 客户自定义镜像(企业内部使用的标准镜像)
§4.4 Extensions(VM 扩展)
部署后配置和自动化 VM 的扩展组件。典型场景:
- 部署后软件安装(如 Custom Script Extension)
- 防病毒 / 恶意软件保护
- Docker 配置
- 监控 / 备份 / 配置管理 Agent
§4.5 4 种类型的对比
|--------------------|--------------------------------|-------------------|-----------------|
| 类型 | 适用场景 | 部署方式 | 责任方 |
| Resource Providers | 客户需要 PaaS 服务(事件流、IoT、数据库、应用托管) | 通过市场启用 RP + 创建资源 | 微软 + OEM 共同维护 |
| Existing Solutions | 客户需要"一整套"完整解决方案 | 点击部署 ARM 模板 | ISV 设计 + 支持 |
| Images | 客户需要预装 OS 或软件的镜像 | 创建 VM 时选择镜像 | 微软 / ISV / 客户自己 |
| Extensions | 客户需要部署后自动化 / 配置管理 | 创建 VM 时或 VM 创建后挂载 | 微软 / ISV |
§4.6 实战选型决策树
你需要 PaaS 服务吗?
- 是 → Resource Provider(§4.1)
- 否 → 进入下一步
你需要"装好即用"的完整方案吗?
- 是 → Existing Solutions(§4.2)
- 否 → 进入下一步
你只需要一个"装好 OS 或中间件的 VM"吗?
- 是 → Images(§4.3)
- 否 → 进入下一步
你需要在 VM 部署后自动执行配置 / 安装 / 监控吗?
- 是 → Extensions(§4.4)
- 否 → 重新评估需求,可能用错类型
§4.7 常见概念辨析:Gallery Item vs Marketplace Item vs Image
这是 Azure Stack Hub 上最容易混淆的三个概念:
|----------------------|--------------------------------------------------------------------------|
| 概念 | 关系 |
| Marketplace Item | Marketplace 中的内容(顶层概念) |
| └─ Gallery Item | Gallery Item 是管理员在 Marketplace 管理界面中看到和管理的内容对象,其通常对应一个 Marketplace Item。 |
| └─ VM Image | Marketplace 中"镜像类"项的实例;可直接用于创建 VM |
关键关系:
- Marketplace Item 是一个内容类型(Image / Extension / RP / Existing Solution)
- Gallery Item 是管理员运营视角 对 Marketplace Item 的引用(管理员通过 PowerShell
Get-AzsGalleryItem可见) - VM Image 是 Image 类 Marketplace Item 的实际产物(可在 VM 创建时引用)
三者是不同视角下的同一个对象,不是三个独立概念。
§5 市场同步机制
§5.1 三类角色
Azure Stack Hub 市场的运作涉及三类角色:
- 云管理员 ------ Azure Stack Hub 实例的运营负责人;订阅 Azure 市场内容、下载内容、添加自定义内容、发布给租户
- 最终用户(租户) ------ Azure Stack Hub 实例上的租户;通过租户门户从本地市场部署并使用资源
- ISV(独立软件供应商) ------ 设计 + 支持市场项;发布到 Azure 市场(继而同步到 Azure Stack Hub)或直接发布到 Azure Stack Hub 市场
§5.2 Azure Stack Hub Marketplace Service 架构
Azure Stack Hub Marketplace Service 是市场能力的服务端组件,运行在 Azure Stack Hub 集群内。它承担以下职责:
- 接收来自管理员门户 / PowerShell 的市场项注册请求
- 存储市场项元数据 + 下载内容
- 向租户门户提供浏览 / 搜索 / 部署体验
- 与 Azure Marketplace 同步(已连接场景)
- 与市场联合工具对接(离线场景)
§5.3 Marketplace Tenant Experience
这是市场项呈现给租户的 UI 层。在租户门户中,租户会看到:
- "市场"刀片(Marketplace Blade)
- 项的图标、名称、发布者、版本、描述
- 一键"创建"按钮(自动跳转到对应资源的创建向导)
关键点 :租户只能看到管理员在 Offer / Plan 中授权的市场项。这就是 §2.4 提到的 RBAC / 订阅链路。
重要补充 :即使管理员已经将市场项下载到本地 Repository,下载操作本身不会自动把项开放给租户 。管理员仍需通过创建或修改 Offer / Plan ,把该市场项纳入资源可见性和配额策略,租户才能在门户中看到并部署。
§5.4 Marketplace Administration 工作流
管理员侧的工作流:
- 订阅 Azure 市场内容(已连接场景)→ 在管理员门户的"市场管理"中浏览精选列表
- 下载内容 → 系统从 Azure 拉取市场项到本地
- 添加自定义内容 → 通过 PowerShell 或 .azpkg 上传
- 创建 Offer / Plan → 将市场项纳入治理
- 发布给租户 → 租户在门户中可见可用项
§5.5 Repository 双侧差异
Azure Stack Hub 市场涉及两个 Repository:
- Azure 侧 Repository ------ Azure 市场项的源头,由微软 + ISV 维护
- Azure Stack Hub 侧 Repository ------ 下载到本地的市场项副本,由云管理员控制
关键点 :本地 Repository 是 Azure 侧的子集 (精选列表 / 管理员主动下载)。Azure Stack Hub 不会 自动同步所有 Azure 市场项,也不会自动同步最新版本------这给气隙 / 合规场景提供了"可控同步"的能力。
§5.6 Repository 内容结构
Azure Stack Hub 侧的 Repository 由 Marketplace Service 维护,包含以下内容类型:
- Gallery Metadata ------ 市场项的展示元数据(图标、名称、描述、分类、版本等)
- Package Metadata ------ 部署时使用的模板元数据(ARM 模板 / RP 部署包等)
- Package Blob ------ 实际的内容二进制文件(VHD、扩展包、Gallery Package 文件等)
这三类内容共同构成了管理员可见的"市场项"对象。
§6 市场项生命周期
理解一个市场项在 Azure Stack Hub 上的完整生命周期,是企业 IT 团队规划运营节奏的关键。
Azure Marketplace(微软 + ISV 维护)
│
▼
Marketplace Syndication(管理员同步操作)
│
▼
Azure Stack Hub Repository(本地副本)
│
▼
Offer / Plan(管理员纳入治理)
│
▼
Tenant Marketplace(租户可见)
│
▼
Deployment(租户部署)
│
▼
Update / Retire(管理员或发布者触发)
§6.1 同步阶段
- Azure Marketplace 是内容源头
- Marketplace Syndication 是从 Azure 拉取内容到本地的过程(已连接 / 离线两种方式)
- 同步是管理员主动操作 ,不是自动发生
§6.2 发布阶段
- Offer / Plan 是市场项纳入治理的载体
- 同步到本地 Repository 的市场项默认不开放给租户,必须由管理员创建包含该项的 Offer / Plan
- 这一步是 RBAC + 计费 + 配额策略的边界
§6.3 部署阶段
- Tenant Marketplace 是租户在租户门户中看到的市场视图
- Deployment 是租户实际创建资源的过程
- 部署后市场项变成实例化的资源(VM / RP namespace / 已挂载的扩展等)
§6.4 更新阶段(重要)
市场项更新不是自动覆盖。更新流程:
- 管理员重新同步 ------ 从 Azure Marketplace 拉取新版
- 获得新版 ------ 本地 Repository 出现新版本号
- 管理员重新发布 ------ 在 Offer / Plan 中把新版本设为可用
- 租户选择 ------ 已有部署的租户可选择是否升级到新版本(由租户触发或维护窗口)
关键点 :本地 Repository 中新旧版本并存,管理员可以选择保留旧版、只发布新版、或同时发布。新版不会自动替换租户已部署的资源。
§6.5 Retire 阶段
市场项被发布者下架(Retire)后:
- Azure Marketplace 不再提供该版本
- 已同步到本地的旧版本可以保留(管理员控制)
- 管理员可选择从 Offer / Plan 中移除
- 租户已部署的资源不受影响(Retire 不删除已部署实例)
§7 市场项与 Resource Provider 的关系
对于涉及 PaaS 服务的部署,Marketplace 与 RP 的协同是企业 IT 团队容易忽视的环节。
Azure Marketplace
│
▼
Marketplace Item(RP 类型)
│
▼
RP 安装包(azpkg / gallery package)
│
▼
Resource Provider(部署后运行)
│
▼
ARM Resource Type(新类型呈现)
│
▼
Tenant(创建资源)
关键点:
- 市场项是 RP 的分发载体------下载市场项 = 拿到 RP 安装包
- 部署 RP 后,Azure Stack Hub 集群出现新的 ARM 资源类型 (如
Microsoft.EventHub/namespaces) - 租户通过这个新类型创建资源(不是通过市场项)
- RP 自身的生命周期(升级、扩容、删除)由 Azure Stack Hub 管理员管理
例如,部署 Event Hubs RP 后:
- 租户门户的"创建资源"中会出现"事件中心命名空间"选项
- 租户可通过 PowerShell 创建命名空间 + 事件中心
- 这与"下载 Event Hubs 市场项"是两个不同的操作------前者是创建资源实例,后者是部署 RP 本身
§8 已连接场景:从 Azure 下载市场项
§8.1 已连接场景的前置条件
要把市场项从 Azure 同步到 Azure Stack Hub,需要:
- Azure Stack Hub 实例已完成 Azure 注册,并能够访问 Azure Marketplace 服务
- 至少有一个有效的 Azure 订阅
- 管理员拥有 Azure Stack Hub Marketplace 管理员角色
- 已配置出站网络代理(如果 Azure Stack Hub 通过代理访问 Internet)
注:Azure Stack Hub 与 Azure 的连接是 Azure Registration(注册) 关系,与 Azure Local 的 Azure Arc 连接是不同机制。
§8.2 管理员门户下载流程
在 Azure Stack Hub 管理员门户:
- 登录管理员门户(
https://adminmanagement.local.azurestack.external) - 进入"市场管理"(Marketplace Management)刀片
- 选择"从 Azure 添加"(Add from Azure)
- 在弹窗中浏览或搜索需要的市场项
- 选中后点击"下载"(Download)
- 等待下载完成(时长取决于项大小 + 网络带宽)
- 下载完成后会自动出现在"市场项"列表中
- 接下来可以创建 Offer / Plan 把项发布给租户
§8.3 已连接场景的精选列表(Curated List)
微软为 Azure Stack Hub 提供了一份精选列表(Curated List)------这是经过预先测试、确认可在 Azure Stack Hub 上运行的市场项子集。
官方建议优先同步 Curated List 中经过验证的市场项 ;对于未列入精选列表的内容,应充分验证其兼容性后再引入生产环境 ------这是减少运行风险的推荐做法,不是微软的强制要求。
精选列表的内容随 Azure Stack Hub 版本演进变化------具体以当期文档为准。L0 版本事实:精选列表是"已测试通过"的运营安全参考。
§8.4 实战:典型下载项 + 验证
下载完成后,验证步骤:
# 查看本地市场项列表
Get-AzsGalleryItem | Select-Object Name, Publisher, Version
# 验证某个市场项的元数据
Get-AzsGalleryItem -Name "microsoft.custom-script-linux-arm" | Format-List
下载后:
- 该项会出现在管理员门户的"市场项"中
- 接下来需要创建 Offer / Plan 才能让租户看到
- 租户门户中可见后即可部署
§9 离线场景:市场联合工具
§9.1 为什么需要离线场景
Azure Stack Hub 的实际部署场景中,已连接不是默认状态。常见场景:
- 气隙环境(Air-Gapped) ------ 金融、军工、政府客户不允许 Azure Stack Hub 直连 Internet
- 部分连接 ------ 只能通过跳板机访问 Internet
- 合规要求 ------ 某些行业要求所有下载内容必须先离线验证
针对这些场景,微软提供了市场联合工具(Marketplace Syndication Tool) ------一个可在"可联网机器"上下载市场项、并把内容离线传输到 Azure Stack Hub 实例的工具。
§9.2 市场联合工具架构
工具分为两个阶段运行:
- 第 1 部分(联网机器):从 Azure 下载市场项到本地
- 第 2 部分(Azure Stack Hub 机器):将下载的文件发布到 Azure Stack Hub 市场
§9.3 第 1 部分:从市场项下载(联网机器)
在一台可以访问 Internet的机器上:
-
配置 PowerShell + Az PowerShell 模块
-
下载市场联合工具(azs-2604 对应版本)
-
以具有 Marketplace 下载权限的 Azure 订阅账户登录并执行下载脚本
登录到 Azure(需要 Azure 订阅账户具有 Marketplace 下载权限)
Connect-AzAccount
配置联合工具参数
AzureTenantId = "<你的 Azure 租户 ID>" AzureSubscriptionId = "<Azure 订阅 ID>"
$AzsEnvironment = "AzureStack"下载市场项
./MarketplaceSyndication.ps1
-AzureTenantId $AzureTenantId
-AzureSubscriptionId AzureSubscriptionId ` -AzsEnvironment AzsEnvironment `
-DownloadDestination "D:\downloadfolder"
注:实际工具命令以微软当期公开文档为准------以上为示意命令,参数名 / 路径可能因版本变化。
§9.4 第 2 部分:上传并发布到 Azure Stack Hub 市场
将下载内容传输到与 Azure Stack Hub 连接的计算机后:
-
远程桌面(RDP)到 Azure Stack Hub 客户端 VM
-
将下载的文件复制到 Azure Stack Hub 环境
-
配置 PowerShell 环境指向 Azure Stack Hub:
ArmEndpoint = "https://adminmanagement.local.azurestack.external" Add-AzEnvironment -Name "AzureStackAdmin" -ArmEndpoint ArmEndpoint
Connect-AzAccount -EnvironmentName "AzureStackAdmin" -
执行导入:
Import-AzsGalleryItem
-GalleryItemUri "D:\downloadfolder\microsoft.custom-script-linux-arm-2.0.3\microsoft.custom-script-linux-arm.azpkg"
-Verbose
§9.5 参考映像文件夹结构
下载内容按以下结构组织:
D:\downloadfolder\
├── microsoft.custom-script-linux-arm-2.0.3\
│ ├── microsoft.custom-script-linux-arm.azpkg
│ ├── manifest.json
│ └── ...(其他文件)
├── microsoft.sql-server-2019-on-windows-...
│ └── ...
└── ...
每个子文件夹是一个市场项 ,按产品 ID 命名(发布者.产品-版本)。子文件夹中包含:
.azpkg文件(Gallery Package 格式)manifest.json(元数据)- 镜像文件(如果是镜像类)
- 依赖包(如果有)
§9.6 离线模式实战命令 + 排错清单
常见排错:
|-------------------------------|------------------|------------------------------------------------|
| 错误现象 | 可能原因 | 建议排查 |
| 下载脚本失败(认证) | Azure 凭据过期或权限不足 | 重新 Connect-AzAccount;确认账户具有 Marketplace 下载权限 |
| 下载脚本失败(网络) | 代理配置问题 | 检查 $env:HTTPS_PROXY |
| Import-AzsGalleryItem 失败(404) | 文件路径错 | 检查 .azpkg 路径是否存在 |
| Import-AzsGalleryItem 失败(403) | 权限不足 | 确认当前账户是 Marketplace 管理员 |
| 导入成功但租户看不到 | 未创建 Offer / Plan | 在管理员门户创建 Offer 包含该市场项 |
§10 与 Azure Stack Hub 容量规划的关系
很多企业 IT 团队在规划 Azure Stack Hub 时只看计算 / 存储 / 网络,忽略市场下载对基础设施的消耗。本节从容量视角补齐这块。
§10.1 市场项下载对基础设施容量的消耗
|----------|------------------------------------------------|
| 消耗维度 | 影响 |
| 存储空间 | 每个市场项的镜像 / 扩展包在本地 Repository 中占用存储;持续累积 |
| 网络带宽 | 下载时占用 Azure Stack Hub 实例的出站带宽(已连接场景) |
| 下载时间 | 大镜像(如 Windows Server + SQL Server)可能耗时数十分钟到数小时 |
| 更新触发 | 镜像更新时(如 Windows Server 月度补丁)触发重复下载 |
§10.2 离线场景下 IT 团队的工作流成本
离线场景下,IT 团队要额外承担:
- 下载工作站 的硬件成本
- 下载 + 传输 + 校验 + 导入 的运维成本
- 审计记录 的合规成本
- 断点续传 的工程复杂度
§10.3 RP / Extension / Image 对基础设施的影响
- Image:占用存储空间;不影响运行时性能
- Extension:会占用一定的存储空间,并可能在 VM 生命周期中产生额外的配置和运维成本
- RP:消耗 RP 自身的资源配额(如 Event Hubs RP 的命名空间数限制)+ 部署时占用基础设施资源
L3 建议 :企业 IT 团队应在容量规划阶段为"市场下载"预留 10-15% 的存储冗余 (具体取决于市场项数量与更新频率),并把市场下载纳入变更窗口(避免业务高峰期下载大镜像)。
注:10-15% 是规划阶段的经验范围,不是微软硬要求。具体冗余比例应根据当地市场项数量、更新频率、存储介质类型决定。
§11 Marketplace 安全与供应链治理
企业客户在生产环境部署 Azure Stack Hub 时,市场供应链安全是必须纳入治理的环节。本节按企业架构师视角展开。
§11.1 数字签名与 Publisher 验证
Azure Stack Hub 市场项的来源分为两类:
- 微软官方项 ------ 由微软发布,含微软数字签名
- ISV 项 ------ 由独立软件供应商发布,含 Publisher 数字签名
企业 IT 团队应在导入市场项前:
- 验证 Publisher 身份(是否为可信供应商)
- 检查数字签名是否完整、未被篡改
§11.2 企业审批流程
建议把市场项引入纳入企业变更管理(Change Management)流程:
- 审批环节 ------ 谁可以批准下载 / 导入某个市场项
- 审批记录 ------ 下载时间、版本号、Publisher、用途
- 审批权限 ------ 仅授权人员可触发下载 / 导入操作
§11.3 离线 SHA256 校验
离线场景下,SHA256 校验是企业 IT 团队的关键控制点:
- 在下载工作站上计算每个市场项的 SHA256
- 把 SHA256 录入企业的"已知良好哈希"清单
- 在 Azure Stack Hub 侧导入前重新计算并比对哈希
- 哈希不一致 = 内容在传输过程中被篡改 = 拒绝导入
§11.4 恶意软件扫描
建议在导入前对市场项内容进行恶意软件扫描:
- 下载工作站的杀毒软件扫描整个
downloadfolder - 客户端 VM 在执行
Import-AzsGalleryItem前再次扫描 - 离线场景下,这是企业最后一道防线
§11.5 更新审批与回滚机制
市场项更新不是自动发生的(详见 §6.4)。建议建立:
- 更新审批 ------ 新版本发布到生产前需要变更管理委员会(Change Advisory Board)审批
- 灰度发布 ------ 先在小范围租户发布,观察稳定性后再扩大
- 回滚机制 ------ 保留旧版本以便出现问题时快速回滚(详见 §6.4 的版本共存机制)
§11.6 气隙环境治理优势
气隙 / 离线场景虽然增加运维复杂度,但对企业而言反而是供应链治理优势:
- 所有下载内容必须经过企业的本地校验(哈希、杀毒、审批)
- 不会被外部自动推送绕过企业治理
- 与微软的更新节奏解耦(企业自主选择升级窗口)
- 符合等保 / 金融 / 军工等行业的供应链合规要求
§12 结语:选型清单与下一篇预告
§12.1 一页纸选型清单
- 确认目标场景:已连接 / 部分连接 / 气隙
- 已连接场景:检查 Internet 出站 + Azure 订阅 + 管理员角色
- 离线场景:准备下载工作站 + 联合工具 + 传输介质
- 同步内容:优先选择精选列表中的市场项;非精选项应在充分验证兼容性后再引入
- RBAC:同步后仍需创建 Offer / Plan 把市场项纳入治理
- 容量:为市场下载预留存储冗余
- 验证:下载后用
Get-AzsGalleryItem检查 - 排错:按 §9.6 表对照常见错误
- 安全:审批 / 哈希校验 / 杀毒扫描 / 更新窗口管理
§12.2 下篇预告
下篇《Azure Stack Hub 市场解决方案------设计、发布与运营》会从 ISV / 架构师视角展开:
- 4 类市场解决方案(RP / Existing Solutions / Images / Extensions)的具体设计
- 平台镜像仓库(PIR)与来宾虚拟机制品库(GAR)的本质区别
- ARM 模板 + API 配置档案的实战
- Windows Server 镜像的 PAYG vs BYOL 选型
- 自定义市场项的发布(.azpkg + Add-AzsGalleryItem)