将单页应用程序从appveyor部署到azure

时间:2015-10-20 14:35:21

标签: azure continuous-deployment kudu appveyor

我正在试图弄清楚如何将单个页面应用程序从appveyor连续部署到azure网站。我有点受约束,因为我无法直接访问azure,所以我在联系管理员之前试图找出尽可能多的细节,但是appveyor / azure文档给我留下了一些问题。

我的目标:

  1. 构建后部署静态网站,或者在成功构建后触发azure进行部署。该应用程序是用typescript编写的,带有angular和一堆其他依赖项,这些依赖项被编译并捆绑到一个静态站点中。
  2. 希望最终用户知道正在进行部署,因此任何增量复制到实时环境都是不合适的。
  3. 想要检查派生文件或构建到repo中。
  4. 我目前有一个构建系统,它将静态站点捆绑在一个zip存档中。所以我的问题是:

    1. 使用WebDeploy提供程序是否符合我的目标?如果我将zip存档部署为工件,是否会在部署期间出现停机时间?
    2. 还有其他方法可以更好地运作吗?
    3. 有没有办法用azure自动部署来做到这一点?例如,在成功构建后触发azure进行部署。如果是这样,kudu可以处理克隆私有子模块作为部署过程的一部分。我看到他们有子模块支持,但我无法从文档中找出私有子模块是否存在任何身份验证问题。
    4. 仅供参考,构建系统是100%NodeJS驱动的,独立于Windows生态系统。

2 个答案:

答案 0 :(得分:0)

AppVeyor将自动部署到Azure网站。使用以下网站设置部署。

http://www.appveyor.com/docs/deployment/web-deploy

答案 1 :(得分:0)

如果静态文件未缓存在浏览器中或进行了重新加载,用户将注意到更改。无论采用哪种实现方法,建议使用CDN(内容交付网络)。将CDN端点连接到您的应用程序服务,并使DNS指向CDN而不是应用程序服务。 CDN会将静态文件而不是应用程序服务本身提供给最终用户。 CDN缓存最后部署的文件,并继续将它们提供给最终用户,直到您清除它们为止。因此,您可以继续部署到您的应用程序服务,并且最终用户完全不受您的部署的影响,因为他们是通过CDN而不是应用程序服务访问您的站点。稳定的部署后,您可以清除CDN,最新的代码将从您的应用程序服务中再次缓存到CDN。

要回答有关部署代码的问题,无论使用哪种CI / CD系统,从azure CLI进行FTP部署都是其中一种方法。 Click here for details。但是,在部署到应用程序服务时,WebDeploy是所有方法中最标准的方法。