前天咱们将到使用Azure的 Pass 服务 “Web App” 去部署咱们的.NET Core Web项目,也同时有介绍到如何在VS中配置登录中国区的Azure帐号,今天接着讲,咱们部署完咱们的Web服务,进行完测试后,确定是要发布到生产环境,可是咱们不可能再去建立一个相同的Web App,配置上生产环境的域名,配置上生产环境的数据库链接字符串等等,而 Azure 的 Web App是能够经过本身的一个叫 “Deployment slots(部署槽)”的功能进行切换。咱们来看一下微软给出的使用部署槽的优势,如下是微软的官方文档提到的优点html
订价层为 “Free” 的Web App是没法使用 “Deployment slots” 的功能的,咱们须要进行将订价层升级到 “Standard” 或者 “premium”spa
下图中,咱们能够看到 Web App 的 “Deployment slots(部署槽)” 都是有本身的主机名的实力应用,你的应用和环境配置能够在两个部署槽位进行交换。设计
点击 “Apply”,升级后,咱们继续跳转到 “CnBateWeb” 的 Web App,左侧菜单选择 “Deployment”=>"Deployment slots",目前只有一个默认槽位,而且状态是 “Running” 的htm
回到的咱们的代码中,咱们尝试去修改 Index 页面,在 Welcome 的后面追加 “IntegrationTesting”,咱们能够把它理解成,咱们的 web项目如今新增了一个功能,同时咱们须要进行集成测试,测试经过后,须要发布到生产环境中去。
假如咱们在本地开发完成后,也进行了简单的测试,如今须要发布到云端,须要QA的集成测试,咱们选择刚刚建立好的 “IntegrationTesting”的槽位。进行发布。
假如咱们新发布的项目通过QA的集成测试经过后,咱们须要将这一整套的代码发布到咱们的生存环境中去,这个时候,咱们还像上一篇将的那样在VS中发布选择以前建立的名字叫 “CnBateBlogWeb” 的 Web App? No,No,No,此时,咱们已经将开发好的新功能的代码发布到新建立的 “cnbateblogweb-IntegrationTesting” 的部署槽里了,咱们只须要将部署槽里的两个槽位进行交换便可快速完成测试环境到生产环境的代码的切换,接下来,咱们进行交换 测试/生产 环境的部署槽。
源 选择咱们集成环境的 “cnbateblogweb-IntegrationTesting”,目标 选择 “cnbateblogweb”,点击 “Swap”.
在 Azure Portal 上这个过程须要等待差很少20多秒,可是其实,它们两个槽位以及进行了无停机的交换了,咱们进行拿着生产环境的域名进行访问,能够看到,咱们成功的将刚刚加的新功能发布到生产环境上了。
今天咱们演示了一下,如何在Web App中建立 “Deployment Slot”进行快速无停机部署新功能代码,也使用VS进行发布到建立的Web App中建立的新的部署槽位中,同时也引出了另一个问题,环境变量怎么切换,切换槽位后,生产环境的数据库链接字符串怎么办。下一篇文章,我会继续 部署槽,进行配置部署槽设置,同时在交换槽位的时候,测试环境/生产环境都可以准确的链接到对于的数据库
代码继续暂时不上传了,由于没有设计到其余设置,只是简单的修改了主页,下一篇讲解 配置槽设置 的时候再上传代码
做者:Allen
版权:转载请在文章明显位置注明做者及出处。如发现错误,欢迎批评指正。