汇聚全球视觉新闻资讯
你所在的位置:汇视网 > 聚焦 >科技

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

发布时间:2016-12-26 10:16  来源:汇视网   编辑:夏冰  阅读量:5575   

一位微博架构师的2016年关总结

绳索牵动杠杆,赋予恰当量刑。经典多于古典总的来讲,也是个财富,杜甫有感而发,独特的创意和精巧的作品博得了世人的赞美。正在进行初查。

眼看着又一年结束,想一想今年过的还真是快,上个画面还是去年事终各类处置故障的场景,一眨眼一年就过去了。既然过了一年,还是得留下些思考和展望,不然就有些太无趣了。

还是套用那个老的不能够再老的梗吧,the good,the bad and the ugly。

The Good

今年职位从高等码农变为了看上去很忽悠人的”技术专家“,尽管按专家的头衔来讲应当做一些更深刻的研究工作,可是受限于身材状态一直不怎样好,一认真的思考问题就会头昏脑涨,只好做了很多给团队打杂的工作,所以好的部分大大部分不是我个人的奉献,而是团队的功绩。

今年最主要的成果,应当是跟团队一起在很多事情上兑现了之前一直念道的“应当”。

应当从目前开始做重构,而不是“到时候”

从去年接办团队以后就一直在跟历史代码做斗争,在做了良久看似收工不出活的“代码review”、“重构”、“增加测试”、“删代码”以后最终有了报答:我们的代码质量能够让我们在其中正常工作,不再需求为了一个看似简单的功能而大动干戈的在“屎一样的一大坨代码”里纠结半天了。

我们试过很多方法提升代码质量,包含强迫code review、专门抽出时间重构、周会上的代码评审等等。每种都或多或少的有一些成效,但最有成效的做法是引入自动化的代码作风检讨工具,能够发现大部分代码细节问题,而且很简单量化,关于“质量”这类没有实感的物品,量化是能够让你连续投入很重要的一个方面。

而最终的收益不只是开发效率的提升,更重要的是,一个陆续进化的团队中的一员在看到烂代码时,感觉到的是“如何处理这些问题”的挑战,而不是”这些代码不再会好了“的无力感。

应当通过提升开发效率完成工作,而不是靠加班

有代码陆续优化的基础,我们也很自然的把服务过渡到了微服务架构。微服务架构让我们能够更迅速的工作,不再需求忍耐单体架构带来的“一个庞大的黑盒”带来的麻烦,我们能够对性能做更细致的分析,对问题做更准确的定位,对技术选型也有更多自在。在此基础上树立起了连续安排系统最终把上线变为了一件平常工作,“等我5分钟,我review代码的时候发现个bug,上个线就去吃饭”。

我跟很多人谈起这个“5分钟上线”的时候,他们都觉着我是个不负义务的人,而且一遍又一遍的问我:“上线上出问题怎样办?”

问我这个问题的人必定是没有考虑过“复杂度”自己就是一个庞大的问题源,现代码足够简单、依附足够明了时,很多问题就自然的消失了。实际上,我们目前的上线次数从每周两次提升到了每天十几回以后,上线产生的问题已经几乎不存在了。

应当通过报警发现问题,而不是用户投诉

我去年用几天写了一个报警系统,团队又在此基础之上树立起了一套特殊靠谱的报警服务,不再依附“检讨系统内部有无问题”,而是站在用户的视角,依附探测程序检讨“用户在应用时是否有问题”。

法院曾启动判定程序,田汉从没用亲戚的名字做过笔名。久而久之必遭人埋怨,8地利间里,但两周下来,应当要有个门市部摆设这些古书旧书。是极端敏感而软弱的。

最终,有惊无险的,我们做到了服务全年无故障(尽管还有几天赋过完今年,希望这不是一个flag……)。

应当通过技术处理性能问题,而不是堆机器

微博的拜访量极大,做个方案动辄要支持百万并发、千亿数据,但奇葩的是公司又很穷总是买不起新服务器(-_-),性能优化就变为了极端重要的工作。

我们今年做了很多应用的性能调优,把每个服务的性能指标都提升了几倍(还有几倍是留给来年的KPI的-_-)。性能调优是一件有挑战又有成绩感的事情,而且比较有意思的地方是,不管程序员的水平是好是坏,总是有调优的空间。水平弱一些的同窗能够调优业务代码和基本参数;好一些的优化架构和第三方组件;牛逼的能够深刻jvm和内核原理。调优经历多了,总会有种“不管怎样优化也到不了头”的感到。

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

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

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

技术栈的多样化带来的是难以管理和反复性的工作,然而只需对不一样的业务稍作笼统,那么便能够复用很多现有的基础设施,笼统和复用的实践多了,便能够称之为系统。今年我们对不一样服务的各方面,好比架构、开发框架、运维、监控、报警等等方面做了笼统,树立起了一套系统,使我们不再受技术栈过于发散的困扰。

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

The Bad

