【APMCon 2016】国美云服技术总监左坚:国美集团公有云模式私有云的发展之路

如需转载请联系听云College团队成员小尹 邮箱:yinhy#tingyun.com

中国应用性能管理行业盛宴——2016中国应用性能管理大会(简称APMCon 2016)于8月18日至19日在北京新云南皇冠假日酒店隆重召开。APMCon由听云、极客邦和InfoQ联合主办的作为国内APM领域最具影响力的技术大会,首次举办的APMCon以“驱动应用架构优化与创新”为主题,致力于推动APM在国内的成长与发展。

国美云服技术总监左坚于基于云架构的性能优化专场发表了题为《架构之美——国美集团公有云模式私有云的发展之路》的演讲,现场分享了国美集团根据集团总部及各产业公司自身的业务特点,走出了独特的公有云模式的私有云之路的历程。

1.jpg

以下为演讲实录:

左坚:谢谢大家,现在还能坐在台下的应该是真爱了。我目前在国美集团负责国美云的规划和运营,包括架构设计。首先从题目大家可以看到,架构之美,所以我今天主要介绍一下关于国美集团如何在云平台上做架构设计。

对比今天前几位讲师,他们都有一个特点,大家有看到他们的公司吗?微软、阿里,等等他们的身份其实都是公有云的厂商。国美为什么没有把业务放在公有云上,或者说今天我站在这里跟大家分享话题时我的身份跟前几位讲师的身份有什么不同呢?区别就是,我是甲方。我在来国美之前我曾经待过甲方,待过乙方,也待过厂商,甚至待过跟厂商相关的服务商,直到我到了国美之后才发现站在纯甲方的角度看待业务和架构设计,包括整体的技术选型的时候是跟在乙方和厂商完全不同的。我在其他的厂商的时候,也曾经跟客户说我们的云平台很不错,我们的产品很不错,你应该选我们的产品。后来真正到这儿的时候你再让我回头看当时的产品,那家厂商是否能满足我今天的业务需求,我心里面自然就打鼓了。所以在不同的位置考虑不同的事情时候,你会考虑到不同的结论。

如果提国美大家心里第一个想法是什么?有人会说你好像搞IT的,怎么卖电器了。因为国美给人的第一个印象是我们传统的业务,是一个覆盖全国的最大的电器连锁企业。但实际上国美最近的一段时间正在做转型,下面请允许我用几分钟时间对国美的业务做介绍,这不是为国美做广告,而是理解我为什么做架构,提供什么样的服务。

一、关于国美云

2.jpg

首先是国美集团的介绍,国美是由总裁黄光裕先生创建,说到业务的话第一反应应该是覆盖全国的零售企业,市值是1200多亿。除了这个之外,国美集团下辖六个业务版本,比如西点华素片这家企业也是国美的,所以国美的业务非常广。正是因为这种情况,所以我们对外提供的云平台的服务才更加的迫切,或者说更需要技术特色。上图就是国美现在的特色,包括线下零售业、互联网、房地产、金融、智能手机制造等,统统属于国美控股集团。

线下零售我们都知道了,包括国美地产,金融公司国美金控,在我们云平台上运营的几十亿金融项目,这也是国美没有选择成熟的公有云平台的原因。金融产品对平台的要求是非常非常高,像刚才微软的同事提到说当我的虚拟机重启的时候C盘的数据没有了只剩下D盘,大家想想在互联网金融业务如果出现这种情况是什么样的?你去银行手里还有票根,如果你买了互联网金融的产品,由于服务器的重启导致数据是你的钱上一秒看是10万,下一秒就没有了,所以这就对我们平台提出来极高的要求。

我们刚才提到了国美云,国美云是我们国美内部对我们云平台自有的名称。我们现在支撑的业务主要是金融业务,当然还有互联网,地产,家居制造等等,还有集团内部的管理,比如说国美20万人的OR,邮件等等,都是我们自己在部署运行的。

3.jpg

二、公有云模式的私有云

基于这套架构的话我们来看,为什么我们要去提公有云模式的私有云?实际上从集团来看,集团下辖的产业公司有几十家,对于他们来说是完全独立运营的。所以从这个角度来看我们跟公有云一样为产业公司提供服务,但是由于我们业务的特殊性,我们在运营有很多时候产业公司有特殊的要求,比如说金融行业。我们都知道在做虚拟化和云计算的时候,最好是做相对大一点的资源池,不管是存储也好还是计算资源也好,网络需要做一个大的打通,能更好的提供资源。但实际上对于金融行业来说,我们的银监会对于金融行业的架构设计又有独立的要求,比如说你的某部分业务和某部分业务之间必须是物理隔离的,这里面就产生了一个疑问,金融云到底如何打造?业界目前唯一提出金融云概念的是阿里,但是我们内部金融云已经运行很久的时间了。

4.jpg

