学习MSIX应用附加功能的特性与局限
短短几年内,MSIX应用附加功能已经发生了巨大变化。
随着微软更新其应用交付生态系统,应用附加功能已成为在Azure Virtual Desktop中应用部署的战略方向。这一转变使组织能够简化应用管理、降低基础架构复杂性,并将虚拟化应用交付扩展到混合云和云环境。
通过这些变化,IT团队可以在应用程序生命周期管理方面获得更大的灵活性和控制力。组织应评估应用附加功能的最新更新,以此为契机刷新其IT战略,并优化许可和基础架构成本。
微软应用虚拟化的近期变化
2023年4月,微软宣布App-V产品不再开发,并将于2026年终止支持。然而,在2024年11月,该公司宣布了以下变更:
- 之前关于App-V客户端终止支持的公告被撤销。
- App-V Sequencer的弃用被撤销。
- App-V Server仍将在原定日期终止支持。
- AVD中的应用附加功能现在将支持交付MSIX包和App-V包。
- 原始的MSIX应用附加功能将于2025年6月1日被弃用。
- 新的应用附加功能将包含来自第三方供应商的集成,支持通过与AVD Azure控制台集成的附加第三方软件进行包交付。
由于这些变化,App-V包的主要交付方式将是通过应用附加功能,因此仍在使用的组织可以继续在AVD中通过应用附加功能使用App-V。
什么是应用附加?
应用附加功能是一项向AVD虚拟机交付基于MSIX、App-V和AppX的应用程序的功能。App-V是一种虚拟化应用程序格式,而AppX主要是通用Windows平台应用程序的包装器。
MSIX,最简单的形式,是Windows应用程序的打包格式。与传统的Microsoft Installer格式相比,它提供了更新和改进的打包体验及生命周期管理。它还保留了当前应用程序包和安装文件的功能。此外,MSIX引入了用于打包和部署Win32、Windows Presentation Foundation和Windows Forms应用程序的新功能。
IT人员还可以将MSIX打包的应用程序配置在名为AppContainer的容器内运行。在此容器内,主应用程序进程及其子进程都在其中运行,使它们能够通过文件系统和注册表虚拟化实现隔离运行,类似于App-V所提供的功能。这使IT专业人员可以在同一台机器上运行同一应用程序的多个版本,如果需要读取或写入同一组文件或注册表,也不会引起任何冲突。
每个AppContainer应用程序都可以访问全局注册表。但是,它只写入其各自的虚拟注册表和应用程序数据目录。这确保了数据在应用程序卸载或重置时被删除。AppContainer应用程序的虚拟注册表和文件系统对同一主机上的其他应用程序保持不可访问。
应用附加功能在AVD中的工作原理
应用附加功能为其包定义使用一种独特的格式,与标准MSIX格式不同。这确保了应用程序在用户登录Windows VDI会话时能快速可用。具体来说,包格式是Windows磁盘分区或卷,它是远程挂载的,而不是复制到用户的虚拟机中然后再集成到环境中。
在交付标准MSIX包方面,应用附加功能并没有增加新的能力,只是在准备包供用户使用的速度方面有所提升。此外,微软设计此功能与AVD协同工作,以提供应用程序流式传输。
IT可以在任何主机池或会话主机上分配应用附加包,并将其分发到多个主机池。应用附加功能的好处之一是它现在支持两种常见的身份标识选项:Active Directory或Entra ID加入。这使得IT能够在不需要任何AD域控制器的情况下处理应用部署。
应用附加功能的工作原理是将应用程序映像存储在SMB版本3文件共享上,该共享在用户登录时挂载到每个会话主机上。这种设置在存储方面非常灵活,因此IT不受限于特定的存储类型。微软的建议是使用Azure Files,因为它与Microsoft Entra ID和AD域服务都兼容。
另一种选择是Azure NetApp Files,但它要求会话主机加入AD DS,因为它不支持Entra ID。
AVD中的每个主机都从文件共享挂载应用程序映像。这意味着每个主机都需要具有NTFS和共享权限才能从文件共享读取对象。
例如,如果管理员计划将AVD应用附加功能与Entra ID加入的设备一起使用,他们只需要为AVD和Azure资源管理器提供程序服务主体分配“读取器和数据访问”角色。
当计划为生产环境部署此功能时,IT必须采取以下措施:
- 确保文件共享与会话主机位于同一Azure区域。
- 如果使用Azure Files,请确保存储帐户也与会话主机位于同一区域。
- 将包含应用程序的磁盘映像从防病毒扫描中排除,因为它们只是只读的。
- 确保存储和网络结构能够提供足够的性能。
- 避免将同一文件共享用于FSLogix配置文件容器。
在VDI主机上集成MSIX应用程序的过程涉及三个步骤:挂载、暂存和注册。对于单用户操作系统,这些步骤会针对每个包单独执行。在多用户操作系统中,对于已为另一个用户添加的包,可能会省略挂载和暂存步骤。一旦应用程序被注册,它就会在与使用传统MSIX格式部署时相同的MSIX容器内运行。这种方法使应用程序能够像本地安装一样运行。
应用附加功能实施要求
MSIX支持其他Windows操作系统,包括Windows Server以及单会话和多会话配置的Windows 10和11。但是,应用附加功能特别需要Windows 10或11。
| 操作系统 | MSIX支持 | 应用附加支持 |
|---|---|---|
| Windows Server 2019 | 是 | 否 |
| Windows Server 2022 | 是 | 否 |
| Windows 10 和 11 单会话 | 是 | 是 |
| Windows 10 和 11 多会话 | 是 | 是 |
对于应用附加功能,IT可以使用新的复合映像文件系统、VHDX或虚拟硬盘作为磁盘映像,尽管微软不建议使用VHD。挂载和卸载CimFS映像也明显快于VHD和VHDX。此外,这些过程消耗的CPU和内存更少。微软特别建议,如果会话主机运行Windows 11,则对应用映像使用CimFS。然而,可用于CimFS的工具并不多。它还绕过了VHD/VHDX具有的256个字符路径限制,这通常会影响捆绑了Python发行版等应用程序。
在这三种格式中,MSIX文件在使用应用附加功能时都是未压缩存储的,这与原始MSIX包不同,原始包中的文件是压缩的。因此,平均而言,应用程序在存储它们的文件共享上所占用的存储空间是MSIX包的2.5倍。
然而,应用附加功能的优势之一是它不需要任何额外的基础设施,只需要存储。其他应用程序分层和虚拟化服务则有一些基础设施要求。
应用附加功能的未来
应用附加功能很可能成为向AVD部署应用程序的默认服务。应用附加功能支持App-V的消息使组织更容易推迟转换其现有App-V应用程序的工作,因为并非所有应用程序都可以直接转换为新的MSIX格式。
即使在Windows 11版本24H2发布后,由于MSIX格式的变化带来了更高的兼容性,一些组织仍然在旧应用程序上遇到困难。
这也是为什么微软开始允许第三方供应商在应用附加功能之上构建集成的原因。这有助于提高应用程序兼容性,同时也提供了更多的控制机制来更动态地处理应用程序分发。以下供应商现在能够与应用附加功能集成:
- Liquidware FlexApp。
- Numecent Cloudpager。
- Omnissa App Volumes。
使用第三方供应商的好处之一是支持非Azure平台以及能够在物理设备上运行。与传统的基于MSIX的应用程序相比,它们还提供更高的兼容性。另一个功能是支持应用程序分组。这使得例如两个给定的应用程序可以在它们自己的虚拟环境中交互,这对于具有某种形式集成的应用程序非常有用。
基于MSIX的应用程序还需要使用代码证书进行签名,证书可以来自受信任的证书颁发机构或自签名证书,并且必须受主机池信任。对于没有相同要求的第三方工具来说,这个过程要简单得多。
这些变化对组织意味着什么?
因为应用附加功能支持Entra ID并且不需要专用的基础设施,所以它为AVD提供了经济高效的应用交付方式。
随着微软仅在基于AVD的环境中支持App-V的策略,很明显,该公司希望推动现有的App-V客户也将他们的VDI工作负载迁移到Azure。虽然它提供的功能可能适用于许多组织,但其他组织有要求或复杂的应用程序列表,可能需要第三方工具。
这些发展表明微软打算使应用附加功能成为AVD中应用程序交付的标准,为组织提供可扩展的工作空间管理基础。
编者按: 本文最初发表于2024年,并于2025年更新以改善读者体验。