腾讯网络平台部网络架构中心总监马志强讲述了中国国内SDN发展的需求与实践。
业务部门作为小网工面临的问题是什么?我们要维持上万台的设备,数十万的部件,还有无数的线路,我们有上千条线路需要维护,这么大的压力你们也理解一下,你看我们的技术我都要去学的,比如说PCEP,你们知道有多难吗?还有很多功能不在我掌握范围之内,设备是网络厂商开发的,他造成的BUG我没有办法,还有大家知道网络很大都在用运营商的五大网络,一旦他们有风吹草动业务部门都说你没有做到位,业务部门也蛮认可我们的,业务部门说你们真的不错,我知道他背后的意思是什么,其实代表的是你们动作太慢了。那么怎么解决这个问题?我今天从两个角度来说。第一个是SDN的确是一个好东西,不去从技术层面谈论这个怎么样,SDN的确能够给我们解决问题,所以大家听到的腾讯所有分享的东西,全部来自于最真实的想法。我们在两年前做的调度,在今年3月份的时候正式做成了。这些SDN方案都是来自于最真实的问题。这是第一个。
第二个所有用到的方法不是说用SDN的方式是什么,里面是不是最牛最强最棒的技术,并不一定是,只要能解决的就是SDN的解决技术。第二点我其实想谈除了技术之外还有什么?非常关键的就是DevOps,我们理解对运营网络来说我不再用传统的网络运营的方式去做,用这些方法运营网络太慢了,其实围绕着DevOps我们做了一些工作,我们的网络建设,比如说今天要建设一万台两万的数据中心网络,很快靠前面刚毕业的大学生都可以建成,这是我们花了将近四五年的时间才实现的,这对我们来说帮助非常大,因为不需要网络老专家去建设我们的网络了,只要有一点点经验的人,用我们的系统,就是用我们定义的生产线构建这种网络就可以建设下去,这是我们在建设领域做的非常好的DevOps尝试。但是反过来回看我们运营的时候我们离DevOps太远了,我们还是在最原始的状态。大家看到手工作坊式的,我们依赖的是老专家,经验非常丰富,懂防火墙所有的状态特性,老专家迅速的登陆防火墙的问题,我说这个故障30分钟搞定了,我们专家经验丰富,虽然30分钟搞定,但是业务对我们的抱怨还是很多。我们的业务还是处于最原始的。
什么是DevOps,举一个例子,来自于互联网业务部门,当我们看到DevOps的时候,我们做了很多对比发现,我们的业务运营部门就是在用DevOps的理念运营他们的系统。大家看我这里举的例子从这里面可以看出来左边往右推做的运营的工作,比如说业务区,业务要做一些调整、迁移,这些工作是已经做到什么程度,而你看到我们是全手工的,就是这种相对比来说我们跑不过他们的业务,我们的网络是需要通过老人家判断,看到我们的业务所在,我们看业务怎么做的?这个是我们业务平台,大家可以由兴趣去看,腾讯公布出来的在南京,他们就在这个平台上工作,他做的事情是当我出现一个故障的时候,我能够快速的用一个套餐执行下去,就定位出问题到底在什么地方,当然这里面有很多技术的难点,尤其是不同的专业他判断的依据是不一样的,还有更关键是流程快速的执行,这里只有什么时间需要人做判断的时候才需要判断是重启还是切换,只有这种人才有,这种套餐执行相当之快,那我觉得探寻业务你怎么就有这个意识做这个事呢?
很长时间我们去交流的时候才给我们提供一个内容,大家看这个词提的是什么呢?由业务运营向规划性降低运维操作数量,第二个是培养运营工具挖掘,第三个是培养运营开发的工具设计和脚本开发。业务运营的人天天都是在这个方面去组织他的结构,找他的运营人员,网络运营的人在找什么样的人?我们找网络的工程师,就是这种情况下我们跟业务也跑不过他。所以我们去年开始转型,跑网络的研发,走平台,网络研发你写这样的平台,类似于南京的平台,你去写也能让我们的网络运营人员做开发做编成,网络运营的人们也不要拘泥于经验放到平台上来,我们也是套餐化,自动流程执行,这个我相信我能够感觉到业务。这是第一个从运营出发,除了今天在SDN领域上,今天还有很多可借鉴的。
第二个还是谈一点SDN,现实当中我们其实受到的压力其实也来之汹涌,大家很多听过外界的先例还有压力通讯非常快的望云里走,说实话云给的压力非常大。网络领域面临的是什么挑战,大家这几天听了很多,听到我们的虚拟,听到混合云听到太多的东西,这些都要网络实现,但是大家有没有注意到这里面很关键的一个点,就是网络已经开始软化了,我不代不一定非得买一个硬件的盒子,可能的是一个软件,甚至很多软件需要自己开发,这个很关键就是研发。说到这些挑战业务的印象是什么?你的SDN领域到底是怎样的,我们吹再多业务感受是什么?
这里举一个例子我们跟业务说出去的讲的是速度,比如说网络设备安装30个工作日,业务给我的反馈是等你这个做完了我这个业务就死了,大家看到我们的网络动作非常慢,业务有一次2013年跟我说除了常规的网络之外,我们在外面有一个非常重要的特性,能不能在外网限制我们的流量,其实大家懂网络就知道其实蛮简单的工作,我告诉业务你等我一下我先给你设计一下,用什么样的特性,用什么特性以后我评估设备软件支持不支持,支持完成以后我要部署,测试完成以后我要做,业务部门说你们不是有SDN吗?那段时间我没有搞明白SDN是什么,他说你们不是有SDN吗?我觉得我完全已经落后业务好久了。
结合SDN网络软化这个趋势,业务对我们这样的预期,这时候我们提出了我们要站在巨人的肩膀上,我先回顾一下我们怎么做研发的。说实话腾讯的网络研发一直很强,五年的时候我的人一半是研发的人,很多网络团队还没有我这个团队,我五年前就是这么一个结构做这件事。五年前我们做很多工作,比如说网络管理,但是到SDN来的时候,其实我们在去年年中的时候做了一个很重要的尝试,我们做了一个小的控制器的尝试,做了半年的时间,做了之后发现这个控制器其实蛮好的,也挺开源的。这个控制器也可以很好的掌握核心硬件在我们手里,做着以后就发现有很多东西要解决,比如说接口问题,因为我们有很多设备的厂商,每一个都要自己去写自己去解决。
PCE案例当中,我们用PCE耗费一年全部在互联网上所以当我们把一个接口去实现会浪费时间。第二个是性能问题,这个平台在运营网络中用起来满足我的性能,还有一个可靠性的问题,这个问题你做你会发现我花很多时间去做,但是我们产出没有。所以去年看到这个问题的时候,觉得这个时间业界有一个好东西,我们去年决定不做了。大概花了六个月的时间投了三四个月的时间,我们卸下历史包袱蛮艰难的,那个时间我们还是毅然做了这个事情。有了经验的积累,大家觉得网络的研发,要站在巨人的肩膀上我们就用开源好了。另一个就是文化问题,研发领域的人到底是怎么想的?我看过很多这方面的,他根本不会交流,有很多同事跟我说写C的会鄙视写JAVA的,写后台鄙视写前台的,写前台的鄙视运营的,这是很现实的问题,我在不断扭转他们的文化,只要能产生价值就OK,第二个文化我们研发的人员,你知道我从来没有看过太成功我把别人的代码拿过来然后自己添加的,一般都是别人的东西都是垃圾。这句话就是别人的开源都是垃圾,在我面前我不敢说外部都是垃圾,至少可以尝试开源的东西,遇到文化的问题,自己的经验解决了,你再看外面到底有什么,这是我们今天自己的解决,这些都是业界公开的东西。
你看网络界的开源东西本来就不多,真正能做好的更不多,我们发现SDN的确是很好的东西,还有一个空前度问题。大家看到版本往后,更关注的是这里面有很多政治斗争,是不是某一个厂家绑架了组织,大家都说明年,我看到的不是,我们积极拥抱OpenDaylight。在一个控制领域中,最底层接口、性能、可靠性问题,如果有平台帮我检测我就释放出来了,我的长处是我最理解我的业务,我的业务怎么发展,需要什么样的网络这个是我的专业,谁都抢不走。
分享了两点。第一点是从运营开始根本就想不过来需求,我们要从SDN技术上突破,更重要是从运营突破。究竟怎么展开呢?SDN我们的思路就是站在前人的肩膀上,说不定我们某一天就会被人家超过去。谈到开源我们今年一年也做了不少事情。今年组织了非常小的民间小分队,拉了BAT还有中国电信一起做,尝试做中国开源,重要的关健词是开源SDN。第二个关键词是实践,我们真的需要一些东西,我们真的是有一个平台大家互相交流经验,在代码级做实践,可能很多人不知道有没有参加过,今年4月份在北京做了一次实际的训练营,效果蛮好的,30多个人参加为期5天上的实战训练。