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

因此,对于企业来说,最重要的是要进行充分考虑,不仅包括移动功能的开发、还有如何部署,以及如何随着时间的推移对其实施变更时确保功能的持续性。本文包括 DevOps(开发 & 操作)如何帮助处理向不同设备部署不同版本应用程序的问题。

移动应用程序:新思维过程和行为

在移动空间中,有大量潜在的部署平台。在某种程度上,这类似于许多年前存在多个竞争性标准时的传统桌面开发情况。移动方面的不同之处是不仅存在多个竞争性操作系统(比如 Android、iOS、BlackBerry 和 Windows),还存在多个不同的设备特征:屏幕分辨率、处理器、图形处理功能、网络处理功能等。其中每一个特征都为向移动环境中部署的复杂性添加了一个潜在层。

因此,在为移动进行开发和设计时,企业需要使用不同的思维过程和行为。例如,许多企业目前使用的一种方法是专注于启用 Web 的移动应用程序。已经致力于 Web 门户和 Web 功能的开发团队仅仅将其扩展到使用 HTML5 的移动应用程序。

然而,这种方法的缺陷是不可能利用各同移动平台的所有能力和特性。用户必然会要求在移动设备(比如日历应用程序)上使用现有本地功能进行更 好的集成。如果平台不向访问特性公开 API(当您开始提出有关将要支持哪些平台以及何时支持的问题时),那么满足这些需求就需要本地应用程序。此外,您将支持多少种 版本 的平台?考虑到大多数客户只会将一台设备保留几年时间,排除某个版本和不选择支持这些客户会涉及多大的风险?您支持还是排除整个平台(比如 iOS)?一个 Android 版本(比如 3.2)?您是扩展为 Jelly Bean 的全部功能(Android 的最新版本)吗?

对移动应用程序开发和部署所添加的困难,称为 “IT 消费化 (consumerization of IT)”。越来越多的员工和客户将自己的设备带到企业环境中。例如,在 IBM,仅 1 月份就有将近 10,000 台 iPads 和 30,000 多台其他 iOS 设备在该企业中运行。这就意味着企业不再拥有一个共同的标准,声明他们将只支持 iOS 版本 4,因为客户购买更新的 iPhones 或 Samsung Galaxies,同时还有平板电脑和智能手机。尽管企业在使用员工的设备时有优势,消费化还是创建了一个大型的目标环境集,这同时也增加了开发 和管理成本。

移动应用程序部署的误区

开发和部署移动应用程序的一个最主要的误区是向一个大型的部署中打包了太多的更改。这种传统的瀑布式部署方法在企业应用程序开发中也很流行。企业花费 6 到 8 个月的时间来解决需求,6 到 8 个月的时间来进行开发,6 到 8 个月的时间来进行测试,然后再将其大量应用程序投入生产。问题是,在这段时间内,丢失了组件跟踪,甚至中断了部分构建。因此为了降低这种风险,企业实现了一种严格且复杂的治理流程。

企业通常希望对移动开发和部署采用同样的方法,因为无论是对其用户群还是员工来说,他们都希望自己进入市场的移动功能的第一个发行版能够完美。事实上,应用程序并不需要做到完美,它只需要有用且直观就行。然而,大多数企业并未认识到这一点,因此他们为实现代价高昂的应用程序花费了大量的时间和精力,而且,通常是最晚的一个。瀑布式开发所产生的大多数应用程序进入市场较晚,而且最后通常无法解决其用户的需求。

DevOps 是解决部署挑战的一种方法,包括多操作系统、多设备和消费化,该消费化是通过扩展敏捷开发方法来快速部署成功的敏捷应用程序所需的功能而实现的。

DevOps 的力量

主要解决的需求是:在任何给定的时间点,使用最新的特性将运行的应用程序部署到生产环境中。这是一种敏捷方法,瀑布式开发方法在此不适用。定义需求并在小型业务值的功能性部分进行开发,这很重要。每个晚上,或每隔 15 分钟,或变更调查源代码管理系统的每一次,您都需要确保可以构建产品或业务功能。这是 DevOps 的持续集成性能。此外,考虑到企业移动应用程序的复杂性,这不仅仅是关于为移动设备编译代码的问题。企业应用程序利用后端系统,该系统也需要包括新功能。

通过各种环境捕获构建和部署需要一个强健的持续交付功能集,该功能可以推动应用程序:

从开发人员的桌面起,使用运行 Android、iOS、或另一个移动平台的模拟器
到测试环境,该环境可能涉及测试不同手机的第三方
到后端系统,该系统公开由移动设备使用的服务
进入生产环境,此处交付到各种设备
每个平台从部署角度来看都具有不同的特征;但是,无论是什么平台,要想交付成功,都必需识别、跟踪、捕获和测试每一次变更。这就需要一种规范的方法,可以将开发和操作团队集合在一起,确保实现频繁、可靠、高质量的软件交付。开发和操作团队共同工作来实现一个共同的目标:可用移动应用程序的持续交付,无需任何人追究责任或找借口。自动化是关键。

这就是 DevOps 对于移动应用程序开发和部署的强大之处所在。DevOps 可以:

捕获变更
自动化变更方式
自动化测试
将变化保持在足够小的范围内,在业务移动到生成环境时降低风险
在流水线的每一个阶段,确保适当打包的业务功能可以复制且向前推进
有了 DevOps,您可以使用一种规范的自动化方法,部署小型的功能增强,久而久之,可以变成大型的复杂功能。它可以通过配置的功能,将应用程序和更新推向移动生命周期中的各种终端设备。DevOps 还意味着对变更的透明性,因而所有利益相关者都能认识到新功能如何处理,从而降低业务风险。度量和测量在仪表板上捕获并公开,这增加了透明性和责任性。

