软件交付是IT服务提供的重要环节,所谓精益化软件在一定程度上是指在软件交付的过程中如何平衡速度、成本、质量和风险的各个因素。
杨昆是北京并行科技股份有限公司的运营总监,曾任职于联想集团高性能服务器事业部技术支持工程师、方案工程师、系统实施工程师主管;美国Availgent公司技术顾问;美国红帽软件公司资深软件工程师、硬件认证部门主管。通过对他的采访帮助我们了解精益软件交付需要注意的问题。
以下是现场文字整理:
问:软件交付是如何在速度、成本、质量和风险之间实现平衡的?
杨昆:确实会面临这样的问题,这个问题又取决于软件类型和客户群体。
Paramon和Paratune这类软件,如果在平台期,大版本更新是一年一次,小版本则是四个季度各一次。
而另外一类软件则完全不同,以ParaAlarm为例,这种移动端软件要求实时更新,所有最新的功能都要第一时间给到用户。我们就要做到快速迭代,尽量缩短开发周期,当前发布周期是每个月出一个新版本,有时针对一些特殊情况还会推出hotfix版本,所以这就会涉及交付速度与交付质量的平衡。
我们采用的方式是在众多的功能中做一些取舍,做一个折中,根据用户需求及功能成熟度选择。
所谓的折中,是指优先保证强需求的功能实现,而不可以是代码质量的折中。代码质量是首先需要保障的,丝毫不能让步。
而提及成本方面,我们现在是不计成本,努力给用户提供好的软件和服务,质量和速度是我们首要关注的。
问:技术进步、系统平台演进、开发语言的变革,会带来哪些挑战?
杨昆:挑战挺多的。09年Paramon第一个版本诞生,当时采用的技术、工具相对简单。现今的Paramon已经发展为一款功能非常强大的软件,是OITS整个业务中的一环。随着客户需求细化,行业技术趋势演进,软件功能还会不断完善和增加。
软件的安装使用越来越方便,涉及到了越来越多的开发工具和编程语言,复杂度也大大增加。
新技术不断出现,甚至一些是颠覆性的技术,我们的交付思路也要随之转变。
系统平台的演进,是个很正常的演化过程,OITS就是完全依托于云平台、基于公有云提供的方案,通过云端汇聚进而提供相应的服务。
从Client/Server扩展到了云架构,OITS实际就是高性能计算领域中的大数据平台,为用户提供各种数据支持,及时发现问题并提供解决方案。云化把过去分散的资源集中,带来了效率和生产力的提高。
问:通常造成交付延迟,会有哪些因素?
杨昆:说到交付延迟,造成的因素各有不同。
如果用ParaAlarm举例来说,ParaAlarm是我们行业首创,很多功能是由并行驱动。
我们会不断确定哪些功能可以给用户带来价值。在开发过程中,遇到典型的情况是开发重点的切换,这就会带来开发计划更改,有时甚至是整个计划取消,这种情况就会造成延迟。由于是行业首创,也需要不断磨合,摸索,进入正常的迭代周期,保证我们的交付质量。
保障交付质量是基础,在整个开发过程中必须及时反馈、随时沟通。在开发早期提供内部测试版本进行体验、收集反馈意见,然后不断完善。
我觉得这个问题从另一个角度考虑比较好,就是什么样的方案可以避免延迟的出现?那就是尽可能高程度的自动化,就好像汽车生产的流水线一样,从产品化的角度来说,一个软件内部Built的自动化程度越高,效率也越高,延迟、出错率越小。
问:有说法称,交付从技术向服务转型的时代已经到来,对此您的看法是?
杨昆:非常同意。
以前是笨重的软件交付,我们需要帮助用户安装和调试各个软件模块,确保一切功能正常。现在的交付过程越来越简化和透明,依托于云,用户只是感受到我们提供的服务而已。
具体举例说,通过手机随时观察作业的运行状况、停止作业、实现“杀作业”的功能,是用户非常迫切的需求,ParaAlarm未来版本就可实现,这是标准的作业调度系统中的功能。届时用户无需对移动端ParaAlarm、数据中心Paramon版本做任何变动,数据中心无需重新部署,我们在云端更新后,用户只需打开ParaAlarm重新登录,就可以做“杀作业”的操作了。
我们以用户提出的功能需求为导向,借助云环境,提供服务。
并行科技:虚拟化、云技术的发展,是否带来了新的体验,随之带来了哪些困难?
杨昆:随着云技术的发展,交付维度也在扩展。
就OITS举例说需要交付两个层面:一个是传统的最终用户端,另一个是云端系统。
传统交付即直接交付给最终用户,在OITS整个业务中,用户在数据中心服务器上部署Paramon和相关组件,在移动终端上安装ParaAlarm,这两个软件都与OITS公有云连接。用户进行软件更新,交付环节结束。
另一个维度的交付,就是在云概念下,我们提供的基于互联网HPC+的服务来说,交付对象还包含云端系统。我们把软件更新到云端、完成交付过程。整个过程分阶段,会有严格的测试、验证,保证不会因为交付给用户造成干扰,所有的交付过程对用户是透明的,用户无需看到只体验最新的功能和服务即可。
交付的概念扩展了,交付的内容和对象也不同。
依托于云,我们也要考虑到虚拟化技术和网络架构对我们所提供的服务的影响,像网络延迟、数据中断等问题,以及每个用户的特殊情况,都要考虑到。这个从最开始设计功能的时候,就要有交付思维。
问:您曾在联想、Canonical和红帽有丰富的行业经验,关于软件交付能力建设,您有哪些独到的观点可以与我们分享?
杨昆:交付能力建设的目的,是保证整个交付过程敏捷,所谓敏捷,就是既要快又要灵活,同时以保证交付质量为前提。
我们开发了PBS(Paratera Build System)来实现软件构建自动化。PBS从2010年开始使用,期间做过两次大的升级。PBS就好比是一条自动化的软件生产流水线,新的功能、技术可以在这条流水线上灵活调整,确保最终产品具有相应的配置。
同一款软件会有多个分支或者叫“flavor”,例如Paramon有专业版、集群版、定制版、基础版等等,我们会在PBS系统中设置独立的Build规则,提高软件构建自动化程度和交付质量。
根据软件的特点,PBS也会越来越复杂,要构建的模块越来越多,支持更多的定制版本,虽然维护成本相应增加,但是给用户带来的价值会越来越高。
同时,整个交付过程要具有应对突发情况的能力。
例如出现特殊情况时,PBS系统中会对某些环节临时关掉或调整。如果用汽车生产线举例,当安装后视镜的生产线出现问题,如何迅速切换到另外的生产线,在故障排除后再继续安装,这也是对交付灵活度的考验。
所以说到敏捷,需要有一个机制,即当出现问题时可以快速回退,生产过程中的问题也要响应及时。要做到敏捷,就需要有一个强有力的平台支持团队,利用最新的工具和方法与业务融合,高效地对用户提供支持。
编者附:
并行科技是一家立足于高性能计算领域,专注于数据中心自动化运维的初创公司,可帮助实现云计算中心、高性能计算中心、私有云数据中心等大规模系统的在线运维、应用性能管理、运营大数据分析和可视化。成立于2007年,2016年宣布完成A轮6000万人民币融资,有望在2016年挂牌新三板。