跳至页脚内容
Iron Academy Logo
C# 应用程序
C# 应用程序

其他类别

Web 部署自动化 - GitHub 操作、Azure Web 应用程序和 Appsettings

Tim Corey
37m 05s

在当今快节奏的软件开发世界中,部署自动化已不仅仅是一种便利,而是一种必需。 更快的发布周期、更少的错误和最少的人工干预,这些压力促使开发和运营团队采用与版本控制、持续交付和 CI/CD 管道完美集成的自动化部署流程。

为了帮助开发人员掌握这种自动化,Tim Corey 在题为"Web 部署自动化 - GitHub Actions、Azure Web Apps 和 Appsettings" 的视频中介绍了一个实践指南。本文通过解释关键概念来解读他的方法,从而强调可靠的部署流程在开发和生产环境中的重要性。

为什么要自动部署?

Tim 首先将部署过程描述为应该始终自动化的过程。 他认为,这不仅是一种现代最佳实践,而且由于有了 GitHub Actions 和 Azure Web Apps 等现代部署自动化工具,这项任务变得出奇地简单和容易。这消除了手动部署、冗长设置或配置错误的需要,而手动工作往往会导致这些错误。

他明确指出,软件部署等任务的自动化可确保您每次推送新代码时,都能在完全自动化的工作流程中自动构建、测试和部署。

构建应用程序:Blazor Web 应用程序

在这部分教程中,Tim 演示了如何使用 Visual Studio 创建一个基本的 Blazor 应用程序。 他将通过选择项目类型、启用 HTTPS、选择 .NET 8 和配置呈现模式来进行讲解。 这里的目标不是构建一个复杂的应用程序,而是构建一个每次都能使用相同部署流程部署的简单项目。

这些早期步骤强调了在开发过程中考虑部署管道的重要性。 开发团队可以从一个简洁、可测试的应用程序开始,大大缩短日后的部署时间。

使用 Appsettings 进行本地配置

接下来,Tim 将展示如何使用模拟配置值设置 appsettings.json。 这对配置管理工具至关重要,有助于团队保持测试环境和生产环境的设置分离。

他解释说,通过将 IConfiguration 注入 Razor 组件,您可以轻松显示连接字符串和嵌套设置等值--这在云原生应用中是一种很好的做法,因为在云原生应用中,自动化流程依赖于干净的配置分离。

开发人员安全的本地秘密

在这里,Tim 介绍了 secrets.json,Visual Studio 的自动部署安全功能。 他解释说,这些秘密会覆盖应用程序的设置,但仍保留在开发人员机器的本地,从而保护了机密性,并最大限度地减少了将凭据泄漏到源代码控制中的机会。

本教程的这一部分强调了 devops 实践,这些实践可促进不同环境间的安全性和一致性,从而在不暴露敏感信息的情况下改进软件交付周期。

版本控制和 GitHub 集成

任何 CI/CD 系统最基础的部分之一就是可靠的版本控制。 Tim 使用 Visual Studio 中的 Git 集成来初始化一个仓库,并将源代码推送到 GitHub。 这为构建一个可以检测代码更改并自动启动部署流程的 CI/CD 管道奠定了基础。

他提到每次提交都会被跟踪,这大大有助于运营团队解决错误或部署新功能。 通过使用 GitHub Actions,自动部署过程既可追溯又透明。

配置 Azure Web 应用程序

Tim 来到 Azure 门户,演示如何提供免费的网络应用程序资源。 他创建了一个资源组,为其分配了一个名称,并选择了 .NET 8 和 Linux 等运行时设置--这是许多云本地应用程序的常见默认设置。

他指出,尽管您是以 "代码 "的形式进行部署,但 Azure 实际上是在容器内运行您的构建工件,从而有效地抽象了复杂性,同时提供了部署所需的工具。

了解免费层限制

对于小型部署项目,Azure 的免费计划是一个很好的起点。 Tim 解释说,虽然它限制了 CPU 的使用率并禁用了某些功能(如部署插槽),但它在开发、演示或暂存时非常适合。

这一解释加强了暂存环境在软件开发中的价值,使团队能够在接近生产的条件下进行测试,而不会产生成本。

通过部署中心设置 CI/CD.

然后,Tim 演示了 Azure 的部署中心,并选择 GitHub 作为集成源。 这说明了 CI/CD 模型的核心--通过持续集成将源代码控制与软件部署联系起来。

他选择了自己的 GitHub 仓库,设置了基本的身份验证,并生成了一个概述自动化管道的 YAML 文件。他指出了 YAML 中缩进的重要性,提醒大家即使是自动化部署设置也需要注意细节,以免出错。

解决身份验证设置问题

尝试部署时发现基本身份验证默认为禁用。 Tim 浏览了 Azure 设置以启用它,展示了现实世界中的部署自动化流程如何经常涉及处理其他服务和配置。

问题解决后,他返回部署中心,成功启动了自动化工作流程,证明这种方法一旦设置正确,只需很少的人工干预。

CI/CD 工作流执行

切换到 GitHub,Tim 看着工作流自动触发。 GitHub Actions 会构建应用程序、发布应用程序并将其部署到 Azure,所有这一切只需简单地推送到 repo。 这种持续部署方法有助于自动对代码进行错误测试,并完全减少手动部署。

结果如何? 加快发布周期,减少停机时间,在初始配置后尽量减少运营团队的参与。

使用 Azure 管理机密

现在,在生产环境中,Tim 演示了如何在 Azure 中设置环境变量以覆盖 appsettings.json,而无需接触源代码。

他解释了如何添加连接字符串和嵌套值,嵌套键使用双下划线 (__)。 这可以确保开发人员在不访问敏感数据的情况下维护代码--这也是 DevOps 的理想场景。

这种关注点的分离是部署自动化的最大优势之一:开发人员推送干净的代码,而管理员则安全地管理配置。

无需更改代码的动态配置

Tim 强调指出,在 Azure 中进行的更改可在重启后生效,无需手动重新编译或重新部署。 当需要在测试和生产环境中使用不同变量时,这一点尤为有用,可降低配置错误的可能性。

这样还能让开发团队在应用程序设置发生变化时仍能保持自动化,从而在不重写代码的情况下轻松支持多种部署环境。

总结:部署自动化的优势

视频结束时,Tim 强调了整个部署自动化过程--从编写代码到自动部署--大约只用了 30 分钟。 一旦掌握了窍门,不到 5 分钟就能完成。

他鼓励开发人员即使在小型项目中也要采用这些自动部署技术,认为这些技术可以简化软件交付、减少错误,并能更快地响应新功能或问题。

无论您使用的是 Azure、AWS 还是 Google Cloud,了解并采用部署自动化都为提高软件项目的可扩展性和安全性奠定了基础。

结论

Tim Corey 的视频为建立完全自动化的部署流程提供了清晰有效的路线图。 在 GitHub Actions 和 Azure Web Apps 等工具的帮助下,现代开发实践比以往任何时候都更容易实现应用程序的自动化部署,减少手动工作,并提高开发、测试和生产环境的可靠性。

Hero Worlddot related to Web 部署自动化 - GitHub 操作、Azure Web 应用程序和 Appsettings
Hero Affiliate related to Web 部署自动化 - GitHub 操作、Azure Web 应用程序和 Appsettings

分享您的所爱,赚取更多收入

您为使用 .NET、C#、Java、Python 或 Node.js 的开发人员创建内容吗?将您的专业知识转化为额外收入!

钢铁支援团队

我们每周 5 天,每天 24 小时在线。
聊天
电子邮件
打电话给我