当您考虑到用于交付移动应用程序的时间段比用于企业应用程序的时间段更短时,DevOps 则是一种理想的方法。因此,花时间将团队和流程集中在移动应用程序发布和更新上,帮助每个人理解目标并不完美且有待改善,这很重要。这使得每件事情以正确的方式开始,而且进展又快又好。在效率和流程实现自动化的同时,也产生了高效率且改进了流程。

结束语

全世界的企业都希望通过向客户和用户提供使移动计算更简单的应用程序,从而开发移动市场。要实现这一目标,最重要的是要充分考虑功能的开发、如何部署、如何随着时间的推移对其实施变更时确保功能的持续性。DevOps 有助于确保实现成功的移动应用程序生命周期,该生命周期将所有这些都考虑在内。它带来的不仅是自动化,还有业务成果,因为 DevOps 紧缩了开发人员和操作之间的反馈环路。开发人员可以更迅速地进行更改,而且操作可以加速其应用程序的优化和更新。

时间: 2024-10-02 10:22:56

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

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

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

使用ImageMagick + Jmagick进行图片操作(续2)——实现高质量的图片处理

在前面的两篇文章中,只记录了分别在Linux和Window上的安装过程: 使用ImageMagick + Jmagick进行图片操作 使用ImageMagick + Jmagick进行图片操作(续)   关于JMagick的应用在网上内容比较少,这次分享一下我的缩放图片和黑白效果的代码:   生成80×80的缩略图: MagickImage originalImage = new MagickImage(new ImageInfo(originalImagePath)); MagickImage

评审技术在高质量软件开发中的应用分析(下)

接评审技术在高质量软件开发中的应用分析(上) 三.评审在高质量软件开发的实际应用 3.1 高质量软件开发项目介绍 高质量软件,如电信软件.金融证券类软件等,有较严格的要求:可用性要求非常高,并且不会因为系统维护和扩展而带来运营中断:支持使用现有管理工具和标准进行远程管理:能够提供更出色的性能以及运营在高可用性集群上的能力,减少任何单点的软硬件失效现象.五个九(99.999%)意味着一个系统的宕机时间一年不超过5分26秒.因此高质量软件项目是一种对可用性.可靠性.稳定性要求非常高的软件项目,要求软

tomcat启动报错-SSH + Oracle 整合开发 启动服务报错,运行查询操作,没影响

问题描述 SSH + Oracle 整合开发 启动服务报错,运行查询操作,没影响 信息: Initializing Spring root WebApplicationContextlog4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).log4j:WARN Please initialize the log4j system properly.2013-1

《人人都玩开心网:Ext JS+Android+SSH整合开发Web与移动SNS》样章下载

本文为原创,如需转载,请注明作者和出处,谢谢! 第1章:开发梦缘起开心网 第5章:开心桌面:完全模拟Windows桌面的开心网 第15章:移动电子相册:捕捉精彩瞬间 书中实例截图     前言      互联网的发展,就是一个不断上演奇迹的过程.10年前就开始在Internet上流行的Web应用,在见证了一个个奇迹之后,依然作为最主流的应用而雄霸 互联网.近几年,一个由国外风靡至国内的Web应用--SNS,再一次为举国上下的互联网普及大潮推波助澜.或许SNS听起来还有点陌生,但如果你连炙手 可热

Win10 IoT C#开发 5 - 操作 IoT 设备内嵌 SQLite 数据库 CURD

原文:Win10 IoT C#开发 5 - 操作 IoT 设备内嵌 SQLite 数据库 CURD Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,与以往的Windows版本不同,是为物联网设备专门设计的,硬件也不仅仅限于x86架构,同时可以在ARM架构上运行. 前几章我们讲了 Raspberry 安装 Win10 IoT 系统及搭建开发环境.部署程序及操作 GPIO 和 UART 的方法,通过这些功能我们已经可以获得到传感器发送给我们的数据,但是如果数据不能及时推送

轻量级Web应用开发宝典—Struts 2.1+Hibernate 3.5+Spring 3.0整合开发((光盘资源谁有)

问题描述 轻量级Web应用开发宝典-Struts2.1+Hibernate3.5+Spring3.0整合开发陈天桥著2011年版的有无这本书的光盘资源啊资源啊给分~~ 解决方案 解决方案二:http://bwss.nlic.net.cn:8080/poweb/showpage.do?status=show&METAID=28823自己去看吧

mybatis-springmvc mybaties整合开发新增问题(增强改查)

问题描述 springmvc mybaties整合开发新增问题(增强改查) 由于id为自增长,所以点击添加跳转添加页面中,编号文本框为只读,但是需要传出新增的id!该怎么查出当前新增id ?1 解决方案 1.在Mybatis Mapper文件中添加属性"useGeneratedKeys"和"keyProperty",其中keyProperty是Java对象的属性名,而不是表格的字段名. <insert id="insert" paramet

spring java web-springMVC与Mybatis整合开发项目时报错

问题描述 springMVC与Mybatis整合开发项目时报错 错误提示: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component StandardEngine[Catalina].StandardHost[localhost].StandardContext[/erp![]]图片说明 解决方案 http://segmentfault.co