【问题标题】:Deploying Single Page app from appveyor to azure将单页应用从 appveyor 部署到 azure
【发布时间】:2015-10-20 14:35:20
【问题描述】:

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

我的目标:

  1. 在构建后部署静态站点,或在成功构建后触发 azure 进行部署。该应用程序是用 typescript 编写的,带有 angular 和一堆其他依赖项,这些依赖项被编译并捆绑到一个静态站点中。
  2. 希望最终用户知道部署正在进行,因此任何增量复制到实时环境的操作都已结束。
  3. 不想签入派生文件或构建到存储库中。

我目前有一个构建系统,它将静态站点捆绑在一个 zip 存档中。所以我的问题是:

  1. 使用 WebDeploy 提供程序能否实现我的目标?如果我将 zip 存档部署为工件,在部署期间是否会出现停机?
  2. 还有其他更好的方法吗?
  3. 有没有办法通过 azure 自动部署来做到这一点?例如,在成功构建后触发 azure 进行部署。如果是这样,kudu 是否可以在部署过程中处理克隆私有子模块。我看到他们支持子模块,但我无法从文档中弄清楚私有子模块是否存在任何身份验证问题。

仅供参考,构建系统 100% 由 NodeJS 驱动,独立于 Windows 生态系统。

【问题讨论】:

    标签: azure continuous-deployment kudu appveyor


    【解决方案1】:

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

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

    【讨论】:

    • 这仍然不能回答我关于什么是网络部署以及它是否符合我指定的目标的问题。
    • Web 部署将工件生成为 zip 文件并将其推送到 Azure。我仍然不确定您的用户是否注意到了更改,但我没有遇到任何问题。
    • 好的。谢谢。我会试一试。我能够说服管理员给我一个可以使用的测试站点。
    【解决方案2】:

    如果静态文件没有缓存在他们的浏览器中或者他们进行了硬重新加载,用户会注意到这种变化。无论采用何种实现方法,都建议使用 CDN(内容分发网络)。将 CDN 端点连接到您的应用服务,并使 DNS 指向 CDN 而不是应用服务。 CDN 将静态文件提供给最终用户,而不是应用服务本身。 CDN 缓存最后部署的文件并继续为最终用户提供服务,直到您清除它们。因此,您可以继续部署到您的应用服务,最终用户根本不会受到您的部署的影响,因为他们通过 CDN 而不是应用服务访问您的站点。一旦你有一个稳定的部署,你可以清除你的 CDN,最新的代码将从你的应用服务再次缓存到 CDN。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-03
      • 2019-01-18
      • 1970-01-01
      • 1970-01-01
      • 2015-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多