所以说上面提到的“公有云”就是我们来提供服务,但是我们的服务是私有云级别的,像上面说的因为我们运营的主要客户是金融行业,金融行业没有把他的业务放在公有云,一是出于可靠性考虑,二是出于安全性可靠。我们在这样的架构上面就会面临这个挑战,各位如果做甲方的你会很清楚,首先是对业务的挑战。互联网类的业务包括金融业务是要求快速部署、快速交互。以往我们采购服务器的模式肯定不被接受的;第二,业务是分开的,我们业务的开发是分属于不同的业务板块的,我们只提供虚拟机等等基础架构的服务,但是对于业务来说,所有的业务开发运维在产业公司,而我们的基础架构在国美集团。所以从这个角度来讲开发和运维是在不同的团队来做,中间就需要无缝的配合,这是在业务上面的挑战。

5.jpg

在运维上面的挑战也是一样的,由于我们有在线金融业务,对安全、可靠性、实时性的要求又都比较高,而且我们的各个业务都处于高速发展,国美金控在去年9月份的时候才刚刚成立,到现在为止它的业务量已经有几十亿了,员工从开始初创的几个人变成现在近千人的规模,其中主要是开发。从这个角度来看我们对他提供的业务支持也在不断的增长,所以我们的业务是边设计,边扩容,边运维,对我们的平台说是很大的挑战。

三、国美云的选择

6.jpg

针对以上这些情况我们该如何设计呢?实际上目前国美云做的是一地三中心的架构。我们的国美集团是在鹏润大厦,有一层是我们的机房,另外在电信机房和移动机房我们选择了租机房而没有选择自建IDC。在北京的两地又租了另外两个,形成了一地三中心的架构,这三个中心的数据如何同步?我们的业务到底如何设计?

首先我们第一步做到的是部件级别冗余,在一个中心所谓的全连接,要保证网卡是双连路的,我的交换机都是双方冗余,存储也是在一个数据中心内部两个实时做数据同步。所以从这个角度来讲我第一步做的就是部件级的冗余。

第二个就是基础架构的主备,做双中心。首先移动机房是我们的主中心,大厦中心就是备用中心,只有当业务出现问题的时候才把整个流量导到大厦的互联网出口。由于金融业务要求比较高,我的数据中心出问题的时候,另外一个中心的响应仍然是有时间的。所以现在我们建立一地三中心,就考虑到在一个备用中心之外,另外两个数据中心提供的不是数据中心的高可用,而是应用级别的双活。所以这里面提到的最终所做的架构设计是业务级别的双活。什么意思?就是我的两个数据中心分别部署了同样的业务,我把一个业务通过我们的分拆,分拆到了两个数据中心,这是私有云级别的运维。当有一个数据中心出现问题的时候,另外一个数据中心不至于导致数据中断。听起来好像很简单的一件事情,但实际上里边涉及到的业务规则,业务逻辑和中间同步的数据量非常巨大。

四、应用双活架构核心技术

基于这种情况,我本来想放一张我们的架构图,但实际上没有办法,因为我们的架构图是属于保密的,在公司内审没有过。所以我只好把其中的核心技术用下面这张图展示,我们到底是怎么样创建所谓的业务双活。

7.jpg

第一个,两地三中心统一的管理和运维。这句话表面看就是你对中心的管控力度,我们做的这种容灾级别大概是指有一个甚至两个是中心离线时,那管控中心在哪儿?是在笔记本上吗?肯定不现实。那么三个中心里面,其实每个中心都有一套独立的管理系统,但是这个独立的管理系统之间又是会做数据同步。里面涉及到了负载均衡,数据同步甚至涉及到了异地数据库的双活,这就是在两地三中心管理和运维上面做到了统一化。

第二个,全状态智能DNS。大家知道DNS本身是没有状态的,那么我们上一级里面对外的两个中心,可能有多个IP地址和互联网出口,这个出口有多少地址,如何把我的业务导向到出口上去。这里会出现一个问题,如果一个数据中心离线的时候,业务能不能被另外一个数据中心接管?如果用传统方式的话会导致一半的数据离线,因为DNS本身是这样的机制。所以我们这里面采用的技术是全状态智能DNS,也就是说DNS这台服务器本身会对内监控整个数据中心的状态,如果发现内部数据中心的存储或者某些部件发生问题,这个DNS会切换到另外一个中心,把出问题的中心离线,只有这样才能让我的业务在两个中心做到双活,不只是提供解析,才能对内监控我的业务状态。

