作为公司的技术“大牛”,张赛身上有很多头衔,自带光环,比如华为云管理软件总工程师、华为首批Clean Code软件训战教练、首批Java教练,以及华为云Stack混合云管理软件元老级骨干专家……要问他最喜欢哪一个?你可能猜不到,就是华为首批Clean Code软件训战教练。
谈及原因,张赛表示,首先,他个人的性格比较喜欢交流和沟通;其次,华为公司近几年对软件的开发越来越重视,为了提升软件产品质量和软件开发人员的素质和水平,华为大学主办了一系列Workshop,Clean Code软件训战就是其中一个,各产品线和团队积极参与,而身为教练,能够分享自己多年来在软件开发方面的经验,让他乐此不疲。
01
左手抓技术,右手抓管理
张赛在2009年取得硕士学位后便进入了神州数码公司,从最基层的工程师做起,主要参与了Boss系统客服产品的开发。2011年7月,张赛加盟华为,一开始从事CDN产品的开发,大约一年后便跨入了云计算领域,成了ManageOne开发团队中的一员,从一名普通的开发人员,不断成长,很快便成为模块负责人,然后成为子系统技术负责人,再后来被任命为软件总工,直到现在。从ManageOne的第一个版本开始到当前最新的8.0版本,张赛亲历并见证了ManageOne从原来单体架构转变成云化架构的全过程,是名副其实的华为混合云管理软件元老级骨干专家。
在大学期间,张赛的专业就是一个复合型专业,一半是管理,一半是计算机。今天,作为软件总工,张赛的工作也是一半技术、一半管理,是标准的学以致用。但是写代码始终是张赛最大的兴趣所在,所以即使在被任命为软件总工后,他一半的时间还是在软件开发一线。“现在,我还在写代码,毕竟作为软件总工,必须非常熟悉产品的一些关键逻辑和架构,同时还要掌握操作。所以,在遇到一些关键策略时,我还是会自己编码处理。”张赛认为写代码是一件有意思的事情,经过一番努力“倒腾”出一个新的软件产品,这是张赛最感兴趣,也是最想做的。
在张赛看来,软件总工的工作在某种程度上有点像架构师,不仅要研究架构逻辑,还要规划代码编码,并且要决策哪些该执行,哪些不该执行等。这些决策类的工作比较繁琐,却是不可或缺的,也是软件架构逻辑合理优化、持续演进的保证。“当新的功能和产品诞生时,或是架构实现了重构、代码实现了优化,我都会有一种强烈的成就感。”张赛表示。
在华为工作了多年的张赛感受到了公司近来明显的变化,就是软件已经被提升到公司战略的层面。闲暇时,张赛经常与一些老同学、老同事聚会聊天,其间不免会聊到工作、软件开发等相关话题,大家普遍认为华为是个很好的平台。华为在软件开发上的投入和扶持力度更大,这让所有编码人员和程序员有比较深的感触,对其未来的职业发展和提升是非常大的助力。
通常来说,华为混合云管理软件版本更新的频率是大概每三个月一次。虽然每次有重大版本更新之前,开发人员会进入冲刺状态,加班相对较多,但是每逢周三和周五的晚上,各个部门都会组织一些体育和娱乐活动,开发工作有张有弛。
在张赛看来,软件开发工作本身就是有苦有乐,苦中作乐。上周和一个朋友吃饭时,这位朋友也问了张赛一个他经常被问到的问题:“做软件开发不枯燥吗?”“当你怀着浓厚的兴趣,专注地做一件事时,会感觉时间过得很快,很容易进入两耳不闻窗外事的状态,当事情做成后就会非常有成就感。”张赛深有感触,“我有些时候就会进入这样一种状态。去年遇到了一个技术难题,百思不得其解,突然一天想到了一个思路,然后开始连轴转,最后攻克了这一难关,一种成就感油然而生。这是自我激励的最高境界。有了这种经历和感受,再做任何事就不会觉得枯燥,反而会比较坦然。”
02
混合多云时代,捅破那层技术的窗户纸
张赛所在的ManageOne团队汇集了各方软件精英,大家数年如一日埋头于ManageOne的开发,不仅经历了坎坷挫折,洒过汗水和泪水,当然也有令人难忘的成功和喜悦。
作为一个非直接的技术管理者,张赛坦言,他更多的时候要发挥其领导力或者个人影响力推动大家做一些事情。2012年,张赛刚接触到ManageOne这个产品时,该产品正处于从1.0版本向2.0版本演进的过程中。从最开始一个普通的开发人员,到后来慢慢负责几个关键核心模块和子系统的开发,其后参与了ManageOne每一个重要版本的开发,尤其是到ManageOne第六个版本时,实现了一次重大的架构变革,即云化架构转型,而张赛正是这次云化架构转型的主导者之一。
对ManageOne来说,2017年的那次云化架构转型是一次质的飞跃,其中的艰辛可想而知,至今回想起来,许多开发过程中的细节张赛还历历在目。其实,早在2016年,ManageOne便已筹划转型,最开始从运维方向上做了一次试探,结果发现云化架构转型并不像预想中那样简单,团队无论是意识、技术还是工程能力都有不足,再加上没有成功的经验可以借鉴,所以暴露出一些问题,甚至走了一段弯路。比如,架构拆分不太成功,导致资源占用增加,另外还有接口的请求效率等方面的问题。从2017年到2018年,ManageOne团队一直在埋头苦干,不断调整和优化其架构。
在自身做到云化架构后,ManageOne对云的理解也更加深入,从用户体验和功能特性上逐渐完善增强。6.3版本交付管理混合云特性,多云作为资源池进行管理和运营。6.5版本交付云联邦特性,支持全部的多云服务的管理和运营,且具备完善的租户隔离机制;同时服务构建特性也开始商用,服务构建特性面向企业应用,致力于应用快速开发部署,提供强大的应用编排能力。8.0版本会在用户体验上有极大提升,值得期待。
简而言之,ManageOne是一个云化数据中心的云管平台,主要包含运营和运维两个大的子系统。具体来说,在运维方面覆盖整个数据中心的运维,包括监控、自动化操作、智能分析等;在运营方面,ManageOne强在云资源的发放和使用,还包括后期的计量计价等。未来,ManageOne会面向更多企业级IT应用场景,加速企业应用的开发,为企业IT提供更好的支撑。
如今,越来越多的企业逐渐达成了一种共识,未来将是一个混合多云的世界。ManageOne作为一个高效的混合多云管理平台,将进一步简化企业的上云之旅。
陪着ManageOne从1.0走到了8.0,未来肯定还会有更长期的陪伴。回顾开发中的点点滴滴、酸甜苦辣,张赛深有感触:“云化转型不仅仅是技术上的创新,更是互联网时代快速交付模式下一种实践的产物。它需要架构、组织和工程能力相结合才能取得成功。”在混合多云时代,云化架构或者微服务架构,在分布式的情况下会带来更高的复杂度。理顺逻辑架构、拉通组织和运维、实现协调发展,才是最重要的。
03
开发者的“手要再长一些”
ManageOne混合云管理软件之所以能够如此快速地演进,有一支特殊的ManageOne特战队不得不提。正是张赛带领着这支ManageOne特战队开发和重构了ManageOne接入定制框架、资源采集调度、消息中间件CLIENT归一等功能。当前,ManageOne已成为华为云Stack混合云解决方案的关键组件及核心竞争力。
作为提升软件能力的一种快速有效的方式,华为从业界招聘了一批软件高手,组建软件特战队,专题解决华为各产品软件方面的问题。张赛将一些业界的软件大牛、华为公司各相关部门的软件精英,以及专业的DBA集中到一起专门突破ManageOne开发中的技术瓶颈问题,就是ManageOne特战队。在这支特战队中,大家积极交流,相互协作,为解决一个开发难题日以继夜。正是在这样一支特别能战斗的团队带动下,ManageOne才顺利完成了云化架构转型,并成为华为云Stack混合云解决方案的重要部件。
其实,张赛的本职工作只是负责关键方案设计和核心代码编写,全面实践落地Cloud Native架构、工程、组织的各项实践,通过落地服务化架构转型、构建并打通端到端自动化流水线、全功能团队转型等各项实践,实现产品架构竞争力和研发效率的提升。但是在本职工作以外,张赛更多地承担起发现和培养软件人才,促进软件生态发展的“志愿者”的角色,虽然花费了大量心血,却始终无怨无悔。
举例来说,张赛持续组织“王者代码”活动,在业界构建开发者圈子,吸引了大量优秀开发者人才。张赛介绍说:“公司内有很多代码写得非常好的兄弟,他们都是‘千里马’,如何让他们充分发挥自身的能力和价值,这是我经常思考的问题。另一方面,业界也有很多技术好、有追求的专业人才,我也在考虑如何把他们招聘进来,人尽其才。为这些优秀的软件人才提供一个可以施展的空间,把内部的人才推上去,把外部的人才吸引进来,这是我创办王者代码活动的初衷。”
在近两年的时间里,张赛持续组织举办了8次“王者代码”活动,平均每个季度一次。通过这些活动遴选出一些写代码的好手,在部门内部进行大力宣传,他们的经历、成绩会在办公区的大屏幕电视中进行滚动播放,让所有人学习,甚至膜拜。2019年,通过“王者代码”活动脱颖而出的几个人都得到了破格晋升。如今,“王者代码”活动已经形成了一套固定的流程,实现了良性循环。
在很多人眼中,软件开发这个行业是吃青春饭的,因为软件技术的更新换代实在太快了。张赛表示,如果不能跟上技术发展的步伐,被淘汰在所难免。另外,软件开发者一定不能短视,只局限于自己所从事的工作,而是“手要长”,既要了解前台应用,也要了解后台支撑技术,还要掌握数据库底层技术、OS等,如果对整个软件体系都非常了解,那么做起开发工作来也会游刃有余。