一般而言,企业用户会希望加速云应用的部署,而持续交付就可以实现这一目标。本文将介绍如何使用Azure应用服务来开发一个持续交付管道。
对于那些想要通过持续交付管道在云中部署网络、移动或API应用的用户来说,微软公司的Azure应用服务是一个不错的选择。
无论是一名开发人员还是一名运营工程师,Azure应用服务都能够让他能够更为快捷地完成应用开发或部属。同时,因为它是一个完全托管的平台,所以团队成员们可以更多地关注他们的应用,而不会因为因为开发和维护可扩展性和高可用性基础设施所需的所有复杂性而陷入泥潭。
例如,没有运营人员的小型开发团队就可以使用Azure应用服务来加速应用的部署,因为不需要实际的服务器、网络和存储资源。而对于拥有专门运营人员的企业,Azure应用服务可以减少对诸如备份和打补丁之类耗时费力管理任务的需求,微软完全接管并执行这些任务。
此外,团队现在可以使用Azure应用服务和Visual Studio Team Services (VSTS)来实现持续交付。VSTS则是微软公司另一个基于云的服务,它能够让团队开展项目合作,并提供版本控制、持续集成、发布管理等服务。
Azure应用服务中的持续交付工作流流程
持续交付管道背后的理念就是让团队更自信地部署应用变更。它不是一个特定供应商的概念,它也不是依赖于一套特定的工具。相反,持续交付是一个流程,它可确保团队在考虑这些生产就绪变更之前对代码库的频繁变更进行验证和测试。VSTS 只是一个开发团队能够用于创建持续交付管道的产品,但它提供了能够让新用户轻松上手的一些强大功能和一个设置过程。
为Azure应用服务的网络应用开发一个持续交付管道可以包括如下阶段:
- 编写应用代码:在这个阶段,一个或多个开发人员可主动地进行应用代码开发。而应用代码会被保存在版本控制库中。当一个团队对代码库做出小的增量变更时,这些变更会被提交并推送至版本控制库。
- 开发:对保存在版本控制库中应用的任何变更都会自动触发一个代码编译并选择性运行单元测试的流程。由于开放人员会在代码库中进行小增量的变更,所以他们能够快速的找到该模式中的任何问题。这前两个阶段基本上是持续集成的基础。关于新功能变更是否成功或失败的快速反馈可以让开放人员快速地执行应用迭代开发。
- 测试:在下一阶段,团队可以执行可选的负载测试以确保最新版本的应用已经做好了生产就绪准备。为了做到这一点,可将最新版本的代码部署至专为负载测试而开发的Azure应用服务网络应用。
- 部署:最后,一旦用户完成了持续交付管道开发中的所有阶段工作,就要部署最新版本应用。团队可以选择将最新版代码部署至生产环境或一个分段环境。无论是采用何种方式,这都是管道的末端,因为此时的源代码已被视为生产就绪。如果自动化部署将代码推送至分段环境,那么当团队准备好使用最新版本的应用时,他们就可以使用生产环境替代分段环境了。
为网络应用设置持续交付管道
如需测试此过程,可采用默认项目模板来使用Visual Studio 2015中内置的基本ASP.NET MVC网络应用。当然,还需在Azure应用服务中设置两个网络应用:一个用于生产应用,另一个用于负载测试。
如需开始使用,可访问用户在Azure门户网站中的生产网络应用。选择部署选项卡中的持续交付(预览)选项,如图1所示。点击配置。
图1 持续交付的配置
接下来,可以看到持续交付管道中需要配置的每个阶段,如图2所示。
图2 查看持续交付的各个阶段
点击“选择库”的第一个选项。这个操作可以让用户自行定义版本控制库。目前的有效选项包括VSTS Git、GitHub或一个外部/内部Git库。在本文的示例中,示例应用已被保存在GitHub中了。
当用户选择GitHub作为源时,系统将提示输入用户的GitHub凭据。一旦通过验证,可选择用户的源代码库以及相应分支。在本文的示例中,代码被直接变更至主分支,如图3所示。
图3源阶段的设置
至此,我们已经定义了源阶段,接下来可以设置开发阶段。在本文示例中,我们将选择合适的应用框架,即ASP.NET。另外,还选择创建了一个新的VSTS账户,如图4所示。
图4开发阶段的设置
如果之前已经创建并使用VSTS账户,那么现在可以选择使用这个已有选项。另外,可根据用户所在位置选择一个具有重要意义的区域。
之后,我选择设置负载测试,如图5所示。这不是必选项,但为了进行更好的演示,我们在通道里使用另一个为负载测试而单独创建的网络应用来启用此阶段。
图5测试阶段的设置
如图6所示对部署阶段进行配置。默认情况下,部署至分段环境的选项设置是否。这意味着,一旦所有其他阶段都成功完成,代码变更将会自动部署至生产网络应用。
图6 部署阶段的设置
果用户希望首先部署至分段环境,只需简单地在图6所示的部署页面选择“是”即可。这就可以让用户选择一个新的或为这个网络应用配置过的现有分段环境。在设置部署选项之后,点击OK,Azure会在VSTS中完成构建持续交付管道。这个初始配置会触发管道的执行,同时用户也能够在VSTS控制台上查看开发和发布的阶段。
从这一点开始,提供给源代码库的代码会再次触发管道中的开发、测试和部署阶段。应用的新版本也可在网络应用的分段环境中可用。最后,只要团队做好了将变更推向其他环境的准备,那么就可以将分段环境中的应用可部署版本发布至生产环境。
请注意,Azure应用服务中的持续交付功能仍在试用阶段,上述提及流程有可能在正式发布时有所变更。
本文作者:Mike Pfeiffer
来源:51CTO