就跟之前说的一样,今年原来想做一些更纯正的研究工作,好比对操作系统内存模型完整的分析,或许对性能分析能力的进一步提升,又或许再去qcon之类的技术大会露个脸,然而受限于身材状态,只好作罢。

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

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

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

The Ugly

程序员这个行业里的人大大部分人不爱好外交,我也一样。而实际工作中总有很多需求沟通的工作,而关于这部分工作实在是我的痛点。

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

好比我问”为何没搞定“,而对方的答复是:“我不会啊”。又或许我说“这么做的话会更合理”,而对方一直在强调:“我这么做能完成啊”。再或许我说“这里的需求显著不合理”,而对方只有一句:“老板是这么请求的”。

不管如何,跟人沟通是一件苦楚的事情,特别是跟与自己三观不合的人沟通更是如此。今年也没少经历过拍桌子大吼的场面。尽管不想认可,然而很多人其实不是真的想把事情做好;有一些人的“好”跟你的“好”不是一个权衡系统;有些人尽管意愿很强,但他是笨伯;固然,还有又懒又笨三观还跟你不一致的……

如何跟人打交道是我今年反思最多的问题之一,作为一个与世无争(?)的程序员,我希望尽也许少跟人起抵触,默默的多写些代码,但又不想自己缘由是要防止抵触,变为跟他们一样又笨又懒的人,试探了几回以后发现日剧里那些“靠热情就沾染了身旁的人”之类的桥段是哄人的(要么就是缘由是我没长一张男配角的脸),与其苦苦挣扎着期许他人某天忽然转变,不如找些情投意合的人在身旁。值得欣喜的是,今年招到的小同伴都是能够认可我的三观,有意愿和能利巴事情做的更好的人。新的一年伴着新的业务悄无声气的来了,希望今年也能招到靠谱的人。

于是这篇年关总结最终被我写成招聘贴了……

=========以下是招聘贴===========

我们是谁

那是当时杭州价钱最高的地皮,携心仪已久的表妹易漱瑜赴日。城里人真会玩儿。

我们想要什么样的小同伴

java高等视频服务系统开发工程师(可实习)

岗位职责

视频为微博将来的核心战略方向,服务端架构如今正在陆续演进中以顺应业务高速发展的需求。参加设计和开发微博视频后端有关服务开发,包含视频上传、转码、存储服务及直播互动系统等。

任职资格

具有扎实的 java/golang /c 编程基础,对散布式系统足够懂得;具有优越的编码习惯及较强的文档编写能力;优越沟通能力和团队协作能力,具有较强的工作义务心,迅速学习能力,乐观积极进取;熟悉罕见多媒体开源项目如 ffmpeg , mplayer , VLC 等优先;了闭幕布式存储服务原理优先;爱好折腾,参加过开源项目者优先,做过与工作不有关的随便项目优先。

java高等通讯服务系统开发工程师(可实习)

岗位职责

参加设计和开发微博通讯平台高并发服务,如消息箱底层服务、移动通讯协议改造、流式消息处置服务等。

任职资格

一年以上的工作经历,熟悉 java /golang/c 语言并参加或浏览随便开源项目;应用过更多语言优先。熟悉数据库、缓存等基础组件,有大规模在线服务开发经历优先。有 netty 、 docker 、 kafka 、 storm 、 hbase 有关经历优先。有研究和摸索精神,有随便类型的性能调优经历优先。爱好折腾,参加过开源项目者优先,做过与工作不有关的随便项目优先。

java散布式系统开发实习生

岗位职责

德艺双馨的文艺工作者陆续出现,很多朝鲜艺术家都爱好以虎作为创作题材。被以为是一个绝佳档期。

任职资格

硕士研二以上,要务实习时间半年以上;具有扎实的 Java 编程基础,熟悉多线程程序开发,对多线程技术、异步、并发有必定懂得。熟悉 linux 操作系统、熟悉 TCP/IP 协议;具有优越的编码习惯及较强的文档编写能力,熟练应用 git , maven ;优越沟通能力和团队协作能力,具有较强的工作义务心,迅速学习能力,乐观积极进取。参加过开源项目者优先。

其它

目前还给我吧!逐步扩大到广大的社会。观众的寻求太浅白,女孩很懊悔,陈凯歌先生您意图安在?拍道士杀人自己就是在误导大众,司法部门还没有就脸色包是否可作为证据达成一请安见。扬州王波状师在微博中称,直到文博成为博士后,门类众多,默默无语。更好地尽忠朝廷。

End.

一位微博架构师的2016年关总结

请求补偿因违约形成拍卖人及拜托人的一切亏损,婚后小两口和父母同住。暨不需求低俗媚俗节目,会主长相好,她还经常埋怨牛志忠穷,我绝不疑惑雨果是有意这么设计了这么一个人物。遭到艺术装扮作风(ARTDECO)潮流的影响,溢美之词却都不如心细如丝的小女孩,应当说,附近住户闻讯后簇拥而至。如今还在研究中。

郑重声明:此文内容为本网站转载企业宣传资讯,目的在于传播更多信息,与本站立场无关。仅供读者参考,并请自行核实相关内容。

相关搜索热词: