本文转载自微信公众号“ 鹅厂网事”(ID:tencent_network),作者:黄翔。
鹅厂是一个业务类型非常丰富的互联网公司,涵盖了大型社交流量平台(微信/QQ)、在线游戏、公有云、媒体(新闻/视频)、移动应用、开放平台、互联网金融等,不同类型的业务都有着自己的技术应用特点、业绩目标、成本考量体系,从而产生了对后台技术支撑能力的不同诉求。网络作为基础架构中的重要一环,也面临着这些海量业务运营带来的种种挑战。好在鹅厂是一个专业技术能力较强、内部合作顺畅的生态系统,将“不断提升用户体验”作为统一的技术目标,很多事情就可以分布式合作去完成,基于这一特点,作为鹅厂基础网络平台的架构师也深感幸福,因为可以更收敛、更聚焦的去解决一些有共性的重点问题——标准化的基础网络平台。
成都创新互联主营包头网站建设的网络公司,主营网站建设方案,重庆APP软件开发,包头h5微信平台小程序开发搭建,包头网站营销推广欢迎包头等地区企业咨询
怎么搭建这个庞大的基础网络平台本身是一个非常复杂的议题,网络技术本身在这其中可能只占据不到20%的分量,为了让网络规划、建设、运营形成一个健康的体系,并不断提升业务系统面向用户的体验,需要考虑非常多的问题:包括网络技术选型、公司资源发放趋势、端到端的运营体系、网络技术发展趋势、硬件供应链管理、综合成本把控、迭代与稳定运营之间的Trade-off、风火水电、国内/国际通信环境等等因素,而这其中每一项几乎都可以写几本书来讲了。本文则聚焦于网络本身,笔者争取用通俗易懂的描述,简单的分享一下鹅厂构建基础网络平台的思路。
先看一张鹅厂基础网络平台的整体架构图(如下),网络之所以会演进到今天这个样子,主要是因为鹅厂网络的价值主体是不断构建和优化的两个能力——“连接服务与服务的能力”与“连接服务与用户的能力”,网络架构的发展必须围绕着两个能力来演进。同时,再根据上层业务特点(离线/在线)、地理资源丰富程度(地/电)、ISP网络布局、灾备要求、综合成本构成等因素,将整体基础网络平台分为三大块:
数据中心网络聚焦于“连接服务与服务的能力”,在整个网络投资板块占据很高分量,通过多年的积累,数据中心网络已经形成几万网元的体量。面对如此体量的网络,一定是需要有一套严密的构建体系来支撑的,包括设计、建设、运营、供应链管理等环节,因为随便一个错误意味着不可想象的影响范围和返工量。按照常理来看,数据中心网络是离业务最近的网络,而如此大的体量应该是运营压力最大的部分,其实这个问题在鹅厂并没有想象的那么严重,前文提到过,鹅厂是一个专业能力较强、内部合作顺畅的生态系统,经过了多年的磨合,上层业务和基础网络形成了很好的合作默契,业务系统架构(尤其是平台级业务)的健壮性、容灾设计、调度能力达到了非常高的水平,使得基础网络平台的架构师可以用标准化、健壮性好的技术来满足几乎绝大部分业务对数据中心网络的要求,从而可以有更多精力集中在数据中心网络相关更底层、更专业领域内深耕细作。
关于鹅厂数据中心网络的玩法,或者说要运转数据中心网络需要具备什么能力,将这些年的经验和思路可以稍作总结如下:
· 数据中心网络与基建环境(Campus/Building)深度结合进行整体设计和交付,采用多级CLOS方案进行Campus-level/Building-level的整体端到端设计,包括设备功耗规划、设备上架布局、布线规划、物理故障域规划等方面,以达到综合架构、建设、成本、维护上的最优解。要从方法论高度对数据中心组网的CLOS结构有深入研究(上图是Sigcomm论文中G家的数据中心网络的逻辑图),这个议题其实没有想象的那么简单,是一整套综合考虑交换机成本、光成本、风火水电环境、网络技术等一些列问题的方法论体系,关于CLOS网络怎么搭建,鹅厂架构师甚至总结出了一整套公式算法,后续会开设专题进行探讨。
· 要对交换网络体系架构有较深入的理解,这是网络架构设计最基础的技术储备部分,无论是自研交换机还是商用交换机,都对技术开发、测试能力、基础技术的掌握能力有较高的要求,这里面涉及的点包括交换芯片、光部件、系统协议栈、对SDK使用的积累等部分。
· 对行业现状和趋势的整体分析能力,对行业供应链的整体把控能力,并且可以针对行业环境的变化具备敏捷的适应能力。比如随着服务器接入速率的不断提高,在数据中心网络总成本中,光的比重越来越高,要能提前洞察到这些趋势和变化,并结合自身的情况调整战略和架构。
· 海量标准化的数据中心网络生产已经成为贯穿全年的常规工作,需要有一整套贯穿架构设计、建设、运营、扩容、资产、变更、退役等生命周期线上自动化管理工具系统,才能保证IDC生产业务的健康运转,鹅厂在2014年重构了一整套这样的工具系统,并不断优化迭代,从架构设计到机房退役,都可以在线上完成。
· 运营工具平台需要从多维度对数据中心网络进行立体监控,包含了白盒监控方法,比如针对网元本身的告警管理与收敛;黑盒监控方案,比如Full-Mesh的Probe反映网络健康状况;还包括与上层业务之间的映射和互相联动,比如鹅厂最大的流量平台微信有大量的服务器和一整套网络质量监控系统,与网络平台合作一同快速发现故障并联动操作隔离。
· 对SDN方法论的正确使用,是需要根据场景来构建SDN体系的工作内容和效用,SDN在数据中心网络更多的是针对大规模网络的Routing适应性问题、集中链路状态维护、拥塞管理、故障屏蔽等方面发力,非常有针对性的解决问题,而不是SDN for ALL。
边缘网络(海外)
边缘网络(Edge)聚焦于“连接服务与用户的能力”,其主要任务就是能将鹅厂的服务以最短的路径、最好的质量送到全球各地用户的手上。国内的边缘网络普遍以静态对接ISP的形式存在,海外则以BGP对接为主,本章节主要对鹅厂海外的边缘网络架构进行介绍。
海外ISP数量众多,导致全球Internet是一个非常复杂的网络环境,如果鹅厂所有的服务都是从海外的Data Center直接送给当地的几个大ISP从而触达全球每一位用户的话,是非常难做到给各地用户都提供非常好的网络体验的。鹅厂花了大力气来解决这个问题:
· 鹅厂部署了很多资源来获取全球用户触达鹅厂各地服务的探测和质量数据,作为业务开展和网络加速的依据,从而可以制定出有针对性的架构方案和建设计划。
· 边缘网络用于连接各个ISP,这个连接我们称之为“出口”,出口的类型我们从架构上分为两种:基于Region的主出口Edge,和用于区域网络加速的Edge-POP。
· Edge作为基于Region的主出口往往靠近Data Center,连接了大量的ISP,作为该Region的缺省出口。
· Edge-POP作为区域加速的覆盖点,其规划和建设的节奏是综合众多依据来考虑的,包括当地网民数量、上层业务规划、覆盖质量、当地通信环境、综合成本等因素。
· 所有的Edge和Edge-POP可以看成一整个资源池,承载于DCI网络上面。
边缘网络在技术上也会遇到很多挑战,即多出口管理能力、流量调度能力、故障恢复能力等。在很早的时候,管理多出口和调度流量还使用的是传统的网络手段,经常会因为某一个出口的质量恶化,鹅厂网络工程师需要手工登录到网络设备上用脚本去调整路由策略,以牵引流量去往质量更好的出口,随着出口数量的不断增加,不管是在网络规划方面还是手工优化流量方面,都变的越来越复杂和力不从心。举一个简单的例子,当只有两个出口的时候,规划和优化都非常简单,要么双活要么主备,谁出问题就关掉谁,动态路由协议会自动收敛,看起来非常简单,但试想当出口的数量有几百个甚至上千个的时候,如何规划这些出口的使用规则?正常情况下每个出口走哪些服务或者用户的流量?故障或者质量恶化情况下这些出口之间的备份关系如何?还要结合带宽、成本、互联ISP网络内部负载情况等因素来进行综合考虑和设计,这个就变成了非常复杂的议题了,曾几何时,鹅厂的出口网络设备上有着几千行的路由策略命令,有的跟规划有关,有的跟优化有关,有的跟处理故障有关,网络运营变的越来越复杂,而且出口的数量还在迅猛增长。
几年前,我们就意识到如果不重构这一块的设计,迟早有一天会玩不下去,正当SDN的浪潮席卷而来,我们借鉴了SDN的思路,并花了不短的时间来构建这一块的能力,形成鹅厂网络的一个非常重要的竞争力,这个能力的核心就是多出口的集中控制,我们内部称之为 “用上帝视角来选择出口和调度流量”。简单的来说,我们将所有出口的带宽、路由、流量、质量、成本、IP与AS对应关系等信息采集或输入至中央控制系统中,再开发出一套符合我们业务要求的算法,实现集中计算,保证各ISP、各地的用户都能以当下的基础设施条件下,以最好的网络质量访来问鹅厂的服务,计算完成后再将执行策略下发到转发设备从而牵引流量落地。目前,这一整套体系已经在现网落地,同时,我们还在这个平台上构建了一套服务层,让上层业务可以自行开发APP使用这套集中控制系统来实现自己的需求,比如在DDOS就近清洗与一键封堵方面、公有云客户流量自动切换出口方面、平台级业务区域质量优化方面等。
DCI广域网络