为企业内部部署的应用程序创建一个云开发环境

借助来自许多成熟的公有云服务的精心策划部署策略的内置工具,企业组织机构的IT团队可以——而且也应该将他们的测试/开发迁移到公共云服务了。

即使您企业在短期内不会将内部部署的应用程序迁移到云计算,您仍然也可以享受一个云开发环境的好处。许多企业组织正在采取一种混合云的方法:在公共云中运行开发和测试环境,而将生产应用程序保持在企业内部环境。

鉴于现如今的企业组织机构可以从多家云服务供应商处获得各种各样的工具,这使得企业的IT团队构建按需基础设施、部署代码并运行一系列的应用程序测试,以确保其是为生产做好了充分准备,要比前几年容易得多了。

云开发/测试的优势

无论其是一款简单的、运行在一台单一服务器上的应用程序,或是一款复杂的、需要一个复杂的测试环境、如亚马逊网络服务(AWS)和微软的Azure这样的云计算平台才能够大大加快开发进程的多层应用程序。

公共云服务供应商可以使得企业能够很容易地启动虚拟机。一款单一的应用程序编程接口调用将为开发人员或测试工程师们提供一台虚拟机,以通过一系列的测试来部署和验证应用程序。但并不是所有的应用程序都这么简单。

有些企业应用程序需要大量的配套基础设施,以便为本地生产环境模仿合适的真实测试。而其应用程序团队——开发人员和IT运营人员——需要了解通过最接近的具体环境以掌握应用程序在真实世界的性能,进而才能够更准确地预测应用程序的相关运行状况,如延迟性。而诸如AWS和Azure这样的成熟的平台,则声称使用了基于JSON的模板,以通过企业用户自定义的网络、存储、虚拟机实例等等,支持更复杂的自动化基础设施环境。运营团队可以实现几分钟内在云中复制完全配置的企业内部部署生产环境。这个概念被称为基础设施即代码(Infrastructure as Code),其在AWS上被称为CloudFormation,而在Azure上则被称为Azure资源管理器模板。

当在为开发和测试团队分配资源时,数据中心管理人员总是面临硬件方面的约束。测试环境的硬件规格必须与您企业在生产中部署的硬件规格相类似。您还必须保持这些物理系统的正常运行。硬件和配套的外围组件最终失败,而当这种情况发生时,其只是减缓了测试代码的进程,直到运营团队可以更换或修复组件。借助云计算的开发环境,物理硬件被抽象出来,连同其相关的所有维护任务。开发人员可以在其所选择的云平台上根据实际需要启动尽可能多的虚拟服务器。

维护物理设备以运行开发和测试工作负载意味着IT企业组织需要为闲置时间的物理设备买单。这些物理设备占用了数据中心空间,即使在不使用时也可能消耗功率。而如果时利用云计算的话,企业用户只需为他们所使用的资源买单。环境根据实际需求建立并拆除,从而使得企业组织只需要在他们使用资源时买单支付即可。

许多的持续集成(CI)和应用程序生命周期管理工具均与云平台以及拥有的服务器进行了集成整合。诸如AWS和微软这样的供应商们都有一套DevOps工具能够与惬意内部部署以及基于云计算的服务器兼容,缓解了从开发到生产的混合过渡。

推动混合云产生的工具

如果您企业是从头开始,不妨考虑采用一款工具链,将能够建立一个完全自动化的软件发布渠道。

源代码控制。Git是最被广泛使用的源码控制工具,其提供了一个分布式版本控制系统。许多连续测试和集成工具都能够与Git轻松兼容工作,您会发现有很多企业用户都在使用GitHub,这是一款基于Web的Git仓库托管服务。应用程序团队可以建立公共和私有源代码库,基于代码库协作,并最终被推送到测试和生产环境。

持续集成。当涉及到在云中的测试环境的自动化代码部署时,我们建议您企业不放尝试采用一台CI服务器。CI服务器可以被设置为提交源代码控制存储库——即提交应用程序代码的更改——然后根据最新的更改触发一系列阶段。例如,您企业可以使用开源的Jenkins CI服务器或其竞争者TeamCity、Travis CI、CircleCI或Codeship,以便为一款应用程序申请GitHub库。当一项更改被提交后,Jenkins运行一段代码,执行单元测试,然后通过发起CloudFormation模板触发一个测试环境的部署。环境一旦运行起来,另一项工作将在测试环境中部署应用程序到服务器。这将保持应用程序代码关闭生产服务器,直到其通过所有的测试,在这一点上,运营团队要么可以手动部署服务器;要么可以激活一个自动化的任务来执行这一工作。

性能、负载和用户界面测试。性能或用户界面(UI)测试有助于确保一款应用程序可以在生产过程中处理预期的用户负载,并且其功能能够适当的规模化。流行的工具可以在企业内部部署环境和由Apica公司和BlazeMeter公司提供的基于云的资源中运行负载和性能测试。Ghost Inspector是一款相当棒的工具,能够捕捉网站bug和其他用户界面问题。

