谈到多云建设,多云互通是绕不开的话题,也是多云架构能取得成功的关键基石。
作业帮从成立之初就一直扎根在公有云上,没有自建机房,即使是工区的办公服务95%以上也都实现了云化部署。在作业帮的多云网络建设过程中,历经多次架构重塑,最终摸索出一套双环星型组网 CPE管控的多云网络互通方案。本文将会通过「网络建设」、「质量提升」、「持续运营」三个阶段来介绍作业帮网络团队在多云网络建设过程中的探索与实践。
网络建设接下来会按照时间 架构的维度将网络建设的过程拆解成三个不同的阶段来展开介绍:
阶段1:以工区为中心的双云网络时间回到2019年底,当时公司所有业务都是单云部署,在经历过多次云厂商故障后,开始深刻意识到单云故障时的无能为力。为了规避因单云故障导致的服务不可用,公司开始积极尝试双云架构。考虑到当时云上网络没有专职网工,且北京工区的IT老师因历经多次工区互联建设已经有了比较丰富的专线建设经验,所以最终决定复用工区的专线资源和IT能力,以工区为中心打通双云网络。
大家也可以看到,这个架构并不完美。在建设完成后,随之而来的问题也开始暴露。因为双云网络是依赖工区网络实现的互通,工区网络就成为关键依赖,任何一点风吹草动都会被放大。而且公司刚处于双云架构的早期阶段,双云网络的不稳定就会影响到双云建设的进展,同时打击到业务方对双云建设的信心及热情。仔细分析了下,双云网络不稳定主要是因为存在如下2个因素:
在意识到上述架构存在的问题后,我们开始着手改造,在两个云之间建设直连的专线并采用双链路冗余的方案,解除对工区网络的依赖,并将工区网络作为故障时的兜底。
时间回到2020年底,双云网络的故障次数有了大幅度的收敛,有效的支撑了业务进行双云部署。但是随着业务双云部署的规模加大,新的问题开始暴露:
基于上述架构存在的问题,我们开始进行新一轮架构改造:
1.设计新的组网架构,提高组网的扩展能力。我们对多云组网方案进行了调研,主要分为如下4类:
线形网络:将新接入的云厂商与现有的云厂商串联起来。
环形网络:将新接入的云厂商与现有的几个云厂商组成一个环形。
网状网络:将新接入的云厂商与现有的几个云厂商两两互联。
星型网络:通过专线供应商的城域网将多家云厂商互联起来。
为了方便对网络方案进行对比,我们从成本、质量、性能、效率这4个维度归一化出4个指标,然后进行横向对比:
综合对比后,我们发现网状网络的质量最好但是成本极高,线形网络的质量最差,环形网络的可扩展性差。最终我们选用扩展性更好的星型网络方案,同时为了提高网络质量引入2家专线供应商实现互备,两家专线供应商的pop接入点分散在北京的一南一北,采用ECMP协议实现链路冗余。
2.链路添加CPE设备,具备感知和管控能力。
为了具备感知和管控能力,我们就不得不在跨云网络上嵌入自己可管控的交换机设备,简称CPE(Customer Premise Equipment )。考虑到我们没有自建机房且买设备的维护成本较高,我们采用和专线供应商租设备的方式。由专线供应商来将多云网络进行互通,并在每个云到专线供应商的网络上架设CPE设备,同时将设备的管理员权限给到我们。这样我们通过CPE设备,就具备了对跨云流量的管控能力,如路由策略、ACL策略、QoS策略等。同时也加强了对跨云网络的感知能力,如路由状态变更、BGP协议状态、跨云流量分析等。
3.全链路切到BGP,具备链路自动切换能力。
推动多云厂商的网络产品升级支持BGP协议,然后将现有的网络协议全部从静态路由切到BGP,并调优BFD配置,实现了故障秒级自动切换。
时间回到2021年底,经过如上3方面的改造后,多云网络架构基本成型。改造后的架构具有如下优点:
多云网络是最基础的服务,也是被依赖最重的服务,因此它的稳定性至关重要。在经历过「网络建设」阶段后,我们已经建设起一条多云互通的链路,但是这条链路的质量怎么样,如何保障链路的高可用就成为接下来要重点投入建设的方向。
从故障的生命周期来看,我们将故障处理分为预防、发现、定位、止损、恢复这5个阶段,接下来将围绕这5个阶段介绍我们在稳定性工作上的投入及思考。
故障预防故障预防是稳定性工作的重点,故障预防做的好可将故障抹*于无形。回到多云网络上,我们主要围绕架构高可用、容量管控这2个方面展开:
如何在故障发生时能够及时发现,最有效的手段就是监控。监控是运维最擅长的领域,也是一个值得纵向深耕的领域。这里我们围绕专线监控、CPE监控、链路监控这3个方面展开:
故障定位的目标在于故障发生后能够在5分钟内定位到根因,核心点就是快和准。这里我们围绕可视化大盘、自动诊断、变更追踪这3个方面展开:
谈到故障止损,最快速的手段就是回滚。但是如果回滚也无法奏效或者迟迟无法定位根因时,切流就成为最快速有效的手段。当然,切流也是一个复杂的系统性工作,需要考虑切流的完备性、顺序性、唯一性、时效性、可行性等一堆问题。这个时候就不得不引入预案平台,通过平台来实现经验的沉淀和效率的提升。在预案平台上定义不同的故障场景,并针对不同的故障场景编排不同的预案,甚至可以将多个预案再组合成一个更高维度的预案,以此来达成一键执行、5分钟内止损的效果。
经过上面一系列的稳定性建设后,多云网络的质量终于得到保障,可以自信的承诺下99.99%的SLA目标。但是在长期的网络建设和运维过程中,还是存在着很多非标配置和历史遗留问题,如果不及时解决也会带来稳定性隐患。所以我们接下来要做的就是对现有的网络进行治理,包括路由、网关、规则等。
随着业务从开始的多云尝试进入到了多云部署的收尾阶段,多云架构开始暴露出一些问题:
为了解决上述问题,公司对多云架构提出了更高的要求:“除DB、Cache等核心数据服务外,其它服务都不应该跨云“。为了达成业务单云闭环的诉求,我们就需要在跨云网络上增强感知和管控能力,建立起跨云维度的流量度量和流量治理体系。
在经历过上面三个阶段的建设后,网络运维终于从开始的被动救火迈入了主动运营的阶段,同时也伴随着业务多云架构的成熟落地。
经验总结回顾多云网络建设的过程,虽然走了很多弯路,但是最终的建设目标和建设原则越来越清晰,可以归纳为「3个目标」和「4个原则」。
回到作业帮自身的业务形态上,存在很多的边缘场景,如RTC推拉流、全国工区上云、三方云私有化交付、边缘云引入等,这个时候就发现中心云的架构已经无法满足,需要构建一个能够同时覆盖中心和边缘的网络,也就是分布式云架构。(分布式云定义:一种将云服务按需部署到不同地理位置,提供统一管理能力的云计算模式。 )
作者:侯文辉
来源:微信公众号:作业帮技术团队
出处:https://mp.weixin.qq.com/s/aYsi5WAA9uAM9U0Vd6GifA
,Copyright © 2008-2022 秒下下载站
m.down10s.com .All Rights Reserved