美团云运维:如何承载千万级云计算基础服务


内容来源:2017年6月25日,美团云基础设施负责人胡湘涛在“美团云技术沙龙——千万日订单背后的电商运维实战·上海站”进行《承载新美大的云计算基础服务运维》演讲分享。IT大咖说做为独家视频合做方,经主办方和讲者审阅受权发布。
后端

阅读字数:3969 | 7分钟阅读服务器

嘉宾演讲视频及PPT: t.cn/RpQPThL

摘要

做为美团云基础设施的负责人,胡湘涛老师以前一直在CDN从事基础设施的运维和运维自动化的开发工做。提到基础设施,你们可能更多的认为是服务器、IDC,还有网络。其实为了承载整个新美大的电商平台,他们在基础设施方面,稳定性、可靠性方面也作了很是多的工做。今天就由胡湘涛老师给你们分享一下承载新美大的云计算基础设施。网络

基础平台服务

基础设施这一块除了咱们的设施之外,还有一个基础的服务平台,这样才能很是高效地将咱们的业务传递给客户。如今新美大全部的业务都承载在美团云上,有外卖、猫眼、美团、大众点评等等。架构


上图是基础平台的结构。第一层是物理层,主要包括服务器、网络设备和动力环境。动力环境对于你们来讲可能会相对比较陌生,它在整个平台的稳定性方面发挥了比较重要的做用。上一层是IP的控制层,有网络配置、路由表、路由协议。并发

要把服务稳定地交付给客户,主要是在TCP/UDP的负载均衡层和DNS层上作了不少的稳定性工做。负载均衡

基础设施

在机房的选型上,基本都是选用T3及以上的标准IDC。要有独立的低压配电系统,好比低压的配电机、UPS的机组、UPS电池、以及柴油发电机。这些都须要针对咱们本身模块给到独立的系统,咱们才能对机房的稳定性进行把控。同时在空调制冷方面通常会选用2N或者N+1的系统,这样在任何一个机组出现问题的状况下都不会对机房产生任何影响。咱们须要有独立的物理空间,按照咱们的需求进行定制。运维

有了高标准的基础设施后依然未必能保证稳定,在此过程当中运维也是一个很是重要的步骤。测试

在运维方面咱们有完善的SOP,也就是标准性操做。全部非标准性操做可能都会给机房带来灾难。好比作电力维护时在机房上架标签的时候,标签是否一致,均可能对将来的业务形成影响。同时对IDC的风险评估也作了大量的工做。咱们用了机房动力监控,好比UPS的负载、电力的负载以及机房的温度、湿度。而且还作了24小时人工动环的巡检。由于咱们有独立的物理空间,因此须要按期作模拟故障演练。优化

高可用基础服务


MGW Session同步

MGW是咱们自研的一套系统,便于与云平台进行整合。同时也提供API,很方便地与业务系统进行打通,做为内部流程的定制化。这样咱们在业务交付过程当中能高效地完成工做。网站

咱们目前单台服务器在链接Session方面单节点能达到1200万。Session的同步是作单台广播,一旦出现宕机,Session可以在路由层面进行无缝切换,给用户提供无中断的服务。

通过咱们本身测试,百万级Session切换的miss率为0。Session采用增量的同步策略,主要经过二层进行同步。一旦有新的Session咱们能快速地同步到同集群的其它设备上去,这样在单台机器出现故障的时候可以很从容地进行切换。


咱们分别作了单台和多台机器的故障演练。咱们用了十个不一样的机器经过MGW请求后端的服务来进行文件下载。咱们在23:37左右的时候,将第一台MGW关闭。从监控上37分这个时间点来看,业务突发的状况过了以后,它的流量基本为零,总体的十个进程在23:37以后没有波动。同时可能还会面临多台机器同时发生故障的问题,那么这时还可否保证业务交付的持续性呢?

