广电有线享TV全新改版升级
银铃模式
儿童模式
【官方公告】中国广电5G现全面支持 iPhone
高质量发展年
5g精彩启航
中国广电
电视端“强国TV”山东上线
有线优享 新版上线
安全生产

从DevOps说BOSS开发

  DevOps(英文Development和Operations的组合)是一组过程、方法与系统的统称,用于促进软件开发、技术运营部门之间的沟通、协作与整合。它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。DevOps的方法提倡开发与IT运维部门之间高度协同,从而在提高生产环境的可靠性、稳定性与弹性的同时,又能完成高频率软件升级部署。

  相对于瀑布式开发,敏捷开发过程的一个基本原则就是以更快的频率交付最小化可用的软件。但是高频率的版本发布对IT运维来讲却是一场灾难。对于BOSS开发的每个需求提出者来讲,都希望自己提出的功能开发马上实现,然而软件开发却有自己的流程,例如需求了解、实施步骤分解、代码开发、功能测试等等一系列必不可少的工作。最后由于BOSS升级工作又包括了是否需要调整前台业务;是否需要调整生产数据库;是否需要前台应用程序升级,每次升级都需要版本的重新部署,前台的版本升级部署一次需要大约2个小时的时间,数据库的调整也需要时间,当数据库表结构改变和大批量的数据增删改时还会影响数据同步,影响报表的统计查询,因此IT运维的困难制约了敏捷开发的实施。如何解决两者之间的矛盾呢?DevOps是目前普遍认为的一种行之有效的方法。DevOps要求开发与IT运维高度协同,IT运维部门应充分的参与到需求的开发中来,及时调整IT支撑系统的架构,来适应软件开发的不断发展。这里面需要注意的问题有几个。第一点要求需求开发对于需要的IT支撑能力与IT部门要在全局部署上达成一致。例如BOSS系统中每个月的权责出账、销账,需要计算全省2000万客户每个产品产生的账单,需求开发按照系统目前的计算能力无法在12个小时之内计算完毕,研发就会采用分批计算的方式来实现,但是分批计算方式会导致出账后业务操作重新计算权责的问题,并且更改了权责实现的方式。如果采用新的内存数据库技术或者找出导致计算IO的瓶颈,在硬件或系统软件方面做一下优化和替代,则不需要更改原业务设计达到系统要求。这是一个很好的需要DevOps的例子。当研发部门缺乏与IT部门的沟通会导致类似很多复杂的开发。另外还有一个很重要的问题是需要打造一种文化来促进DevOps:持续不断的探索精神,勇于承担风险的精神以及从成功和失败中学习的能力。探索精神与勇担风险精神可以确保项目的持续改进,但也意味着项目到达了之前未曾到过的危险区域,因此这也迫使我们去学习,去掌握那些新技术,从而使我们离开危险区域。

  如果可以按照DevOps的方式来开发项目,可以达到缩短开发周期和更高的部署频率;提高软件开发的质量并提高组织的有效性。下一步在BOSS系统的软件开发中我们要积极探讨这种模式在系统内的应用。