解决方案管理自动化

已完成

在本模块中,您已经了解了如何借助解决方案轻松跟踪应用元素以及手动将其在不同位置之间来回移动。 现在,我们要深入探讨自动化如何通过应用程序生命周期管理 (ALM) 改进应用管理。 ALM 不仅仅用于创建应用,而是涵盖了从设置规则(如需求)、开发到保持顺利运行的所有相关操作。 与 Azure DevOps 或 GitHub 等其他实用工具一样,解决方案也在 ALM 策略中发挥着重要作用。

通常,项目的解决方案架构师要负责制定 ALM 计划,而精通 DevOps 的专业人员则负责设置自动化。 作为团队成员,您也要参与流程,负责使用所选工具管理任务并使用解决方案跟踪应用程序和流更改。 您负责的部分完成后,ALM 自动化会接着完成后续操作。 它会启动一系列操作,自动将更改从开发传递到测试,再传递到生产。 每个步骤都可能需要经过相关审批,确保一切正常。应用程序生命周期就像是一个永无止境的应用开发周期,包括规划、创建、测试、部署、运行、监视以及从整个过程中不断学习。

应用程序生命周期开发流程图。

所有操作均可手动执行,但自动化可确保每次操作执行的一致性。 执行手动操作的人员缺勤时仍然可以执行相关操作。 Azure DevOps 或 GitHub 等重点关注 DevOps 的工具提供自动化功能,但也提供工作项跟踪和源代理管理。

源代理管理和解决方案

Azure DevOps 和 GitHub 等工具都会提供源代码管理功能,相当于面向项目所有部分的超级版本跟踪器。 比如,您正在开发一个 Power App,后来进行了一些更改。 每次更改都像是在创建项目的新版本。 您还可以使用“工作项”记下所做更改,而这些注释可以链接到版本。 这不仅可以帮助团队记录执行更改的时间,还允许您撤消任何导致问题的更改。 因此,团队忙于制作新版本时,当前版本仍然可以使用。

源代码管理是项目的最终事实来源,因此在应用程序生命周期管理 (ALM) 中发挥着至关重要的作用。 即便开发环境遭遇崩溃,也无需担心。 您可以使用源代码管理中存储的信息重新构建。 从某种程度上讲,源代码管理使开发环境变得可以替代。 将内容发送到测试或生产时,实际发送的是源代码管理中的内容,而不仅仅是开发空间中的随机内容。

可是,我们在这里会遇到一个陷阱:从环境中导出解决方案时,很像是要将所有内容打包到一个大文件。 如果只将该文件放入源代码管理,它只能告知您,部分内容发生了改变,但不会准确说明各个部分中发生的更改。 因此,为改善效果和实用性,我们要在自动化流程中添加一个步骤。 这个步骤会从开发空间中获取解决方案,将其解包(就像打开打包好的手提箱),然后为各个部分创建单独的文件。 随后,这些单独的文件会进入源代码管理。 如此一来,您就可以详细跟踪所有更改了。 此外,它还允许您同时拥有多个沿用源代码管理中更改的开发环境,从而减少一个更改干扰另一个更改的概率。

使用 DevOps 工具实现自动化

自动化非常重要,因为自动化可以带来手动流程无法确保的一致性。 生成后,自动化可以按需求、计划或基于签入事件运行。 您可以使用很多工具实施自动化,但 Azure Pipelines 和 GitHub Actions 都内置 Microsoft Power Platform 任务和操作支持。

您可以对哪些对象实现自动化?

自动化仅运行任务或操作,因此可以实现自动化的范围非常广泛。 可认为自动化类似于 Power Automate 流,但更特定于处理应用管理和部署。 以下是 Power Platform 项目中可能使用的一些常见自动化:

  • 新建开发环境并从源代码管理安装解决方案

  • 从开发环境获取变更并更新源代码管理

  • 运行解决方案检查器识别质量问题

  • 预配和取消预配环境

  • 运行自动化测试,包括 Power Apps Test Studio 测试

  • 从源代码管理构建托管解决方案以便部署到下游环境

  • 部署到测试和生产等下游环境

自动化按每个项目的要求定制,但通常包括启动、生成和发布自动化。

显示部署的启动、生成和发布阶段的视觉对象。

处理使用自动化的项目时,请了解已实施的总体流程。 但构建自动化通常由重点关注 DevOps 的资源完成。

Power Platform Build Tools

Microsoft Power Platform Build Tools 如同是专为管理 Microsoft Power Platform 应用设计的工具箱。 其中的工具其实就是一系列实用操作,让您再也无需寻找特殊工具和编写复杂脚本来处理应用生命周期中的不同任务。 您可以逐一使用这些工具来执行特定操作(例如将应用引入新环境),也可以按顺序同时使用,以实现自动化操作。

目前,根据您是使用 Azure DevOps 还是 GitHub Actions 来实现自动化,这些操作的具体叫法可能会有所不同。 在 Azure DevOps 中,我们将这些操作称为“任务”,而在 GitHub Actions 中,我们将其称为“操作”。

以下是一些常见操作:

  • Power Platform 检查器 - 对解决方案运行静态分析,允许将问题添加到自动化以便尽早发现问题。

  • 导出解决方案 - 将解决方案从环境中导出为非托管、托管形式或同时导出两种形式。

  • 导入解决方案 - 将解决方案导入环境。

  • 解包解决方案 - 将压缩的解决方案文件分解为每个组件的单个文件,从而允许将其签入源代码管理。

  • 打包解决方案 - 将源代码管理中的解决方案打包到可以导入其他环境的 solution.zip 文件。

  • 设置解决方案版本 - 允许更新自动化中的版本号并实施一致的版本策略。

  • 创建、删除和复制环境 - 允许将环境管理自动化作为自动化的一部分。

为什么要在自动化上大费周章? 因为这种做法非常明智,可以帮助您确保应用构建流程一致且可靠。 如果团队还在手动完成所有工作,那么不妨探索一下如何实现自动化。 这不仅可以提升开发工作的一致性,还能帮助您优化应用,改善应用部署质量。