使用Azure应用服务开发持续交付的管道

一般而言,企业用户会希望加速云应用的部署,而持续交付就可以实现这一目标。本文将介绍如何使用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

时间: 2024-11-29 21:53:26

使用Azure应用服务开发持续交付的管道的相关文章

百度资深敏捷教练:深度解析持续交付之全面配置管理

作者介绍 张乐,百度资深敏捷教练.架构师,Intelligent Software Development团队成员.超过13年项目管理和敏捷实战经验,曾任职于惠普.埃森哲等大型外企,负责大规模团队敏捷转型和工程效率提升,积累了丰厚的知识体系和实战案例.加入百度后,作为公司内先进软件工程方法和生产力的践行者.布道者,主导了百度云.百度金融.云安全等新技术产品的敏捷转型和DevOps实施,帮助团队从业务.过程.技术.组织和工具等多个层面建立起全面的持续交付能力.Gdevops全球敏捷运维峰会.TiD

DevOps整合开发和操作以实现多平台的高质量和持续交付

因此,对于企业来说,最重要的是要进行充分考虑,不仅包括移动功能的开发.还有如何部署,以及如何随着时间的推移对其实施变更时确保功能的持续性.本文包括 DevOps(开发 & 操作)如何帮助处理向不同设备部署不同版本应用程序的问题. 移动应用程序:新思维过程和行为 在移动空间中,有大量潜在的部署平台.在某种程度上,这类似于许多年前存在多个竞争性标准时的传统桌面开发情况.移动方面的不同之处是不仅存在多个竞争性操作系统(比如 Android.iOS.BlackBerry 和 Windows),还存在多个

《软件开发践行录——ThoughtWorks中国区文集》一一第二章 实战:持续交付中的业务分析 夏洁

第二章 实战:持续交付中的业务分析 夏洁 软件开发践行录--ThoughtWorks中国区文集在需要频繁交付.不断收集用户反馈.拥抱变化.追求业务敏捷的项目中,软件的开发和交付是迭代式进行的.在这样的项目团队中,业务分析师(BA)通常需要在一个开发迭代开始之前完成该迭代开发任务的分析.但在特殊情况下,从收集客户需求到将功能细节传达给开发团队的周期会缩短到一至两天.BA可以用于思考和分析的时间远远少于可以预先做出所有设计的瀑布式项目. 那么在这样的敏捷项目中,BA如何能够适应这种交付模式.完成高质

应用Docker进行持续交付:用技术改变交付路程

在第13期云栖TechDay活动上,唐容为大家分享了<应用Docker进行持续交付>话题.他先谈了传统CD(持续交付)过程中遇到的问题,然后解释Docker的原理及它为什么能够改变持续交付,最后分享了应用Docker化交付的过程和适用场景. 下面是演讲内容整理. 背景 互联网行业都是比较新兴的产业.市场需求量不断变化,产品不断变化,导致我的开发须不断变化,最后导致我必须持续不断的去交付.更新我的生产环境. 时间长了就会产生一系列的问题.其中最主要的问题是,老的运维人员把生产环境做好,一旦他离开

通过 DevOps 整合开发和应用安全管道

[编者按]作者 Aaron Volkmann 是 CERT Division 高级研究员,通过提出了一种集成安全系统到 CI/CD 的方法,让机构保持快速部署到生产环境能力的同时,也大幅度降低安全隐患,本文系 OneAPM 工程师整理. DevOps 理念规定软件开发和运维团队之间需要加强沟通和协作,从而在软件开发和交付过程中实现更好的结果.而在这之后,信息安全团队同样应该集成到 DevOps 实践团队中.虽然在持续集成(CI)和持续交付(CD)过程中还未实现完整的自动化软件安全评估,本文主要介

【译闻】Jenkins与持续交付的若干问题

关于译者Ghostcloud Ghostcloud(中文名:精灵云)是成都精灵云科技有限公司旗下的基于Docker的PaaS/CaaS平台品牌.公司成立于2015年,核心团队由来自EMC.Veritas.华为.IBM.Microsoft的核心技术主管和架构师组成.精灵云作为国内首批从事容器虚拟化研发的企业,为企业级行业客户提供针对互联网化.私有云管理平台.大数据业务基础架构的平台服务,在国内Docker社区贡献排名前三.主创团队曾参与Beego开源项目研发,并主导发布<Docker容器实战:原理

持续交付平台 Spinnaker

Spinnaker 详细介绍 Spinnaker 是一个持续交付平台,它定位于将产品快速且持续的部署到多种云平台上. Spinnaker 主要特性:配置一次,随时运行:随地部署,集中化管理:开源. Spinnaker 组件: Spinnaker 最初是以实现内部的端到端持续交付为目标,作为 Asgard 的替代,该项目期望重建一个持续交付平台,能够实现: 通过灵活和可配置的管道实现可重复的自动部署 提供一个所有环境的全局视图,一个应用程序可以看见自己的在所属管道中的状态 通过一致且可靠的API,

让IT跟上业务思考的速度--从持续集成到持续交付

通过 7 个持续交付最佳实践,给读者一个思路,无论是建设持续交付能力,还是在进行持续交付平台的选型,都能够在业界经验的基础上走向更为正确的道路.同时,本文还引入了持续交付成熟度模型,目的是想帮助企业,把一个想象中全面而复杂的交付流程进行切分,按照环节和成熟度等级展现,将实现持续交付能力之路变得更为清晰.更可操作.有助于企业建立良好的期望和愿景,并开展切实可行的行动. 市场和业务瞬息万变,企业的 IT 部门必须面对产品上线周期不断变短的事实,也就是说,需要建立产品交付反馈圈,并让这个闭环圈的反馈速

阿里云持续交付-快速可靠地交付高质量软件

文/戴蒙 拥有3万多人的阿里巴巴,线上有上万个应用,上亿的用户即时在线,每天有几百个应用在线上更新,就像在时速200公里的高速公路上横穿马路维修栅栏一样,时刻保持着心惊胆战,而保护这个过程的体系就是阿里巴巴持续交付工具与实践. 现代开发企业中如何做好持续交付是一件异常重要的事情,在互联网企业中更是如此.而阿里巴巴在这么多年的研发管理基础上,对如何做好持续交付提出了一套全新的模型与实践. 阿里技术保障部产品专家戴蒙在"2016云栖大会上海峰会"专场<"互联网+"