美团云的技术演变:先把云主机做稳定了再说别的

2013年上半年,美团发布了其公有云服务美团云。该产品一开始的背后支撑团队是美团系统运维组,到2014年6月,美团云业务部从系统运维组独立了出来,专门负责云计算方面的产品研发与运营。

近日,InfoQ中文站编辑与美团云业务部的三位工程师进行了交流,了解美团云目前的状态、过去的演变历程和下一步发展计划。以下内容根据这次交流整理而成。

背景

独立出来的美团云业务部目前有十几位工程师。虽然部门独立,但工作中仍然跟系统运维组有紧密的配合。美团系统运维组原本就有三分之二的开发工程师,而运维工程师也全部具备编写代码的能力,因此开发与运维工程师能够进行紧密的配合。

美团云的最初版本起步于2012年7月,一开始是作为私有云计算平台来构建。第一版开发了大约2个月的时间,之后用了大概10个月的时间将美团的所有业务迁移到云平台上。现在除了Hadoop、数据库仍跑在物理机上之外,美团网的所有业务都已经运行在美团云上,内部的研发、测试平台也运行在美团内部的办公云平台上。

2013年5月,美团云开始对外提供公有云服务,截止到目前仅对外提供云主机产品。对象存储、Redis、MySQL、负载均衡、监控、VPC等服务也在研发,部分产品已经在内部以及部分测试客户使用,未来会根据产品的成熟度和客户的需求程度逐步对外开放。

稳定是公有云服务的核心价值。自从公有云服务开放以来,美团云主要的工作都放在提升云主机的稳定性,完善云主机模板、备份、监控、安全等工作上。预计在2014年9月,美团云将发布其第三个版本的更新,继续打磨其产品细节。

技术架构

美团云最初选型的时候对OpenStack、CloudStack、Eucalyptus都做过调研,调研的结果是架构设计使用OpenStack的框架,网络架构参考CloudStack,主要组件由自己开发,部分组件在OpenStack原生组件上进行了二次开发。

核心的云主机管理系统是自己研发,没有使用Nova。采用Region-Zone-Cluster三层架构,支持跨地域、多数据中心的大规模集群部署。采用了基于KVM的主机虚拟化和基于OpenVSwitch+OpenFlow的网络虚拟化技术。

镜像管理用了Glance。有一定修改,例如,多数据中心分布式支持,以及镜像替换。

身份管理用了Keystone。有一定修改,例如,高并发性能改进,与美团帐户系统的集成。

对象存储用了Swift,但Swift在写延迟方面存在性能问题,同时在OAM方面的功能比较薄弱,所以也做了一些修改和研发。Swift现在已经在为美团网内部存储量几十TB量级的业务提供服务。

之所以没有整个引入OpenStack,是因为当时调研时,感觉OpenStack的设计比较脱离美团的实际情况。例如,网络架构需要有较大的调整,同时需要有共享存储的支持。当时对美团来说,现有业务的基础设施已经基本固化,为适应OpenStack而做这样的调整基本不可接受。另外,OpenStack在很多细节方面达不到需要的级别。比如,OpenStack对跨机房多Zones的设计,它假设你机房之间的网络是完备的,这也不太符合我们的网络现状。因此,我们基于美团现有的主机使用模式和网络架构,重新设计了网络、存储和主机管理模型,自主研发了虚拟化管理平台。同时,我们在从单机房做到多机房的时候,在Zones之间做了解耦,比如在每个机房里都放置Glance服务节点,减少对跨机房网络的依赖。正是由于这些研发工作,使得我们经过不到一年时间的磨练,就实现了美团整个基础设施完全运行在私有云上的目标。

当然,由于我们不使用Nova,就意味着OpenStack社区的很多依赖Nova的组件和功能我们基本无法直接使用。不过,相对于OpenStack大而全/兼容并包的架构,我们坚持在每一方面都集中精力用好一种技术,如主机虚拟化使用KVM,网络虚拟化使用OpenVSwitch+OpenFlow,使得整个系统的开发和维护成本相对较低,同时能深挖这些技术方案的功能特性,最大限度地压榨硬件性能。同时,由于我们掌握了基础系统的代码,使得我们可以较高的效率添加一些新的业务功能(例如,对虚拟IP,USB KEY的支持等),以及实现系统架构的升级改造(例如,对多机房架构支持等)。另外,我们对使用的OpenStack组件做的一些修改,比如对Swift的优化,目前技术委员会也在提议如何回馈给上游社区。当然了,这个还需要看社区对我们的patch接受与否,而我们也还是以满足业务需求优先。