第三个,全状态链路负载均衡。DNS是负责向内的流量,而对于全状态的是向外的流量,因为两个数据中心是80GB流量打通的,所以当某一个中心的互联网出口出现抖动,或者说出现带宽不足的时候出现意外情况的时候,可以通过这80G把流量导到另外一个数据中心,都从一个出口出。这里面的事例是,前段时间我们接入的机房是移动的,最大的特点就是不允许有其它的运营商的线路接入。移动线路里面包含了移动、联通、电信、教育网,后来我们发现通过APM的厂商听云,发现一个业务的可用性降到了79%,当我手机收到报警的时候,我就马上联系听云的人,他们告诉我原因是因为发现我们北京联通的线路离线了。然后我再去移动让他查互联网线路的时候,这里面耗费时间和精力是你根本没法掌控的,因为他们是运营商。所以从这个角度我们发现,我这个机房到联通的线路断了怎么办?所以从这个角度来看,你必须要了解,通过DNS也好通过链路负载也好,一个是出向,一个是入向,双向才能解决掉数据流向的问题。

还有就是多数据中心的大二层打通,这个技术的好处是我在两个数据中心用大的IP地址是同一个网段的,可以实现无缝迁移,即使迁移过去之后地址也不需要做更改,当一个中心出问题,业务可以直接导过去。

第四个,跨数据中心的存储双活。可能这大家觉得不就是一个存储的复制吗。实际上我们现在采用的存储技术要高,高到什么程度呢?我们两个数据中心里面部署了N台存储,这些存储数据完全是实时同步的。当我选择切入策略后我会虚拟出一个存储,通过高速链路切入到辅助存储之后才会回应给应用,说这个写入操作完成,保证业务确实完全落到存储上。而且如果只是像这样的话,大家可能会想你的切入延迟会不会很高,因为你写到了本地,然后又同步到异地。如果我们都是一主一备的模式是会有问题,因为你的备份中心写数据的时候会有问题。所以我们采用了多路径的策略,这个策略是各个数据中心应用都往数据中心本地区写,然后同步到另外的数据中心,两个数据中心都是这样互相备份的策略。

最后一条,我们结合商业产品、开源产品、自研产品,包括听云给我们提供的监控类的产品在一起,创造了我们的产品。国美是没有集成商的,这样大的项目,包括我们所有的软硬件的采购、开发,内外部的开发全部是由国美自主完成的,包括所有的架构设计和部署、运维,全部都是国美自己做的。

以上就是我们采用的核心技术,如果这六条还让我排序的话,我就觉得其实应该是二三四相对来说比较核心,当然如果存储上面有其他方案解决的话,也是可以的。但是目前存储里面我们采用的还是商业产品,未来的话还会采用一些开源的或者其他的分布式存储技术。

五、商业、开源、自研产品相结合的产品组合

8.jpg

9.jpg

上图是我们的自服务平台,我们的产业公司有几十家,这么大一个平台的运维工程师,所有的网络安全的虚拟化,包括我在内管理层有8个人,这是我们服务的界面。这上面是我们的使用率,目前由于我们的业务还在不断的发展,数据量也在不断的变化,现在的CPU、内存的使用量都不是特别高,其实对于我们的内务来说内存比较吃紧的,到了45%,CPU是21%,这是我们现在正在运营和运维的平台。

再往下听到听云,其实不仅仅是今天的会听云是主办方,其实听云APM对我们来说提供了非常好的帮助。因为我们的技术能力再强,保证我们的系统再稳定,客户端我们也无法保证,我们只能保证服务器这边稳定。但是我也要实时知道是不是所有的用户都能访问到我的数据中心,所以基于这点必须有一个能够覆盖全国监听和监控的网络,这个如果国美自己来搭的话成本是很大的,所以我们选择了国内APM的厂商就是听云Network,听云覆盖全国的网络给予我们很大的帮助,包括移动端。甚至我能收到听云给我发布的短信,说黑龙江省哈尔滨市联通网络不能访问到金融业务,我们能收到这样的细的报警,这跟我们听云的产品是分不开的,下图是听云Network做的监控。

10.jpg

除了网络之外我们还对应用性能做了监控,因为听云现在目前的产品有三类,一个是听云的Network,还有Server、App。Server这端我们也可以看到不只是说服务器的性能,还包括应用性能,因为它有探针在我们开发的软件里面。监测出来的应用性能可以告诉我们,服务器响应时间是多少,我们的Web服务器响应时间多少,还有我们的首屏时间、首包时间等等,都可以让我们很清楚的了解现在的业务是怎么样的状态。这是听云给我们的帮助,如果没有它的话我们只能管好我们自己的这一部分,有了它之后我们才能看到全国业务到目的是个什么样的状态。

11.jpg

国美目前也在转型,国美目前的口号是开放、创新、共享,同时也是希望让科技成为国美的核心竞争力,我是国美云的技术总监左坚,谢谢大家,如果有问题可以会后沟通。

APMCon2016 演讲PPT合集下载

链接: http://pan.baidu.com/s/1mhFwaZQ 密码: bezk


想阅读更多技术文章,请访问听云技术博客,访问听云官方网站感受更多应用性能优化魔力。


关于作者

APMCon2016

驱动应用架构优化与创新

我要评论

评论请先登录,或注册