持续部署到 Azure 上的 Dev/TestProd

Continuous deployment to Dev/TestProd on Azure

我有一个包含多个组件的项目:两个 SPA 客户端、一个 API、ElasticSearch 服务器、RabbitMQ 服务器、ThinkTecture Identity Server 等,我想将其部署到 Azure。所有代码都存储在多个存储库中的 Git(准确地说是 Bitbucket)中。

理想情况下,我希望能够部署某些分支,即一个部署到 test/staging 环境,另一个部署到生产环境。

是否有任何 samples/tutorials 描述完成此操作所需的步骤?

此致, 丹尼尔

让我们看看我是否可以提供一些有用的信息:

Azure App Service 将是您部署 SPA 客户端和 API Web 应用程序的绝佳平台。

Azure App Service 内置 continuous deployment support, included Bitbucket,可以构建和部署您的应用程序。并且支持广泛的语言(.Net、NodeJs、Go、Python、PHP、Java等等...)

Azre App Service 的另一个好处是我们有 slot feature, where you can setup CI with your staging slot, do testing there, since good then swap with your PROD deployment. If you have settings/configurations that specific to a slot, e.g different slot connect to different database, you can put them into Application Settings, once you create a site, from "https://portal.azure.com" -> "Navigate to your site" -> "All Setttings" -> "Application Settings",在应用设置部分,你可以指定您的插槽特定设置,例如数据库连接字符串,其中开发插槽仅使用测试数据库,而生产插槽使用真实数据库。

由于您使用的是 bitbucket,因此有一个 "Deploy to Azure" 附加组件,您可以在其中通过拉动部署代码 request/branch,便于在代码审查期间验证代码

还有一个 WebJob 功能,您可以在其中 运行 后台任务,利用您的站点计算能力。

最后但同样重要的是,要让您的应用程序在全球范围内跨区域可用,Azure Traffic Manager 将是一项很棒的服务,您可以在其中从 Azure 应用程序服务连接您的 Web 应用程序,并让流量管理器为您分发请求.


部署到 Bitbucket 中的 Azure 按钮:


更新 2016-02-05 PST

Azure App Service 还支持虚拟目录,您可以在其中将多个应用程序部署到一个站点中。 (https://azure.microsoft.com/en-us/documentation/articles/web-sites-configure/)

但是,如果您选择这样做,默认情况下持续部署只会为您部署一个应用程序并部署到您的 wwwroot。要启用持续部署以在一个站点中部署多个应用程序,您必须编写自己的部署脚本。 (https://github.com/projectkudu/kudu/wiki/Custom-Deployment-Script, http://blog.amitapple.com/post/38417491924/azurewebsitecustomdeploymentpart1)