通过


使用 GitHub Copilot 现代化代理准备基础结构和部署应用程序

GitHub Copilot 现代化代理支持基础结构预配、容器化和部署。 这些功能遵循相同的 计划创建→ 整个代理中使用的计划执行模型。

工作流由两个阶段组成:

  1. 基础结构准备:生成和预配 Azure 基础结构。
  2. 容器化和部署:容器化和部署应用程序。

注释

这两个阶段是独立的。 可以一起运行它们,也可以单独使用每个阶段。 例如,如果已预配环境,请跳过基础结构准备,或者立即准备基础结构,稍后再部署。

先决条件

  • Azure 订阅:用于预配基础设施的有效 Azure 订阅。
  • 现代化 CLI:按照 快速入门 安装并进行身份验证。

阶段 1:基础结构准备

新式化代理根据所提供的输入创建一个计划来预配 Azure 基础结构。 此功能包括设计专为应用程序定制的 Azure 登陆区域 ,包括网络、标识、治理和安全基础。

输入

代理可以使用各种输入来通知基础结构计划:

  • 应用程序源代码:用于确定技术堆栈、依赖项和资源要求的代码库分析。
  • 评估报告:来自 modernize assess、Azure Migrate 或其他迁移和评估工具的报告。
  • 体系结构关系图:存储库中的预迁移体系结构关系图或设计文档。
  • 合规性和安全要求:组织策略、安全标准或登陆区域准则,以存储库中的文档或提示中的自然语言提供。

创建基础结构计划

使用 modernize plan create 提示说明您的基础设施需求:

modernize plan create "help create azure infrastructure for my app" --plan-name infra-setup

代理生成一个计划,其中包含建议的 Azure 体系结构和要预配的详细资源列表。 默认情况下,该计划涵盖 IaC 文件生成和资源预配。 您可以通过提示请求仅生成 IaC 文件。

小窍门

在提示中组合不同的输入和首选项。 例如:

  • "create an Azure landing zone tailored to my application's architecture and requirements"
  • "create azure infrastructure based on the assessment report, following our compliance policies in docs/security-requirements.md"
  • "generate Bicep files for the target architecture in the design doc, don't provision yet"
  • "provision azure resources based on the architecture diagram and assessment findings"

查看计划

在执行之前查看输出文件:

  • 计划文件.github/modernize/infra-setup/plan.md):基础结构策略和建议的体系结构。
  • 任务列表.github/modernize/infra-setup/tasks.json):代理执行的特定任务。

可以在执行之前编辑这两个文件来调整资源配置或修改方法。

执行基础结构计划

执行计划:

modernize plan execute --plan-name infra-setup

验证基础结构

查看生成的基础结构代码,并通过 Azure 门户或 Azure CLI 确认 Azure 资源:

git status
git diff main

阶段 2:容器化和部署

使用第二个计划来容器化应用程序并部署它。

注释

此阶段需要已迁移或升级的应用程序源代码。 在继续容器化和部署之前完成代码现代化。

创建部署计划

modernize plan create "containerize and deploy my app to azure, subscription: <sub-id>, resource group: <rg-name>" --plan-name deploy

可以容器化和部署在一起,或者使用单个计划单独处理它们。

  • 容器化:为项目生成 Dockerfile 并验证容器映像生成。
  • 部署:基于目标 Azure 托管服务创建所有必需的配置文件和清单,部署应用程序,并生成可重用的部署脚本供将来使用。

小窍门

自定义提示以满足你的需求:

  • "containerize my app and create dockerfile":仅容器化,无需部署。
  • "deploy my app to the AKS cluster in subscription: <sub-id>, resource group: <rg-name>":部署已容器化的应用程序。

查看计划

查看生成的计划文件:

  • 计划文件.github/modernize/deploy/plan.md):容器化和部署策略。
  • 任务列表.github/modernize/deploy/tasks.json):特定的部署任务。

执行部署计划

modernize plan execute --plan-name deploy

验证部署

  1. 查看代码更改:检查生成的 Dockerfile、部署清单和配置更改。

    git status
    git diff main
    
  2. 验证正在运行的应用程序:通过目标托管服务提供的 URL 访问已部署的应用程序。

使用交互式模式

还可以通过交互式 TUI 执行这两个阶段,方法是从 modernize 菜单中选择“ 创建现代化计划 ”。

后续步骤