AspNetDeploy 2024 第一部分:演示





5.00/5 (1投票)
ASP.NET 应用的无代码开源 CI+CD
引言
不知为何,在2024年,我们仍然缺乏一个能够从头到尾处理ASP.NET 的CI+CD的开源工具。像Jenkins这样的工具过于通用,更像是一组逐个调用的命令行语句,根本不知道自己在处理什么。
在这篇文章中,我想分享我们内部使用的工具AspNetDeploy
。
背景
一切始于2014年,我厌倦了为了完成像构建解决方案和将WebApp部署到测试和生产环境这样简单的任务而不得不使用多个工具。十年后的2024年,我仍然需要手动编写msbuild
参数,这真是不可思议!
想法
我的工具将
- 获取源代码并通过解析解决方案和项目文件来查看其内部结构
- 自行确定如何打包和构建项目
- 跨环境及其分配的机器分发和配置包
听起来很简单。
如果您属于以下情况,此项目适合您:
- 您是一家关心云成本的中小型公司
- 您的应用运行在Windows + IIS的裸机VPS上
- 您的技术栈是ASP.NET/Core、C#、MSSQL
步骤1:源代码
只需指定存储库URL、所需分支和凭据,AspNetDeploy
就会获取源代码并解析解决方案。您会立即看到与构建、测试和发布应用程序相关的项目。
步骤2:构建、打包和捆绑
项目被组合成捆绑包,以便作为一个整体操作进行部署。简单的设置包括 Web 项目部署步骤和配置步骤。在这里,我们指定
- 使用哪个项目以及它应该位于目标机器上的哪个位置
- IIS 绑定
- 配置值
- 在哪里执行每个步骤,可以是具有特定角色的机器,例如WEB、DB、CDN、测试代理等。
我们使用变量,这些变量的值在一个环境(测试、暂存、生产……)或机器之间有所不同。
无需构建路径,无需繁琐的设置。AspNetDeploy
知道如何处理WebApp
,如何恢复包,如何进行构建,如何在发布模式下打包,打包哪些文件,如何更新IIS站点和池等。
您只需在构建机器上安装VS2022社区版。
步骤3:部署
AspNetDeploy
使用安装在每台机器上的部署代理。然后将机器分配给具有特定角色的环境之一。这就是我们知道在哪里部署WebApp
以及在哪里部署数据库的方式。
环境一个接一个地链接,**测试** -> **暂存** -> **预发布** -> **生产**
您可以根据需要创建任意多个环境。
当需要将捆绑包推送到环境时,将执行部署步骤。如果发生部署问题,当前事务将回滚到发布之前的状态。您只需要看着进度条,喝杯咖啡即可。
步骤4:将捆绑包提升到生产环境
您很可能有多个环境用于测试、最终确定更改和客户。
这就是您的开发团队、测试团队和SRE团队通过批准并将包提升到生产环境进行协作的地方。
对于此演示,我们设置了测试和生产环境,并分配了三台机器。
测试人员批准包,SRE 启用发布,就完成了!
这就是您如何在没有配置噩梦的情况下构建、测试和将源代码发布给客户的方式。🚀
尽管AspNetDeploy
开始于十年前,并且有几年时间根本没有使用,但我仍然很高兴地发现它在最新的NET8、MSSQL和Win11上只需少量调整即可开箱即用。🎉
关注点
我很乐意与任何愿意尝试将其AspNetDeploy
用于其CD管道的用户沟通!
历史
- 2024年2月18日:发布文章
- 2015年文章