编者按
二十年,是一个什么概念?
对于中国互联网,过去二十年是个从无到有并且不断完善的时期。自 1994 年中国科学院高能物理研究所设立第一个国内 Web 服务器之后,互联网开始走进大众生活,1996 年底互联网用户达到 10 万,2016 年目前我国网民规模达到 7.12 亿。这二十年间,网民规模增加了 7000 倍,中国的网络使用普及率达到 51.7%。这个数字,比全球平均水平高 3.9 个百分点,比亚洲平均水平高 10.1 个百分点。
而对孙虎先生,过去二十年里他一直在 IT 领域工作,目前是 1 号店的平台保障部总监。从最初在银行工作,再辗转蓝点、腾讯和盛大,到现今的 1 号店,在这二十年的大环境发展中,他见证并经历了许多;从技术新人变成团队 leader,他积累了丰富的运维、研发和管理经验。“好日子,慢慢过”是孙虎先生的个人签名。那他怎样看待过去的这二十年,这些好日子他是怎么度过的?回望过去,他对个人、对职场生涯和对行业的心得有哪些希望和大家分享?带着这些的问题,InfoQ 与孙虎先生进行了采访沟通,并将文稿整理如下。
技术生命线之简单回顾
我 1996 年参加工作,在银行系统从事系统管理和软件开发工作,从那时开始便和运维开发结下了不解之缘。 最早的这三年多时间算是打基础的阶段,在银行系统,从事对数据库、unix 系统相关的运维和开发。
2000 年我独自到深圳闯荡,先后在蓝点、腾讯等公司从事研发工作。 在蓝点属于技术提升阶段,主要深入了解 Linux 和网络,研发一些网络安全相关的产品。 腾讯工作则拓展了视野,工作上涉及对海量用户 IT 系统的架构设计、运维开发,这个阶段接触到不少和海量用户、数据打交道的项目。另外,我很喜欢腾讯的人文关怀,也努力将这种氛围带到其他地方。
在深圳工作 10 年后,我于 2010 年携家带口来到上海盛大。 除了从事基础服务和运维的研发外,也负责 POI、数据等运营。对于这个阶段最大的体会是好的机会需要坚持,当时做过的旅游、LBS、O2O 等产品都挺不错,但转变方向太快, 如果能坚持一两年,收益会非常可观。
2012 年 8 月来到与盛大同在张江的 1 号店,开始创建运维开发团队,经过不到四年的发展,1 号店私有云从无到有从小到大,运维开发团队从 2、3 人发展到近 20 人,一粒种子成长为小树。 现在我的团队是平台保障部,整个部门除了实现平台研发工作:为公司提供运维自动化、SOA 基础架构和办公自动化服务外,还需要负责全公司的监控、质量保障、测试、应急处理等。平台保障部属于一个大部门,我负责的部分包括下面绿色框线中部分:
除了这几块具体业务,我还负责包括应急指挥中心(一个虚拟团队,由值班员、值班经理、系统咨询、架构、各业务组成)和演练,近期开展了交换机切换、大促缩容、流量切换等演练,目的是通过演练发现潜在的问题,让我们的业务更加健壮。
从无到有建立运维开发团队
回想 2012 年 8 月刚到 1 号店的时候,除了一款被吐槽的发布系统,没看到什么运维工具,大家运维得很辛苦:发生问题三更半夜起来处理是家常便饭,不光是运维同学出面,而是各团队都要来参与处理;人多情况比较乱,大家的意见也各不相同,半夜里有的要求回滚,有的凭经验要重启应用,有的建议查看 DB。
当时做发布系统的同学刚离职,负责维护的两位同学也感到很迷茫,其中一位刚毕业一两年,感觉玩不转了。发布一次之后发生故障概率很大,有时出了问题回滚,居然回滚了几个小时,结果大家宁愿手工发布也不愿意用发布系统。
虽然是一头黑线,但是也要上啊。 我花了几个通宵时间,把发布系统所有的问题汇总并且归类,包括发布系统自身的、业务的、操作的等类别,然后和各个对应的团队沟通改进方案, 内部也就 DevOps 的理念进行交流引导。为什么要需要各个团队的参与?因为如果发布不够高效稳定,受到影响的包括运营、研发、测试、产品、运维各个团队,最终会严重影响业务的正常运转和特性的快速迭代。最后通过各团队的一致行动,我们终于在两周多的时间内稳定了发布系统,也就奠定了现在的运维开发团队。
当时还没有私有云的样子,在监控选型上也有些不同意见,有的希望完全自研,有的要求不要给业务研发看到,有的认为只要用开源的即可。 结合当时的人员状况和公司的实际,我采用了开源 + 少量自研的方法,并倡导全员监控的理念,得以在较短时间让各团队都用上了方便的监控。 有了发布、监控能力之后,对基础数据的要求越来越高,领导对我们的支持力度也在加大,我们得以有机会开始建设私有云的第一个版本,涵盖 CMDB、装机、发布、监控、配置管理等。 随着产品越来越丰富、用户越来越多,我们开始了对各产品进行优化美化,通过 API 方式打通内外平台系统,逐步发展成了现在的乐道云平台。 我们选择乐道这个名称,有三个含义:快乐运维之道、安贫乐道、津津乐道。
目前 1 号店的技术团队大约 1000 人规模,为全国几千万用户的购物提供强大技术架构、研发和运维服务。 我负责的运维开发团队有 20 人,与其他团队密切配合(运维、研发、架构等),高效管理上万台设备的平稳运行。其他团队主要是运维自动化的需求方,我们会按照业务的紧急重要程度安排需求的深入沟通、设计、快速原型和迭代。
这四年坚持做运维开发工作,恰好赶上电商和云计算的高速发展阶段,加上领导和团队的支持,所以取得了一点成绩。我期待未来能在云端化和智能化上做出更多有益的产品。
最有成就感的是带过的那些团队
说一个 20 年前对我触动很大的事情:当时在银行系统工作, 领导对我说“领导就是服务”。当时我不太理解,但是在有了一定工作经验后,我越来越认可这一观点。团队里每个人都是我服务的对象,遇到问题领导要冲锋在前,遇到奖励让最有功的同学上,遇到黑锅我来,甚至还要检查下还有没多的锅?都给我压上。 需要什么资源我会尽量争取,短期争取不到的我也始终惦记着。想方设法为团队谋些福利,多让团队做出些有价值的产品,提升成员的成就感。“领导就是服务”这句话现在算是深入骨髓了,要感谢当时的领导:黄昌云行长。
现在带领团队,我很注重快乐高效与成长,实际上每个人有自己的优势与长处,我会努力创造一个好的环境,让每位成员各司其职、各尽其能、各得其所。
我非常喜欢“好日子,慢慢过”这句话,这也慢慢成为了团队名言。我的观点是工作要快,事情尽量做在前面,高效高质量研发;但生活要放慢,我们周末在家陪宝宝讲故事,在阳台品茶看书听音乐,在餐桌全家人共度快乐时光。 平时如果看到团队成员加班,我会要求他 / 她早点回家,未来需要的是健康体魄创造性思想,而不是代码工人。
如果问我这些年的工作什么最令我有成就感?是我带过的团队,他们都有着共同的特点:快乐、高效、稳定、战斗力强。
技术生涯发展的几点建议
这里想先讲讲我早年的一个经历。那时是在腾讯刚接手快速 Tips 项目,即大家看到的 QQ 弹窗,项目交接的前任同学刚刚因为事故受到了处罚。他好心提醒我,尽量少接需求,以免重蹈覆辙。 一方面,我对腾讯制度的完善受到触动,事故的各类惩处会一级级追究到 VP;另一方面,我却认为少做事不是解决问题的办法。于是,我快速开发了一个测试后台,无论谁想测试弹窗,可以直接使用,而且影响范围可控。最后,这样的方案既能方便各团队用新产品,又不会引发事故。 所以我现在在 1 号店的团队也建立了内部的奖惩制度,甚至包括涉黄也有惩处,方便积累活动经费。同时建立私有云平台,让各个团队可以方便地发布、监控、查看日志等,为业务团队高效研发创造良好的环境。
举这个经历为例子,是为了说明技术人应该怎样看待和处理公司的项目需求。少做事情一不能响应业务需求,二也失去了锻炼自己的机会。要通过思考和努力,在尽可能的范围内,完成工作保证质量。如果给出一个广泛性的建议,那就是遇到困难问题,主动想办法解决,对每个职场人的发展都大有裨益。一个人职业的发展过程,伴随着解决的问题越来越大、越来越难,如果解决的问题千篇一律甚至越来越简单,那很有可能是职业道路越走越窄。
再具体一点,对于处在技术生涯中不同阶段的技术人,发展侧重点略有差别。 对于刚刚入行的技术新人,要重视打基础的这个阶段,无论是什么规模的公司,我建议:
- 多思:为何这样设计、实现,能带来哪些益处,会有什么问题。
- 多做:别让自己闲下来,多做事没坏处,哪怕短期没有直观的收益,“风物长宜放眼量”。
- 沟通:及时回复,及时更新进度,有困难的确难以解决时及时寻求帮助。
还有一点,有个能带着你一起成长的团队和老大,很重要。
工作三到五年之后,要保持学习和发展。还有,就是要评估下是否达到了职场发展的瓶颈,我建议从下面四个维度进行考虑:
- 空间:自己在团队中的位置,公司在行业中的位置,行业的发展情况,综合出可以预见的发展空间。
- 简历:每半年更新一下自己的简历。不是鼓励大家频繁跳槽,而是通过这种方式,我们可以检查过去半年有没有成绩和进步。
- 持续性:马上可能面临组建家庭等问题,现有的工作生活与学习方式是否可持续,如果不可持续如何调整。
- 目标:我们离长期目标是更近了吗?有没有更好的途径、方法确保目标的实现?
关于加班这个话题
对于加班,我个人的看法是:如果是自己为了成长或业务,主动加班,很好,也是职业精神所在;但是如果只是被动加班,被不成文的规定、文化束缚,被不合理的进度限制,我不赞成。
作为知识工作者,如果不能留出思考时间,不能留出精力来发展业余爱好,不能在运动场上锻炼体魄,不能和朋友知己交流经验,长期来看一定是难以持续的。
的确,在这个时代,技术人很吃香。尤其是在一些人文关怀比较到位的公司,除了薪资不错,福利待遇也挺好。不过我们的梦想更重要,如果梦想和稳定冲突,我建议还是选择梦想:只有做真正喜欢的事情,才不枉此生。当你的职业就是你的梦想的时候,你会发自内心地热爱工作的时光。
我看 IT 的发展及未来
结合这二十年工作,对于行业环境的发展,我能感受到的四个方面:
- 硬件:内存从几 M 到几 G,硬盘从几百 M 到几百 G。别说磁带了,连当年常见磁盘都已经找不到了。
- 编程语言:可能现在很少有人知道 Cobol 啦,以前在银行可是很吃香的。C 语言还是历久弥新,而 Python、JS 等变得越来越热门。
- 网络条件:从几十 K 的猫,到现在家里 100M 光宽带和手机 4G,不可同日而语。
- 行业:这 20 年来热门语言和概念越来越多,不过很多基础软硬件没有什么变化。服务器是 X86,运行的 OS 是 LINUX 系统,Java、PHP 应用在 Tomcat、Apache 上跑,数据库不少仍是 MySQL、Oracle,网络协议也还是 TCP-IP。 变的是我们对 IT 的依赖程度越来越高,要求越来越严格,衍生出不少新概念新产品,如电商、电子支付、不断升级的智能手机。
未来,随着软硬件和网络的进化,人们希望随时随地获得高效安全的服务。我认为会体现在如下的三方面:
- 云端:大部分人处理事务只需要一个接入端,可能是手机、平板或建筑物的表面,随时处理公司、家庭的事务。
- 智能:很多工作外包给智能机器人,家中的智能管家负责打扫、烹饪、保安;工厂的智能机械负责流水线的运转;投资也交给智能顾问
- 安全:从买衣买书买手机,到手机转账、理财、交流,我们对安全的要求越来越高,这方面也是大有可为。 因此,IT 服务的云端化、智能化、安全化将是技术发展的方向。
未来的这些发展趋势,具体对应到我们运维行业人员,要跟上和引领技术的发展。首先实现运维的云端化,让各团队随时随地了解业务健康状况,便捷地构建、测试、发布;其次通过机器学习让运维更加智能,如何报警只报根源避免被现象淹没,如何自动修复典型故障,如何提前自动扩容避免事故,是我们需要探索的重要方向;最后在安全这块,除了做好运维平台自身的安全,如何帮助业务实现更好的安全,以电商为例,通过一键削峰、防 CC、防黄牛等安全项目,让业务安全平稳运行。我们 1 号店目前研发的主要内容是私有云,有了坚实的基础,与公有云的融合也很便捷,1 号店已经有多次成功实施的经验,与公有云的融合需要通过自动部署、发布、配置等,迅速将公有云与私有云打通。
嘉宾简介
孙虎,1 号店平台保障部总监。从业 IT 20 年,先后就职于蓝点、腾讯、盛大等互联网公司,具有丰富的运维、研发和管理经验。12 年加入 1 号店,从无到有创建了运维开发团队,并带领团队一步步打造出了 1 号店的高效运维私有云平台—乐道,解决了公司当时面临的配置、发布、监控和排障效率低的问题,大大提升了公司运维和研发团队的工作效率,保障了系统的稳定和高速发展。2016 年开始担任公司平台保障部保障总指挥,协调架构、运维、研发团队提供更好保障支持,为业务稳定发展研发更高效工具,指挥协调公司级保障项目:为 1 号店发展保驾护航。
评论