自动发布.NET Core Web应用
1 原因和目的
相信很多开发者都需要将自己的编写的应用进行编译并部署到服务器上,这个过程在个人或小型团队的项目中都是一个简单的事情。但是对于并行化开发而言,就需要通过工具来辅助这个过程。于是,我参考了一下技术中的。工作环境主要是Windows Server,而且目前环境没有Docker,我就考虑直接部署在中间件上,并通过和实现远程命令控制。
2 工作原理
通过Git实现软件版本控制,再通过负责CI的操作,通过实现文件同步传输。
2.1 图解

2.2 主要演示
3 部署服务
3.1 模拟环境
我的环境是i7(6C12T),内存 16G的windows 10,通过VMware Workstation 15虚拟环境:
一台Windows 10(1C2T,2G)
一台CentOS 7(2C2T, 8G)
一台Windows Server 2012 R2(2C2T, 8G)
3.2 安装软件
3.3 模拟试验
3.3.1 实现对Windows Server远程控制,自动化部署IIS服务。
3.3.2 实现对Linux远程控制,自动化部署Nginx服务。

参考微软官方的原理图,可以发现Nginx的作用是反向代理,主要还是依赖dotnet自带的Kestrel。IIS不愧是微软亲生的。
注意:
由于C#是一个编译型语言,对dll存在文件读写锁,必须通过停止服务来关闭。
本文未涉及计算机安全的内容,请读者结合自身项目的实际环境,对身份验证和数据加密进行深入研究。
服务器自带防火墙,所以对于端口都需要结合需要进行配置,方便网络共享。
4 总结
自动化部署的方式有很多种。DevOps工程师一般都采纳虚拟化容器的方式打包服务,并通过Kubernetes进行分布式分发,为开发者提供良好的生产环境和管理运维环境。Jenkins软件的功能很强大,但是我这里只用了几个简单的功能。建议有兴趣的读者,继续深入探索Jenkins的全部奥秘。虽然微软的Powershell支持Linux,但是我比较习惯bash语法和Python语言。读者也可以结合自身擅长使用Node.js或Go等其他开发语言来制作脚本或工具。