咱们在23:43先关掉了第一台MGW,它会把流量切换到第二台蓝色的MGW上面。咱们在这个时间点把蓝色这台依然进行模拟的故障将其关闭。你们可以看到第四台的链接数和流量进行了上扬。在23:55的时候第三台进行关闭,全部的流量都无缝迁移到最后一台。在切换的时间点上面,十个压测进程在总体的流量上很是平缓。

在修复了机器以后,咱们会对机器进行从新上线。由于机器在上线前没有任何链接,那么上线的时候是否会对业务形成干扰呢?


这是咱们故障恢复和扩容的场景。像前面刚刚提到的这些时间段,咱们分别演练了三台机器所有进行了一次故障。这个时间段先恢复了第一台MGW,从业务来看基本是没有任何波动的。在1:03左右的时间点,咱们分别把剩余的两台也进行了恢复和扩容,从并发下载上来看,1:02到1:03是一个相对平缓的过程。特别须要说明的是上图中有红框框起来的部分,由于咱们在压测的时候,它是在作一个4G文件的下载,因此当时的速度都是零。

在我刚刚入行的时候,领导跟我说过一句话,让我印象特别深入:让一个网站在地球上消失最好的办法就是干掉它的DNS。若是一个机房宕掉了能够经过机房容灾来解决;若是一个区域宕掉了,能够作跨区域的容灾。但DNS出现了故障,那就毫无办法可言。因此可见DNS是咱们很是重要的基础服务。一般咱们会在一个IDC里面至少部署两台DNS,服务器就会在文件里面配上这两个DNS的IP地址。在迁移到另一个IDC的时候,因为机房IP地址的惟一性,就要改DNS的地址。


咱们采用了基于AnyCast的DNS架构。你们对这个架构其实并不陌生。咱们使用最多的DNS服务大概是8.8.8.8。要在不一样地方都使用同一个DNS IP,经过在DNS上和内网核心跑一个路由协议,在这上面每台机器有本身管理的DNS IP。业务请求过来的时候它是一个等价路由的形式,它会均分地请求到不一样的机器上。也就方便了咱们作DNS扩容,并且在作跨机房迁移的时候依然能够用同一个DNS IP。这个主要是在DNS层面作了一层路由的包装,方便了咱们整个基础设施架构的部署,简化了整个运维流程。

基础网络质量监控

我一直强调运维的意识决定整个平台的稳定性。在运维过程当中如何迅速发现异常、判断问题点,就须要快速直观的监控体系。

由于咱们的体量相对比较大,三万+的服务器,几千个机柜,每一个机柜都有TOR。这种状况下如何作到对全部总体的网络一目了然,快速响应解决发生的问题呢?


这是我刚刚提到的内网超核,全部跨IDC的层面都须要借助超核进行转发,这上面分别在三个不一样的IDC,每一个IDC有两组内网核心。

咱们会在每一组TOR下面的物理机上布一个Agent,经过Agent监控全网的IP列表。咱们建了一个sysop基础设施自动化运维平台,里面记录了基础设施全部资源信息,经过这个平台能够获取到IDC、交换机、服务器全部信息。

最右边是消息告警的平台,根据咱们的策略配置一些消息告警。好比两台机器之间有丢包、延时增大等状况,匹配到咱们的告警策略以后通知相关人员。

咱们收集到的数据是经过InfluxDB进行监控数据的存储,利用Grafana进行展现。

最核心的是咱们监控的管理平台Manager。首先咱们每台服务器部署的时候会把这个Agent推下去,给Manager发请求,获取到须要监控的IP列表、监控IP的对象、监控IP的数量以及上报的时间。Agent监控生成的数据会上报到Manager模块,经过模块处理后存入InfluxDB。


众所周知,在整个网络架构当中监控南北向的流向是很是容易实现的,由于每一个服务器到TOR,TOR到核心,再到外网,这是如今最基本的网络监控。

