简介
假设你是一名软件工程师,为一家户外服装零售商工作。 你负责部署和更新这家零售商的在线店面,它是一个基于微服务的云原生 .NET 应用。
为了满足项目要求并增强团队的敏捷开发实践,你决定通过 GitHub Actions 和 Azure Pipelines 来比较持续集成和持续部署 (CI/CD)。 CI/CD 管道使用一系列自动化步骤,从生成环境到所有环境编译和部署应用。
因为当前 Web 具有一个微服务体系结构,并且每个微服务都独立部署,因此首先要为单个服务设置 CI/CD。
名为产品服务的 .NET Web API 支持网站的所有后端目录功能。 在本模块中,你将为产品服务实施 CI/CD 管道。
本模块将指导你完成以下步骤:
- GitHub Actions 向容器注册表进行身份验证。
- 安全地存储 GitHub Actions 所使用的敏感信息。
- 实现一个为微服务生成容器映像的操作。
- 修改并提交微服务代码以触发生成。
- 实现一个将更新的容器部署到 Azure Kubernetes 服务 (AKS) 群集的操作。
- 修改并提交 Helm 图表以触发部署。
- 将微服务恢复为旧部署。
你在本模块中会使用自己的 Azure 订阅来部署资源。 如果没有 Azure 订阅,请在开始之前创建一个免费帐户。
重要
为避免在 Azure 订阅中产生不必要的费用,请务必在完成本模块后删除 Azure 资源。
先决条件
- 具备 DevOps 实践的概念知识。
- 具备容器、Docker 和 AKS 的概念知识。
- 使用所有者权限访问 Azure 订阅。
- 有权访问 GitHub 帐户。
- 能够在 Visual Studio Code 或 GitHub Codespaces 中运行开发容器,按以下部分所述进行设置。
开发容器
本模块包含用来定义开发容器的配置文件。 使用开发容器可确保使用所需的工具预配置标准环境。
开发容器在两个环境中都可运行。 在开始之前,请按照以下链接之一中的步骤设置环境,包括安装 Docker 和必要的 Visual Studio Code 扩展。