原生云的DevOps工具

AWS和微软均已经创建了简单的原生云软件生命周期管理工具,以实现在混合云使用企业内部部署的基础设施和公共云服务对于应用程序的灵活管理。

AWS CodeDeploy将应用程序代码自动部署到亚马逊弹性计算云实例或企业用户自有的服务器。AWS CodePipeline在云中构建一个持续交付(CD)的管道,其为更改、开始构建或在CI服务器上测试、然后在云中为开发实例推出代码和在专用服务器运行CodeDeploy代理提交一个源代码控制库。

微软公司基于云的Visual Studio团队服务产品的工作方式类似于AWS的DevOps工具集。其所发布的管理功能使得企业组织的IT团队能够创建一个自动发布的管道,以便使得应用程序团队可以将代码部署到任何服务器上。

一款CI服务器既可以运行在企业内部部署环境,也可以运行在云中。此外,云服务器不必是一款单一的云:企业内部部署的服务器可以使用不同的云平台而不必使用开发和测试服务器。例如,没有任何东西能够阻止您企业在一台Azure 虚拟机上运行AWS CodeDeploy代理。

使其在现实世界发挥作用

今天,我们已经拥有一款混合开发和测试云部署的技术了。而其中最大的挑战之一可能是环境的复杂性。

团队成员需要一定的资源来完成这项工作。这可能包括在公共云平台上进行的培训,以及针对形成应用程序的管道的特定的CI/CD工具所进行的培训。

请务必让您企业内部的全部团队都参与到该方法中来。例如,可能存在您企业内部的网络或安全团队需要了解企业的数据流来自于企业内部部署环境迁移到云服务时需要遵守相关监管法规或内部安全策略的案例。不管是什么原因,推动DevOps团队之外的良好工作协作关系的构建将有助于确保公共云服务成功转型到您企业的生产服务器。让企业所有的团队都参与进来,可以有助于您企业实现更广泛的目标,并应该让所有团队共同努力把工作做好。

原文发布于微信公众号 - 云计算D1net(D1Net02)

原文发表时间:2016-08-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏WeTest质量开放平台团队的专栏

【腾讯内部工具分享】U3D资源优化工具

本工具依据官方提供的U3D资源的设计建议,对手游的安卓客户端(apk)进行静态扫描、分析,并生成资源优化报告,最终以Web形式呈现给开发者。本工具的整体设计思路...

17520
来自专栏IT大咖说

老牌大型门户网站多年经验——搜狐服务架构优化

内容来源:2017 年 08 月 10 日,搜狐研发中心架构师陈伟在“第二届APMCon中国应用性能管理大会”进行《搜狐服务架构优化实践》演讲分享。IT 大咖说...

18520
来自专栏腾讯大数据的专栏

腾讯云分析支持微信告警啦!

在过去的一个月里,微信公众平台开放了图文分析等数据统计功能。眼尖的人也许早就发现,在微信公众平台的图文分析右上角,出现了"数据由 腾讯云分析 提供"字样. 通过...

27290
来自专栏大数据和云计算技术

大数据和云计算技术周报(第59期)

“大数据” 三个字其实是个marketing语言,从技术角度看,包含范围很广,计算、存储、网络都涉及,知识点广、学习难度高。

13520
来自专栏云计算D1net

破译混合云架构的关键点:云数据传输

混合云架构融合了私有云和公有云,如何部署混合云已经成为IT圈里面最热门的话题之一。大部分数据中心团队都发现这种架构在技术上具有极大的挑战,这些挑战主要源于各种工...

43280
来自专栏CSDN技术头条

日志管理与分析的十个最佳实践

这是准确管理与衡量日志记录的最高效方式;本文将带你快速了解通常如何利用Docker及容器来创建易于管理、测试及部署的软件镜像包。 过去十年来,随着分布式系统的发...

27950
来自专栏子勰随笔

SDK那些事(总纲)

362100
来自专栏杨建荣的学习笔记

运维开发里程碑的小结

说实话,截止目前,五个功能实现了四个,所以算是基本达标了。后续的改进点依旧有很多,突然发现这样的设计和贯穿,有了一种豁然开朗的感觉。只要行得通,改进也有...

15550
来自专栏云计算D1net

云备份选项保护公共云存储数据

如今,公共云供应商正在开发尖端产品,以使基于云计算的备份产品更有效地备份公共云的存储数据。 数据是当今大多数企业的命脉。而备份数据可能是IT行业人士最不喜欢做的...

36060
来自专栏测试驿栈

<转>性能测试浅谈

本文主要针对WEB系统的性能测试。不涉及具体的执行操作,只是本人对性能测试的一点理解和认识。

23550

扫码关注云+社区

领取腾讯云代金券