可是咱们须要看到的是东西向流量。两个业务之间的请求,一旦出现异常你们可能第一反应是网络的问题。如何避免这样的问题,同时为咱们业务快速定位或缩小问题点,就是这个平台的价值。

经过这个平台给到业务和咱们本身,让咱们能快速地判断网络是否有问题,或者当服务端出现报错的时候,究竟是要第一时间排查网络仍是DNS,或者是业务服务自己的问题,这样缩小了问题点,让业务快速的定位。由于在电商行业一旦出现问题,影响的时间越长,损失的都是交易金额,因此咱们投入了不少的精力来作这一块的工做。咱们不怕出现问题,一旦出现问题咱们能在最快的时间去解决问题。


这是咱们内网监控的第二期架构。第一期完成了东西向流量端到端网络监控,可是还不能直观地监控网络运行情况。按照上图中网络架构,在WJ和DBA的两个超核,每一个IDC的内网核心有不少线互联的。两台机器互Ping的时候,出现丢包率。

好比说服务器到TOR,TOR到内网核心可能4条线,到超核是16条、32条线,超核到内网核心又是32条线,排查链路的时候是一个指数级的增加。可否将每一条链路的情况在咱们内网的网络拓扑图上面进行展现,这样咱们可以第一时间在业务以前发生这个问题。

第二期所作的,就是是可以监测到这32条路径的网络质量。咱们经过了解厂商的Hash策略和构造数据,让它人为地走不一样链路,拿到从TOR到核心这一段每一秒的ping值和波动来了解到每一段的网络是否有问题。这样能直观地了解到整个网络状况。


咱们经过一个地图来展现外网网络质量监控,基于电信、联通、移动三条线路出口分别进行监控。咱们主动以1秒钟为频率监控到全国每个地级市的网络状况。经过这种主动的监控系统探测可以很清晰地知道哪个区域有问题。

平台发展壮大是源自于用户的选择,咱们须要给用户作到更高质量的服务、更好的用户体验。同时这些系统其实在公有云和私有云上复用,咱们本身用到什么基础设施、网络条件,给美团云客户也使用一样的服务。

多维资源数据运营

咱们会经过监控系统,结合各项数据汇总的指标,针对性的持续优化,最终达到让运维人员更加高效、让基础设施更加的稳定。


在服务器自动化操做方面,咱们申请机器的时候走自动化流程,发起、检测有没有系统, CMDB的情况是否正常。若是正常的话,更改成预申请同时部署操做系统,部署以后对主机进行Ping检测。认为没有问题的,最终交付给业务。这些后端都会收集数据,拿到最近30天,流程的总量、成功率、失败率、正在运行的数量以及平均每一个流程的耗时来针对性的优化。

同时咱们在成本方面也作了必定的考量。好比全部机柜的房间有多少服务器、有多少交换机,这里面有效机柜是多少,针对于每一个机柜的电力收集的覆盖率是多少。咱们针对这个机柜所承载的业务和服务器的功耗进行智能匹配,来提升机柜的有效率。机柜的有效率上升了,在IDC平均业务量的租用成本就会下降,这也是数据化运营的方向。一个是提升咱们的稳定性,一个须要下降总体的成本。


如今除了有数据之外,咱们更多强调监控的可视化。

咱们在机房都有相似于探头来监控环境,好比一些变动。包括除了机房的动力环境之外,咱们本身来监控机房的温度、湿度是否达标。假如机房一个机器或者空调出现了问题,它并不必定会告诉你。当机房不可控的时候咱们再发现,可能整个机房就死掉了,因此这里会有一个提早的预警,包括跟机房创建一个长效的沟通机制。咱们在IDC层面,每个Q进行一次巡检。作一个动力环境的巡检,检查基础设施的利用率是否有超标、是否有风险来完善整个风险的评估体系。

今天的分享到此结束,谢谢你们!

相关文章
相关标签/搜索