其他方面,块存储落在本地的SAS盘上并在本地做RAID。目前我们对美团网自己的业务做RAID5,对公有云用户做RAID10。这是考虑到美团网自己的业务在应用层已经做了较完备的高可用设计的,即使掉了单个节点也不会影响到业务;但对于公有云用户而言,他们用的那一台云主机就是一个单点,所以要对他们的云主机做更好的保护。使用RAID10当然成本会比较高。我们也在考虑共享存储,当然前提是先解决了上面的稳定性和性能问题。以后会使用SSD,使块存储的性能有更大的提升。

网络方面做了分布式设计,主机上用了OpenFlow,通过OpenFlow修改二层协议,让每个用户拥有一个独立的扁平网络,跟其他用户的网络隔离。通过DNS虚拟化技术,使得不同的用户可以在各自的私有网络上使用相同的主机名字,并在每个宿主机上部署分布式DNS和DHCP以实现基础网络服务的去中心化。

运维

美团云的运维思路跟整个美团的运维思路是一致的。下面介绍的运维思路既适用于美团云,也适用于整个美团网。

运维框架可以概括为五横三纵。从横向来看,自底向上分为五个层次:

更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Servers/cloud-computing/

物理层,包括机房网络、硬件设施。我们已在开展多机房和城域网建设,从最底层保证基础设施的稳定性。为了应对大规模机房建设带来的运维成本,我们实现了Baremetal自动安装部署的Web化管理,从服务器上架之后,其他工作均由自动化完成,并可以和虚拟机一样管理物理机。

系统层,包括操作系统、虚拟化。我们在虚拟化基础之上采用了模板化(镜像)的方式进行管理,也对Linux内核做了一部分定制开发,例如针对OVS的兼容性做了优化。

服务层,包括Webserver、缓存、数据库等基础服务。我们基于Puppet工具做了统一配置管理,有自己的软件仓库,并对一部分软件包做了定制。统一配置管理的好处,一方面是避免不一致的修改,保证集群的稳定性,另一方面是提高运维效率。

逻辑层,包括业务逻辑、数据流。这一层的主要工作是发布和变更。在很多其他公司,业务的发布上线、数据库的变更管理都是由运维来做,我们认为这样对开发、运维的协作成本较高,所以一直往开发人员自助的方向做,通过代码发布平台、数据库变更平台实现开发和运维工作的轻耦合。在发布平台中,每个应用对应独立的集群,有一位开发作为应用owner有最高权限,有多位开发作为应用的成员可以自助发布代码。数据库变更平台也有类似的权限控制机制,并在任务执行层面有特殊的稳定性考虑,例如将大的变更任务自动调度到夜间执行,对删除数据表的任务在后台先做备份。

应用层,包括用户可见部分。除了跟逻辑层有类似的发布和变更之外,我们有统一前端平台,实现访问流量的进出分离、行为监测和访问控制,这对于整体的安全性有很大的好处。

从纵向来看,有三部分工作,对上述五个层次是通用的:

监控。从物理层到服务层的监控和报警都是运维来跟进、响应的。对于逻辑层和应用层,也是开发人员自助的思路,运维提供监控API的规范,开发可以自己创建监控项、设定报警规则、进行增删改查。监控报警之后的处理,现在有些做到了自动化,有些还没有。尤其是有些基础架构和业务之间的纵向链条还没有打通,包括建立业务容量模型,某种特定的业务形态在多少用户的情况下最高负载多少,不同负载等级下的SLA应该是多少,等等,这些模型都建立起来之后就能够进行自动化的处理。

安全。我们很早就部署了统一的安全接入平台,所有线上的人工操作都需要登陆relay跳板机,每个人有独立的登陆帐号,所有线上操作都有审计日志。更多的安全工作由专门的信息安全组负责。

流程。早期基于Jira做了一些简单的流程,但仍需要改进。现在正在针对比较集中的需求,开发相应的流程控制系统,方向也是自动化、自助化。从业务部门申请VM资源,到业务扩容的整个流程,我们正在进行上下游的打通,未来可以在Web界面上通过很简单的操作实现,也提供服务化的API,方便其他业务平台进行集成。虚拟化覆盖全业务线之后,这些事情做起来都变得很方便。

总之,美团网整体的运维思路就是:保证业务稳定运行,同时推动全面自动化、自助化。涉及开发、运维沟通协作的部分,尽可能通过自动化平台的方式,由开发人员自助完成。运维人员除了基础环境、平台建设之外,帮助业务进行高可用架构的梳理,提高代码的可运维性,以及定位和解决业务中的各类问题。

