一名微博架构师的2016年终总结

  另外,我们今年基于云服务、容器技术、调度系统、混合云编排系统、容量评估系统和自身的微服务架构体系,实现了公司成本部门老是念叨的的“按需扩缩容”功能,我们的直播互动系统也成为了微博内部首个按流量自动扩缩容的服务,达到了“5分钟完成无人值守自动扩缩容”的状态。在这个系统的帮助下,支撑微博直播互动服务的常备机器只有几台而已,参加技术大会看到有人谈直播架构时,总是莫名的有一种优越感……

  应该做更多有挑战的事情,而不是一直重复自己的工作

  今年我们承担了更多微博的业务,我们如今应该算是微博里少有的“后端服务一条龙”团队,一整年来我们都在整合和优化各种服务的架构和链路。从消息箱底层业务,到tcp连接服务,到收件箱后端服务,到直播互动服务,到微博视频服务,到文件存储服务等等,这一年做了不少对原服务进行重写和进行新架构设计的工作。

  技术栈的多样化带来的是难以管理和重复性的工作,但是只要对不同的业务稍作抽象,那么就可以复用很多现有的基础设施,抽象和复用的实践多了,就可以称之为体系。今年我们对不同服务的各方面,比如架构、开发框架、运维、监控、报警等等方面做了抽象,建立起了一套体系,使我们不再受技术栈过于发散的困扰。

  换句话说,团队一方面享受着大公司的技术积累,一方面又有各种新业务场景带来的技术挑战,这是挺难得的状态。

  The Bad

  就跟之前说的一样,今年本来想做一些更纯粹的研究工作,比如对操作系统内存模型完整的剖析,或者对性能分析能力的进一步提高,又或者再去qcon之类的技术大会露个脸,但是受限于身体状态,只好作罢。

  前两年工作加班的比较猛,经常一搞就到凌晨5,6点。这一年也做了些调整,没再整到过后半夜,下了班就一溜小跑回家玩守……啊不是,回家休息。对团队小伙伴们的要求也是尽量提升效率,少加班。合理的作息和锻炼对于程序员很重要,”身体是革命的本钱“这句话诚不欺我。

  今年还有个遗憾就是没能实现“三十岁前用自己写的语言写一个操作系统”的愿望。也忘了这是什么时候定下的“小目标”了,在如今,写个语言其实并不困难,编译器已经是很完善的技术了;写个操作系统也有一大堆从入门到xx系列。但难就难在真的去做,说到做到和觉着自己能做到还是两件事情,希望有机会还是自己动手做一做。

  另一方面,对团队来说,还有很多想做但因为新业务太多而没有时间做的事情。比如弱网环境下的文件上传性能优化,微博私有通讯协议的优化,我们团队维护着的开源motan rpc框架对于微服务监控和调度能力的优化,还有最近微博越来越火的视频服务的后端转码服务、存储服务的性能优化,等等等等。这些只能期望来年搞定了。

  The Ugly

  程序员这个行业里的人大多数人不喜欢交际,我也一样。而实际工作中总有很多需要沟通的工作,而对于这部分工作实在是我的痛点。

  而痛苦的来源主要来自于沟通时不在一个频段上,

  比如我问”为什么没搞定“,而对方的回答是:“我不会啊”。

  又或者我说“这么做的话会更合理”,而对方一直在强调:“我这么做能实现啊”。

  再或者我说“这里的需求明显不合理”,而对方只有一句:“老板是这么要求的”。

  无论如何,跟人沟通是一件痛苦的事情,尤其是跟与自己三观不合的人沟通更是如此。今年也没少经历过拍桌子大吼的场面。虽然不想承认,但是很多人并不是真的想把事情做好;有一些人的“好”跟你的“好”不是一个衡量体系;有些人虽然意愿很强,但他是笨蛋;当然,还有又懒又笨三观还跟你不一致的……

  如何跟人打交道是我今年反思最多的问题之一,作为一个与世无争(?)的程序员,我希望尽量少跟人起冲突,默默的多写些代码,但又不想自己因为要避免冲突,变成跟他们一样又笨又懒的人,尝试了几次之后发现日剧里那些“靠热情就感染了身边的人”之类的桥段是骗人的(要么就是因为我没长一张男主角的脸),与其苦苦挣扎着期望别人某天突然改变,不如找些志同道合的人在身边。值得欣慰的是,今年招到的小伙伴都是能够认可我的三观,有意愿和能力把事情做的更好的人。新的一年伴着新的业务悄无声息的来了,希望今年也能招到靠谱的人。