“shutterbug”——美国俚语中的“摄影爱好者”,他们不仅对用光、色彩、构图等近乎苛求,还衷于CCD、CMOS感光元件技术、全画幅镜头的技术研究。
并行科技ParaAlarm的启动画面,是新西兰东南端的Nugget point海岬,壮观的碎石路、灯塔和日出,正是出自并行科技运营总监杨昆的摄像机下。我们不禁好奇苛求细节、执着技术是如何感染工作的,让我们细读本期对话杨昆。
并行科技:软件交付是如何在速度、成本、质量和风险之间实现平衡的?
杨昆:确实会面临这样的问题,这个问题又取决于软件类型和客户群体。
具体说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系统中会对某些环节临时关掉或调整。如果用汽车生产线举例,当安装后视镜的生产线出现问题,如何迅速切换到另外的生产线,在故障排除后再继续安装,这也是对交付灵活度的考验。
所以说到敏捷,需要有一个机制,即当出现问题时可以快速回退,生产过程中的问题也要响应及时。要做到敏捷,就需要有一个强有力的平台支持团队,利用***的工具和方法与业务融合,高效地对用户提供支持。