改进与演变

美团云从对内服务开始到现在两年以来,最大的一次改进就是从单机房到多机房的建设,这是跟美团网的城域网建设同步开展的。

单机房的时候,美团网业务早期曾遇到过运营商网络中断几小时的情况,期间业务不可用,非常痛苦。多机房冗余做到最理想的情况下是,即使一个机房整个断电了,业务也不受影响,当然这就意味着需要100%的冗余量,成本是比较高的。不过对于美团网来说,冗余的成本是很愿意承担的,因为业务不可用造成的损失要大于做这些冗余的成本,所以我们现在物理资源都留有50%的冗余,带宽一般会预留30%的冗余。

因为美团网的发展速度很快,去年我们一度遇到资源不够用的情况,在这上面踩了很多坑之后,开始做一些长远规划。现在美团网业务的双机房冗余已经实施了一部分,美团云也有两个机房,如果公有云客户的业务支持横向扩展,那么也可以做跨机房部署。这种机房级高可用做好了,对稳定性又是一个很大的提升,大大减少网络抖动对业务的影响,可用性SLA可以从现在的4个9做到更高。有些规模比较大的客户对服务质量会有比较高的需求,所以美团的城域网、以及未来的广域网,也会共享给我们的公有云客户。

另外上面说到我们数据库跑在物理机上,这一块现在用的是SSD,读写性能顶得上早期的三台15000转SAS,瓶颈在千兆网卡上,所以我们现在也在做万兆网络的升级改造。数据库服务以后也会开放给公有云用户使用,基础设施跟美团自身业务一致。

未来的计划

由于使用本地存储,所以现在虚拟机迁移需要在夜间进行,以减少对用户服务的影响。为了提高服务的可用性,在确保稳定性和性能的前提下,共享存储是一个不错的选择,所以我们正在测试万兆网络下的共享存储方案。另外,我们底层虚拟化机制用的KVM,本身是没有热插拔的功能,这也是我们计划要做的一件事。

现在很多客户问我们,什么时候出Redis,什么时候出云数据库,一些客户对Redis和MongoDB会有需求,Web服务想要MySQL。我们的计划是由DBA团队提供一些模板,相当于是一些专门针对Redis/MySQL做好优化的系统镜像,让客户可以直接拿来用。这可能会在下一个版本release的时候推出。

我们还会提供一些基础架构的咨询服务,这个咨询服务一方面是工程师提供的人工服务,另一方面是以工具+文档的形式,以互联网的方式将我们的最佳实践共享出去。美团网做到现在的几百亿规模,内部有很多经验积累,如果能把这些积累传递给我们的客户,能够帮助客户少走很多弯路。

时间: 2024-10-02 06:33:26

美团云的技术演变:先把云主机做稳定了再说别的的相关文章

云存储技术是什么?云存储的优势和作用?

摘要:大家平时使用电脑有没有使用过一些云服务之类的软件?这些云储存软件哪个更好?今天就来讲讲云储存软件哪家好. 大家平时使用电脑有没有使用过一些云服务之类的软件?这些云储存软件哪个更好?今天就来讲讲云储存软件哪家好. 云存储是一种网络在线存储(Online storage)的模式,即把数据存放在通常由第三方托管的多台虚拟服务器,而非专属的服务器上.托管(hosting)公司营运大型的数据中心,需要数据存储托管的人,则通过向其购买或租赁存储空间的方式,来满足数据存储的需求.数据中心营运商根据客户的

姚伟斌:阿里云CDN技术演变之路

2015年1月31日,阿里云课堂第六期在北京开课,"大型互联网应用架构之存储与分发"主题分享在众多朋友的期待下精彩上演,现场观众再次爆满.本次活动中,姚伟斌(花名:文景)和李文兆两位讲师为大家献上了精彩演讲,并在OpenSpace环节与观众展开讨论,积极互动.应广大用户要求,我们将云课堂讲师现场分享内容全文整理出来,供大家参考.阿里云课堂会继续在全国各地陆续开课,欢迎大家继续支持!   以下为讲师姚伟斌(花名:文景)的分享内容:   我前面会讲一下CDN的用途,也会讲一些CDN产品,在

阿里云讲师姚伟斌浅谈阿里云CDN技术演变之路

