《华为人》——每一步都有意义
有位国外架构师曾经说过:“如果你的软件被用到意想不到的领域,那就是软件工程师最大的成就。”作为一个已经和软件打交道十几个年头的工程师,真正领悟这句话是在我带领团队打造出了华为第一个Apache开源项目——CarbonData技术的时候。
听客户吐槽得来的灵感
说起CarbonData技术,这一个让我们整个团队都成就感满满的项目的成功,还有一个小故事。当时我们在做网络数据分析,需要对数据库进行选型,结果发现市面上的数据库都只能满足一部分需求,满足了这个需求就不满足那个需求。我们刚开始尝试的方向就是将多个数据库拼成解决方案,其实这是在遵循前任的老路,但由于数据库的部署、数据同步等问题使方案越来越复杂,很快就无法进行下去了。
有一天,我和客户聊天,他忍不住吐槽,自己买了各种系统把网络、IT部门、财经等数据分开,可是关联分析起来特别难,为什么数据库之间不能打通呢?他这番话让我有了新的思路,因为之前我们的做法都是“拼”数据库,各个数据库有自己的语法和API,因此还是比较难用的,需要把数据不断搬移,还很难解决库与库数据之间的关联分析问题。
为什么不把所有的数据放在一个库里呢?我的灵感就这样来了!我设想可以打造一个新的库,把存有所有数据的存储部分独立于计算部分,通过添加不同的算法提供不同的功能,这样不就可以打通一整片数据了吗?这个创新的想法其实也基于当时的开源系统上向前走了一小步提出来的,和当时业界很火的Hive,Spark等大数据平台类似,我认为这个肯定是未来的方向,但当时这种平台还在初级发展阶段,他们的性能都还达不到我们的业务需要,所以我们只能在上面再做创新。
我带领着团队通过分析过去数据库解决性能问题的手段,把索引、物化视图、缓存等技术引入到大数据平台上来,并将其改造成适应存储和计算分离的架构,实现了一种“按需分层”、“批次切片”、“自描述”的数据组织和加速技术。我们称之为CarbonData技术。最终,我们达成了业务目标,也将在公司开源委员会的提议下将它推入Apache开源组织,成为华为在这个领域的第一个开源项目。
其实在云时代,客户对数据分析的需求越来越多,目前CarbonData这个开源项目仍在不断发展壮大中,也让我也深深感受到了开源的魅力。很多人即使离开了我们团队,依然还在这个开源社区继续贡献点子,而国内外有许多公司也用上了这个项目进行数据分析,他们在使用过程中发现问题还会帮我们修改。最让我觉得有趣的是,有时候别的公司使用的场景大大出乎我的意料之外,我经常暗自惊叹:“没有想到我们这个软件还可以用在这里?!”也就是这个时候,我对开头那句国外架构师的话深有感触,深深赞同。
我的秘诀:学习+练习
进入Cloud BU之前,我是一名大数据SE。还记得在提拔沟通时,主管语重心长地告诫我“不管到什么岗位上,技术不能丢,积累越多走得越远。”在专家和主管的影响下,我也认识到技术的重要性,告诉自己写代码的能力不能丢,要做到既关注客户需求、关注业务发展更要关注底层技术,我觉得这才是一个技术专家长期发展的轨道。但走上这条轨道的过程是很痛苦的。
就拿大数据来说,对于我来说是一个新领域,能想到的招数不多,我遵循的是“学习+练习”的模式。每天我都沉浸在论文的海洋里,因为那个时候有关大数据的各类文章铺天盖地,但其实都在说一些似是而非、浮于表面的东西,我觉得了解大数据业务一定要沉下去,把握最根本的东西,所以我找了许多学术论文来看,从基本知识来搞懂大数据,重点了解这个领域还有哪些新技术可以发掘。看论文这个习惯我也一直保留到现在,每周至少要看一篇。
光说不练假把式,另外一招就是实际去操练。我发现现在做软件工程师很幸福,目前开源软件非常丰富,全世界很多优秀的工程师把他们优秀的代码贡献出来,可以直接学习。得益于开源软件不仅可以直接使用,还可以在它的基础上去修改,添加新功能。通过这种在站在巨人肩膀上联系的方式,让我打开了大数据的大门。
这段时间里,我们做过不少业务,通过对网络数据的采集、处理和算法,我们给交通局做过出行规划和交通流量预测项目,还给一些地方做过人流量分析项目,利用基站数据统计人流出入量,可以查询过去和预测未来的人流车流量等。
每个认真的“脚印”都有意义
如今我进入华为已经14年了。想当初我还是无线电专业的一名大四学生,因为毕业实习的缘故进入到华为,不想我与华为的缘分就此开启,几个月后我顺利入职华为。
回望回去,我经历过数个部门和岗位,还记得刚进公司我跟着主管到了印研所,在这里了解了软件开发整个具体流程,还和这里的专家学习到了代码检视和提前测试的习惯,提高了软件开发的能力。这段时间还有一个让我觉得挺骄傲的事,我和导师一起参与了H323安全标准的制定,这个标准主要是通过公私秘钥交换技术,保障通话过程中控制信道和数据通道的安全,使通话秘钥在安全的环境中生成和分发到通话双方,实现通话过程的严格保密性,并防止通话被第三方监听、劫持、阻断、中间人攻击等网络攻击。
从印研所回来之后,我又做了一年多的维护,这段时间我深刻感受到软件可读性和可维护性的重要性,后来我又从事网络数据分析,担任大数据SE,再到进入Cloud BU……这些深深浅浅的脚印组成了我的成长足迹,每一步都让我受益匪浅,让我有了专业的积累。
如今我在Cloud BU工作已经一年多了,这是我第一次从平台部门到业务部门,因为云的独特性能,导致了对软件设计的水平要求更高,要能预见需求,在线上拓展功能和性能,还要具备线上的运维能力。为了适配当前的变化,需要培养全栈能力。全栈从两方面体现,一个是技术上的全栈,从UI用户界面,到下面的服务器再到下面的底层平台,再到数据库、操作系统;还有一个全栈就是角色的全栈,从前端客户的交流,到开发、测试、维护等。
现在云上服务的一个团队不可能给你配这么多角色,就要求团队成员具备多个角色能力。在逐步转身当中,有些同事也会比较痛苦,但一定要坚持“螺旋式上升”的方式,在职业生涯中的每个阶段都要相信技术,各角色都尝试去做一做,反而更有利于向上发展。
以前有句话调侃说“认真你就输了”,但我认为,不认真你才输了,认真你就赢了。不管做什么,我都坚持一定要认真对待,沿着自己的路一步一个脚印的走下去,我希望自己以身作则,影响带领整个团队走下去。
本文为《华为人》版权所有,未经允许不得转载。如需转载请联系编辑部hwrb@huawei.com
- 点赞
- 收藏
- 关注作者
评论(0)