Azure Stack Hub 市场全景——同步、下载与离线交付

未经同意,请勿转载!

作者 :徐火军(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 工作流

管理员侧的工作流:

  1. 订阅 Azure 市场内容(已连接场景)→ 在管理员门户的"市场管理"中浏览精选列表
  2. 下载内容 → 系统从 Azure 拉取市场项到本地
  3. 添加自定义内容 → 通过 PowerShell 或 .azpkg 上传
  4. 创建 Offer / Plan → 将市场项纳入治理
  5. 发布给租户 → 租户在门户中可见可用项

§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 更新阶段(重要)

市场项更新不是自动覆盖。更新流程:

  1. 管理员重新同步 ------ 从 Azure Marketplace 拉取新版
  2. 获得新版 ------ 本地 Repository 出现新版本号
  3. 管理员重新发布 ------ 在 Offer / Plan 中把新版本设为可用
  4. 租户选择 ------ 已有部署的租户可选择是否升级到新版本(由租户触发或维护窗口)

关键点 :本地 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 管理员门户:

  1. 登录管理员门户(https://adminmanagement.local.azurestack.external
  2. 进入"市场管理"(Marketplace Management)刀片
  3. 选择"从 Azure 添加"(Add from Azure)
  4. 在弹窗中浏览或搜索需要的市场项
  5. 选中后点击"下载"(Download)
  6. 等待下载完成(时长取决于项大小 + 网络带宽)
  7. 下载完成后会自动出现在"市场项"列表中
  8. 接下来可以创建 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的机器上:

  1. 配置 PowerShell + Az PowerShell 模块

  2. 下载市场联合工具(azs-2604 对应版本)

  3. 具有 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 连接的计算机后:

  1. 远程桌面(RDP)到 Azure Stack Hub 客户端 VM

  2. 将下载的文件复制到 Azure Stack Hub 环境

  3. 配置 PowerShell 环境指向 Azure Stack Hub:

    ArmEndpoint = "https://adminmanagement.local.azurestack.external" Add-AzEnvironment -Name "AzureStackAdmin" -ArmEndpoint ArmEndpoint
    Connect-AzAccount -EnvironmentName "AzureStackAdmin"

  4. 执行导入:

    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)

附录 A:参考链接

相关推荐
努力努力再努力wz2 小时前
【分布式系统与 RPC 框架系列】从单机瓶颈到远程调用:一文理解分布式架构与 RPC 原理
linux·网络·c++·分布式·网络协议·rpc·架构
童谣115 小时前
越华环保集团市级统筹申报数字化中台:政策校验与减排仿真一体化架构
数据库·架构
2601_9567436817 小时前
上海小程序开发公司技术路径全解:从架构选型到工程落地的核心判断
小程序·架构·开发经验·上海
JAVA面经实录91718 小时前
图解23种设计模式完整知识体系(Java后端面试完整版)
java·架构
AI_小站18 小时前
Loop Engineering又是啥?一文讲清企业Agent落地的四层工程进化论
java·人工智能·架构·prompt·大模型开发·智能体·大模型应用
l1t18 小时前
DeepSeek总结的DuckLake 架构深度剖析-2
数据库·架构
2601_9625029018 小时前
双工位蜡镶机控制系统工程实践:并行架构、视觉对齐与实时同步避坑指南
架构
论迹复利19 小时前
多平台移植 BTBLE Stack 的思路与踩坑实战——从 Ceva IP 到厂商适配层的迁移指南
嵌入式硬件·物联网·架构
代码不会写21 小时前
Apache Iceberg:架构原理、读写机制、性能优化与生态
性能优化·架构·apache·iceberg