2015年1月31日,阿里云课堂第六期在北京开课,"大型互联网应用架构之存储与分发"主题分享在众多朋友的期待下精彩上演,现场观众再次爆满.本次活动中,姚伟斌(花名:文景)和李文兆两位讲师为大家献上了精彩演讲,并在OpenSpace环节与观众展开讨论,积极互动.应广大用户要求,我们将云课堂讲师现场分享内容全文整理出来,供大家参考.阿里云课堂会继续在全国各地陆续开课,欢迎大家继续支持! 以下为讲师姚伟斌(花名:文景)的分享内容: 我前面会讲一下CDN的用途,也会讲一些CDN产品,在后面我会

云存储技术及应用

近年来,随着云计算的兴起,云存储成为信息存储领域的一个研究热点.与传统的存储设备相比,云存储不仅仅是一个硬件,而是一个网络设备.存储设备.服务器.应用软件.公用访问接口.接入网和客户端程序等多个部分组成的系统. 第1页:云存储技术 第2页:云备份应用 云存储提供的是存储服务,存储服务通过网络将本地数据存放在存储服务提供商(SSP)提供的在线存储空间.需要存储服务的用户不再需要建立自己的数据中心,只需向SSP申请存储服务,从而避免了存储平台的重复建设,节约了昂贵的软硬件基础设施投资. 云存储这个概

阿里云数据库技术峰会回顾整理:演讲幻灯+直播视频,赶紧下载!

云数据库产品及架构设计背后的考量 嘉宾:萧少聪,阿里云数据库高级产品专家 演讲内容:阿里云数据库产品全体系介绍及数据库产品实现架构分享. 听众收益:通过本次议题,了解阿里云全数据库产品体系能解决哪些实用场景的问题,同时了解其解决的原理. PDF下载:https://yq.aliyun.com/attachment/download/?id=1963 直播视频:https://yq.aliyun.com/edu/lesson/698 整理文章:https://yq.aliyun.com/artic

阿里云Tech Insight,云上技术者的任意门

10月10日,Tech Insight·杭州峰会,在2017杭州云栖大会举办前夕拉开了帷幕.作为"一扇云计算与技术人员的任意门", 吸引了大量技术决策者,和一线的工程师.运维工程师以及高校学生付费报名参会.   Tech Insight·2017杭州峰会新看点? 10月10日上午,阿里云MVP Demo Show在Tech Insight首开.由阿里云 MVP 王鹏翰,阿里云 MVP 候选人陈琦,两位带来的"日志服务+开源可视化套件"以及"态势感知+Dat

“技术女神”清宵:云存储之基本技巧和上云实践

5月20日,阿里"技术女神"清宵带领大家在云端漫游了一番,为大家分享了阿里云存储业务的相关产品和技术特点,业务解决构架和解决方案.让大家对阿里云存储产品有一定的了解. 其实作为大数据计算的入口,阿里云存储为挖掘数据的更大价值提供了更多可能.对象存储,表格存储,文件存储等阿里云云存储的系列产品的功能和特点有哪些?各自的应用场景又有何不同?到底怎样的优势能够吸引众多企业从传统的本地存储毅然上云?如何能够更好地利用云上产品的天然优势加开及用地搭建行业中的经典场景和架构.同兼具SAN高速直接访

专访阿里云量子技术首席科学家施尧耘:量子计算前途辉煌而任重道远

2017杭州云栖大会详情请戳这里! 2015年7月,阿里巴巴与中科院联合成立了中科院-阿里巴巴量子计算实验室,正式进军量子信息科学领域. 把视野放向全球,你会发现量子计算早已成为了科技巨头的战场,原因很简单--它拥有爆表的计算能力,它将引领新的计算革命.如此强大的计算能力意味着什么?业界普遍认为,当下最炙手可热的人工智能.机器学习也将受益于量子计算. 然而,理想很丰满但现实很骨感,量子计算的研究存在诸多挑战,如何商业化更是学术界和工业界最棘手的问题.施尧耘表示,量子计算最大的挑战是如何规模化.目

阿里云发布技术公益计划:为100家创业公司提供免费安全防护

除了为企业提供新技术服务外,阿里云又推出了全新的技术公益计划.   5月23日,在云栖大会 · 成都峰会上,阿里云正式推出产业安全扶助计划(https://security.aliyun.com/grow). 这是一个面向初创企业的公益项目,计划为每家入选企业免费提供含主机安全.网络安全和抗DDoS在内的全套云安全防护,协助其抵御网络黑灰产业,让企业专注业务的高速发展,无需再因安全问题"拖后腿".   "产业安全扶助计划的愿景是为创新.创业者提供一间'经济适用房',帮助他们在