Azure Web App (二)使用部署槽切换部署环境代码

一,引言

前天咱们将到使用Azure的 Pass 服务 “Web App” 去部署咱们的.NET Core Web项目,也同时有介绍到如何在VS中配置登录中国区的Azure帐号,今天接着讲,咱们部署完咱们的Web服务,进行完测试后,确定是要发布到生产环境,可是咱们不可能再去建立一个相同的Web App,配置上生产环境的域名,配置上生产环境的数据库链接字符串等等,而 Azure 的 Web App是能够经过本身的一个叫 “Deployment slots(部署槽)”的功能进行切换。咱们来看一下微软给出的使用部署槽的优势,如下是微软的官方文档提到的优点html

将应用程序部署到非生产槽具备如下优势:web

  • 能够在分阶段部署槽中验证应用更改,并将其与生产槽交换。
  • 首先将应用部署到槽,而后将其交换到生产,这确保槽的全部实例都已准备好,而后交换到生产。 部署应用时,这样可避免停机。 流量重定向是无缝的,且不会因交换操做而删除任何请求。 当不须要预交换验证时,能够经过配置自动交换来自动化这整个工做流。
  • 交换后,具备之前分阶段应用的槽如今具备之前的生产应用。 若是交换到生产槽的更改与预期不一样,能够当即执行同一交换来收回“上一已知的良好站点”。

下面,咱们正式开始今天的分享。数据库

----------我是分割线----------post

Azure Web App 部署系列:测试

1,Azure Web App(一)发布你的Net Core Web 项目

二,正文

1,升级应用服务计划

  订价层为 “Free” 的Web App是没法使用 “Deployment slots” 的功能的,咱们须要进行将订价层升级到 “Standard” 或者 “premium”spa

下图中,咱们能够看到 Web App 的 “Deployment slots(部署槽)” 都是有本身的主机名的实力应用,你的应用和环境配置能够在两个部署槽位进行交换。设计

 点击 “Upgarte”,选择 “Production”=>"S1",能够看到 "Staging slots" 过渡槽这个功能3d

 

 点击 “Apply”,升级后,咱们继续跳转到 “CnBateWeb” 的 Web App,左侧菜单选择 “Deployment”=>"Deployment slots",目前只有一个默认槽位,而且状态是 “Running” 的htm

 

 

 点击 “Add Slot”,blog

 

 

 

 

 

 Name 输入 “IntegrationTesting”,克隆设置选择 “cnbateblogweb”,点击 “Apply”

 

 

 回到的咱们的代码中,咱们尝试去修改 Index 页面,在 Welcome 的后面追加 “IntegrationTesting”,咱们能够把它理解成,咱们的 web项目如今新增了一个功能,同时咱们须要进行集成测试,测试经过后,须要发布到生产环境中去。

 假如咱们在本地开发完成后,也进行了简单的测试,如今须要发布到云端,须要QA的集成测试,咱们选择刚刚建立好的 “IntegrationTesting”的槽位。进行发布。

 回到 Azure Portal 中,咱们建立的 "CnBateBloaWeb" 的 Web App,点击部署槽位刚刚建立的 “cnbateblogweb-IntegrationTesting” 的超链进行跳转

 

 

 选择左侧菜单 "Overview",,点击图中用红色方框圈起来的“Browse”,进行浏览,测试。

 

 

 bingo,咱们能够清楚的看到,"IntegrationTesting" 是咱们刚刚为了集成测试,添加的一个标识,做为咱们demo项目的 “假功能”

 

 假如咱们新发布的项目通过QA的集成测试经过后,咱们须要将这一整套的代码发布到咱们的生存环境中去,这个时候,咱们还像上一篇将的那样在VS中发布选择以前建立的名字叫 “CnBateBlogWeb” 的 Web App? No,No,No,此时,咱们已经将开发好的新功能的代码发布到新建立的 “cnbateblogweb-IntegrationTesting” 的部署槽里了,咱们只须要将部署槽里的两个槽位进行交换便可快速完成测试环境到生产环境的代码的切换,接下来,咱们进行交换 测试/生产 环境的部署槽。

回到 “Deployment Slot” 页面,点击 “Sswap” 进行交互。

 

 源 选择咱们集成环境的 “cnbateblogweb-IntegrationTesting”,目标 选择  “cnbateblogweb”,点击 “Swap”.

 

 在 Azure Portal 上这个过程须要等待差很少20多秒,可是其实,它们两个槽位以及进行了无停机的交换了,咱们进行拿着生产环境的域名进行访问,能够看到,咱们成功的将刚刚加的新功能发布到生产环境上了。

 bingo,咱们进行的分析到此也就完了。

三,总结

今天咱们演示了一下,如何在Web App中建立 “Deployment Slot”进行快速无停机部署新功能代码,也使用VS进行发布到建立的Web App中建立的新的部署槽位中,同时也引出了另一个问题,环境变量怎么切换,切换槽位后,生产环境的数据库链接字符串怎么办。下一篇文章,我会继续 部署槽,进行配置部署槽设置,同时在交换槽位的时候,测试环境/生产环境都可以准确的链接到对于的数据库

代码继续暂时不上传了,由于没有设计到其余设置,只是简单的修改了主页,下一篇讲解 配置槽设置 的时候再上传代码

做者:Allen 

版权:转载请在文章明显位置注明做者及出处。如发现错误,欢迎批评指正。

做者:Allen 版权:转载请在文章明显位置注明做者及出处。如发现错误,欢迎批评指正。
相关文章
相关标签/搜索