毕玄分享会心得体会

来阿里很早之前就听师兄们说起过毕玄大神,我也是因为HSF才更加了解他。我的第一印象就是敬佩,毕竟不是谁都能写出一个能承载日均访问量过亿的中间件的。希望通过这一次分享会更加进一步了解他的发展历程,对于自己也是一种指导,果然没有让我们失望,分享会满满的干货,收获非常大!

关于毕玄大神的分享会其实红学会早在一星期前就摆起了海报,所以大家都知道是今天(09月28号下午15:00-17:00),所以我们两点四十就去占座了,不一会儿现场就满座了,可想而知他的影响力多大!

毕玄主要从他在阿里的发展经历来说的,而每一件事情都对阿里产生了非常深远的影响。按时间的先后顺序主要是以下几件事情,下面详细展开。每一件事情他都会分享做这件事情的原因(为什么做)以及做了产生了什么影响。我觉得这点很重要,在我们日后的工作中也需要做到不仅知道how,更要知道why。

HSF

HSF分布式服务框架研发,那是他来阿里的前两个月,压力很大,虽然一波三折,也踩过很多坑,但是HSF成功上线了,并且后来在集团内部全面推广开了。HSF使我们集团目前使用最广泛的分布式服务框架,几乎所有的开发同学都知道HSF。目前HSF的日平均调用量已经达到100亿次以上。关于为什么要做HSF?他给出了答案,就是淘宝网当时用户数量不断地上涨,访问量不断地加大,而他们面临着一个无法继续增加机器来解决日益增加的用户访问量的困境。这个时候需要技术上的突破,所以,当时的选择就是切分,数据库切分,业务拆分,一个大的应用一下子变成了一百多个小的应用,那么这些应用之间如何高效通信呢?考虑过使用JBOSS自带的通信机制,不过考虑到JBOSS太重了,不利于维护,所以后来就自己重新研发了一套,这就是HSF的由来。仔细想一想,其实每一个技术架构的演变都是有一个大的背景的。网站没有到这个量级的时候就不要轻易尝试业务拆分,否则只会浪费人力物力。

后来有人问到,关于HSF和Dubbo两个分布式RPC框架,毕玄是如何做出选择的,他首先肯定了Dubbo作为RPC框架的各种优势,比如Dubbo的上层做的很好,非常易于拓展,文档齐全,代码结构清晰,因此非常利于开源,而HSF则没有Dubbo这么有优势,但是他有做出了非常简洁的回答就是HSF经过历次双十一的考核,已经被证明是非常稳定的系统,而Dubbo没有经历过,所以我们不能冒这个风险,不能再相HSF刚开始上线的时候那样线上试错,因为我们再也无法承受这样试错带来的后果。所以,最后整个集团决定使用HSF作为最终的选型!

HBASE

毕玄谈到HBASE的时候,说到当时全集团各个团队几乎使用到了市面上流行的所有的NoSQL数据库,比如MongoDB,HBASE等等。他对大数据这块也是比较陌生的,但是觉得比较有意思,所以就投身到了大数据的研究,想到整个集团使用了大量的Hadoop,所以整个NoSQL选型他们选择了HBASE,凡是集团和HBASE相关的问题和疑问都可以找他们解决。于是HBASE在集团的使用率越来越高,后来基本上全集团都在使用HBASE。这对中国的互联网行业产生了非常重大的影响,因为阿里使用HBASE,所以整个互联网行业基本上都在往HBASE上靠拢。HBASE也正因为此在中国一下子发展起来了。

T4

我一开始看到这个也是非常不解的,T4是什么?毕玄解释道,在做T4之前,集团一台机器上同时只能跑3个应用,资源的利用率极低,浪费了大量的预算。所以,需要寻求一种能够使物理机的使用率大幅提升的解决方案。Linux虚拟化这个领域是毕玄从来没有接触过的领域,但是他需要做成这件事,怎么办呢?他找到了我们集团的神人-多隆。多隆研究了一下Linux的虚拟化技术,使得每一台机器上能同时跑20多个应用,一下子提高了机器的使用率,相当于给集团省了七分之六的机器,这可是一大笔预算啊。技术的提升带来的不仅仅是生产力的提高,还有生产成本的降低。

异地多活

为什么要做异地多活呢?首先来介绍一下背景,之前阿里一直是在杭州部署的机房,我们都知道机房是特别特别耗电的,有一年电力特别紧张的时候杭州市政府不得不考虑停掉阿里的机房供电,要知道在民生问题前面什么都可以妥协,但是杭州市政府也没有不管阿里,于是调来了浙江最大的才有发电机供阿里的两个机房供电,这才勉强的度过了难关。毕玄说到,不能再这样被动了,如果明年还发生这种情况,如果明年停掉的是三个机房呢?所以我们得自己处理好这个问题,于是异地多活的项目便展开了,他带领着运维团队的同学们奋战了三年,终于做出了我们自己独特的解决方案,这个问题有多难,世界上还没有一家公司做成过,谷歌做过全球部署,但是也仅仅是广告业务,如果跑电商业务,一上线立马就挂,所以阿里巴巴还是第一家。异地多活成功地解决了异地容灾的问题,大大提升了服务的可用性。

混合云和混部

主要说说混部吧,混部其实就是将在线计算和离线计算放在同一台机器上同时计算。说白了就是线上应用和离线应用一起公用资源。问题的关键就是解决CPU的使用率问题。离线计算的任务有一个特征就是给多少资源它就会吃掉多少资源,如果和线上的应用同时部署,那会立马占用线上的应用资源,这个可是一个比较难的挑战。我们给出的解决方案就是改写了CPU线程的调度器,然后又做了一些其他黑科技的工作,带来的效果就是机器的数量没有增加,而整个系统的性能却大大提升,能服务更多的请求。毕玄说到后面我们的目标就是要做到没有一台离线机器,全部都要做成线上机器。因为每一年我们需要采购N多台离线机器,每一台机器不说多的,几十万差不多是有的,所以这个成本是巨大的。混部和混合云给集团节约了巨大的成本。还是那句话,技术的提升带来的不仅仅是生产力的提高,还有生产成本的降低。

心得感悟

  1. 毕玄大神:“见过猪跑非常重要”
  2. 从被动解决问题到主动发现问题
  3. 自己能力的提升价值没有整个团队能力的提升价值大
  4. 对自己实施的项目负责到底,直到觉得没有突破的点了
分享到