黄哲铿:大型电商微平台的建设与实践
黄哲铿(一号店):大家下午好,自我介绍一下,我是一号店的技术总监黄哲铿,也是技术管理这边的作者。非常荣幸受到邀请来给大家交流一下,我们在云服务以及云平台建设方面的心得,后面会讲到我们跟首都在线合作的一些感受。
今天我们分享的目录,我会从电商、云平台的引进来跟大家讲一下,我们之前是遇到一些问题,我们通过云平台的方式去解决的这些问题。另外还有就是我们做的私有云,在业务模块的设置上有什么样的考虑。最后是电商的混合云的应用。 其实电商混合云是我们用来应对双十一等,这种突发的容量我们会用云的架构去解决。
首先这个图右边我们会看到,电商云平台的一个规划路径。其实最开始的时候,当一个电商系统,你的交易量是每天只有那么几千单,或者是一万单左右的时候,这种规模的平台,一号店大概是成立了两年不到的规模。这种时候,我们自动化认为的也是刚刚起步,所以会有一些自动发布的一些脚本,以及管理我们的主机、网络的小工具,这个阶段是要高效的操作为主的。
随着生意的发展壮大,假如说你每天业务量能够达到了几万个定单,这时候你的IT硬件也是从之前的几十台变成上百台,甚至上千台这样的服务器。这个时候我们就必须使用这种系统化的、自动化的方式去管理我们的服务器和网络。所以就会到私有云的阶段。这个阶段会用一些虚拟化的技术,会把我们的硬件,包括存储也好,包括设备本身的资源也好,把它更大化的应用。其实比较火的是更高效的应用的一种虚拟化的方式。这个我们目前也是在测试阶段,也准备会大规模的去用。
到了你的数十亿、数百亿的时候,这样的电商系统必须用到混合云的这么一个架构。因为大家都知道,电商烧钱,电商虽然有钱,但是不傻。烧的要有技术含量,所以要把我们这些有硬件的资源,跟外面的这种,比如说首都在线这种云服务的提供商,跟他们一起做资源的协同,达到我们资源利用的这种最大化,尤其是应对我们突如其来的流量的高峰。这个时候就会用这种外部的公有云跟我们内部的私有云去共同应对。
我们会一起来看我们的私有云的技术架构是怎么样的。这是一个非常典型的私有云的架构,看起来是比较恐怖一些。基本上我们私有云是分成三层。最底层是提供最底层的基础级别的,像物理资源的管理,虚拟资源的管理,配置管理等等。再往上一层,就是我们通过虚拟化的技术,把我们的机器也好,说话说把一些存储进行一些封装和管理。最顶上就是我们顾客和用户能够使用的软件服务。
刚才我们了解到的是技术方面的架构,下面我们看一下,在企业的私有云里面,我们需要具备一些什么样的功能。 其实在最典型的这种私有云的平台里面,我们需要做到说,对资产的一个管理。 你随时都能够了解到,现在我们IT的在网络方面,在带宽,在主机的租用也好,它整个的费用情况是怎么样的。也可以结合这种业务,比如说海购是我们非常核心的业务,现在我们看到我在海购上投入多少服务期资源,多少带宽,都能看得到。以及有自动发布的平台,以及流量的控制也好。这些基础我们通过API的方式封装起来,跟外边公有云的一些资源进行这种对接、操作。中间肯定还是要有防火墙。这是业务层面的一个架构。下面我们会跟大家分享一下,在业务模块里边我们有哪些比较有特色。
首先我们的监控,监控是非常重要的一个环节。 这个是监控的闭环,会在装机的时候让它部署到客户端,部署到机器上,会收集包括网络也好,包括硬件的日志,以及我们软件的这些日志都会统一,收集到我们大数据的平台。这里面会用到一些什么呢?像流式管理 ,我们会把这些日志统一收集起来,会做一些屏蔽,会做智能分析。通过这种全面的大数据的汇集,我们去挖掘,我们去分析目前系统的一个健康度。
比如说刚才我在下面的时候,我手机里面收到提醒,告诉我们现在某一个应用某一台机器出现了报警,我看已经有开发人员迅速的处理了。这些都是我们监控系统能够给到我们的管理。以前监控是特别痛苦,像我在一号店呆了五年,刚进去的前两年,我看到手机就会有恐惧感。电话一响,基本上就是我们又出事故了。如果你是在半夜,那没办法,马上要起来,马上要处理,或者说跑到机房、公司去做紧急的处理。有了监控报警之后,我们不仅能够知道系统的健康度,我们还能清楚的知道,当前出事故的是哪几个点,他会做智能的判断。一般我们做这种事故分析都有这个经验。一开始,系统开始报警。系统开始报警,通常前5个是最有价值的,最有用的信息。因为这5个可能就是造成整个事故的根源。但很多人是忽略这个,他会去看,现在有哪个报警,他越往后拖报警的越多,全面的报警,他不知道什么问题引起的。这是一个经验。
这也是监控的部分,我们的大屏幕可以看到,当这条线是绿色的时候感觉它是正常的,如果黄的时候说明有一些问题了。红的时候已经说明完全不可用了,都是非常可视化的控制。监控子系统里面,我们有些什么样的收益,每天我们会新增2亿条的数据,这个日志刚才其实已经介绍了。有我们网络层面的有硬件的,有软件的,有人为操作的,所有日志都会在这里面。我们通过这种智能分析,就能够给到我们很好的服务的支持。
我们还有一个特色,就是自动化发布。指的是我们开发的一些程序,一些应用在我们的系统里面,能够做自动化发布。我们的开发人员现在其实工作非常轻松的,他写完了程序,测完提交到主干,经过我们测试人员测试之后,觉得你这个模块可以上线了,这个时候会在系统提交上线单,之后就是自动化发布要做的事情了。填一张上线的申请单,可以有灰度发布,白天发布,无人发布。灰度发布的概念,比如说一号店的购物车,我们有很多白板,不可能马上发布给大家看。所以我们会把我们10%的流量先迁过来,让用户试一下版本。如果他的各种没有问题,我们就会切更多的流量进来。
从原来每周只能发布一次,发布失败了,可能主要的几十个开发就一起熬夜,站在那去发布。从原来5%的故障变成了0。从原来6%的发布回滚变成千分之6,是非常明显的。
这是一个图,用户反应一号店,他感知不到。 现在我用的是私有云还是公有云,私有云就是一号店使用自己的硬件、软件。公有云就是首都在线这样的供应商。 我们首先会把公有云和私有云用专线连接起来,这个时候需要有一个认证的过程。我们的私有云程序会去校验公有云提供的是否符合要求。防火墙这边打开,进装机,初始化,这样就把公有云变成我们的私有云了。这是混合云的一个场景。大家可以看到,其实整个演进过程是从私有云到公有云逐渐演进的, 一旦你的设备打通了,很自然而然的就进入到公有云的阶段。你需要打造混合云的管理平台。
在电商混合云的实践里面,我们遇到哪些困惑,这个可以给大家一些经验分享。其实主要关注的几个问题, 一个是稳定性。 对稳定性来说,如果他不止说公有云的稳定性,私有云的稳定性也是一样的。你的应用能够灵活到,你私有云出现问题的时候,你可以把流量快速的出现公有云。当公有云出现的时候,滚动的方式把这功能切回来。这个是说的所谓稳定性。安全性,这不是一个特别大的技术问题。当然现在很多传统的老板,会有这种想法说我这个数据肯定要放在自家的机房安全,放在公有云不安全。其实你可以这么想,就说你家的钱,你是放在枕头下面安全还是放在银行的保险柜里安全,所以这个是意识上的转变。
这个是我们在混合云里面所得到的收益,快速部署2小时,这个数字有些保守。目前能够一个小时把300到500台公有云的机器从0,一小时以内做得完,这是自动化的。快速的销毁,30分钟内回收。节省成本,私有云的1/7,这个数字还是很漂亮的。你们可以拿到这个数字去给你们老板,年底加薪就有望了。高效灵活的部署。我们一号店在私有云以及公有云上的一些实践。
选择一个云服务商,其实最关键的是它的整个稳定性以及它的服务,以及像首都在线这样一个提供商,非常好。这是我跟大家分享的内容。谢谢。
向思路网投稿,请发送稿件至邮箱huyajie@ebrun.com