小米,应该是无人不知无人不晓,于2010年4月正式成立,是专注于高端智能手机自主研发的移动互联网公司,而小米以专注、极致、口碑、快四大秘诀,也赢得了广大米粉的追捧。
在今年4月8日的米粉节中,通过12个小时的闪购,小米一共销售了超过200万台手机和120多万的智能设备和手机附件,实现销售额超过20亿元,创造了吉尼斯世界纪录。在吉尼斯纪录诞生的同时,是AWS云计算服务为闪购活动保驾护航,并且帮助小米网节省了数十万的IT费用。
初识米粉节
小米网是小米全资的在线专卖店,目前是中国第三大电商平台,并且在每周二都会举办抢购活动。此外,为了反馈一路支持的米粉,每年的4月8日定为米粉节,会连续组织大型的促销活动,预计有千万用户参与。
因此,为了应对抢购活动,小米网开发了抢购系统,在内部这个系统被称为“大秒”,意为大型秒杀购物系统,主要作用是实现对后端的服务,包括对数据的保护。在2014年米粉节上,抢购系统正式上线,该系统是使用go语言开发,在2014年米粉节中QPS(Query Per Second,每秒请求数)达到上百万次,单位台稳定连接数也是上百万。
而在刚刚结束的2015年的米粉节上,有1460万用户参与了米粉节的狂欢,手机累计销售达到211.2万台,手机相连高度接近4000个迪拜塔,订单总数超过305万单,面积可铺满1个国家大剧院,总金额突破20.8亿元,其中移动端支付占比43.6%。
与AWS的相遇
千万级用户的狂欢带来了新的吉尼斯纪录,但是也对抢购系统造成了巨大压力。小米网电商资深架构师侯文辉表示,我们平时的服务器只能应对常规的周二抢购活动,但是米粉节的需求量是翻十倍的情况,以小米现有的设备状况是无法满足的。
小米网电商资深架构师侯文辉
为了应对米粉节,需要临时增加机器、增加带宽、购买资源,但是机器的申请、采购、配置、部署,这些工作在短时间内很难完成,而且增加的资源只是为了米粉节一天使用,会造成很大的浪费。
在经过了对比后,小米选择了AWS,不仅可以方便快速扩容,还可以节约成本。于是,在2014年2月,小米网正式开始使用AWS的海外云计算服务。紧接着在当年的10月,小米网开始使用了中国的AWS服务,包括EC2、S3、ELB和EMR等。
为了保证业务系统在AWS中运行是正常的,在2014年12月,抢购系统在AWS平台上进行灰度测试,先将一定流量分配到AWS,查看其稳定性,然后再逐渐增加比例。在灰度测试完成后,在2015年3月,抢购系统正式上线,并且在4月专线开通,保障了米粉节的抢购活动顺利进行。
鱼与熊掌兼得
就在近日,AWS宣布了Direct Connect服务在北京区域正式提供,客户可以使用AWS Direct Connect服务建立专线连接来降低网络成本、提高带宽流量,并提供一个比基于公网Internet连接更可靠、高效的网络体验。结合AWS的其他多项服务,企业级客户可以搭建一个灵活的、可伸缩的混合IT架构。
而小米就是Direct Connect进入中国后的首家客户,而应用场景也正是4月8日的米粉节。
由于要保持前端数据的一致性,小米的数据是存放在物理机房中,但是,要应对大规模的闪购活动,就要使用AWS的公有云服务,因此小米的前端Web服务放在了AWS上。通过Direct Connect服务,将小米的数据中心与AWS公有云服务进行连接,实现了数据的交互,保证了米粉节的顺利进行,同时还节省了成本费用。
当用户抢购时,访问流量会通过AWS的ELB(Elastic Load Balancing)服务在云中的多个EC2实例间自动分配应用程序的访问流量,然后进入到Web服务层,在确定处理业务逻辑后,通过Direct Connect连接到物理机房,从机房中读取数据,然后再进行业务层的处理,最后回传给Web服务层,返回给用户。
据侯文辉介绍,此次专线直连购买了电信和联通两条专线,端口速度都为1Gbps,并且是通过运营商来完成更高的速度要求。
通过Direct Connect服务,小米构建了一个连接本地数据中心和AWS云服务的混合IT架构,实现了抢购系统与AWS高可用性的云服务之间的无缝连接,让上千万的米粉们都抢购到自己称心如意的产品。谁说鱼与熊掌不可兼得呢?小米就做到了!
此次米粉节,小米使用了压测机600台,EIP(弹性IP地址)600个,EC2 200+,ELB 5个,每个ELB QPS 200万+。
服务至上
每一个技术的背后都离不开服务,而服务也正是AWS的特色之一。在AWS的Support计划中,是一对一快速反应支持通道,配备富有经验的技术支持工程师,7x24x365全年全天无休地为客户服务。
AWS TAM(Technical Account Manager,技术客户经理),可以提供 AWS全部服务的专业技术知识并详细了解客户的使用案例和技术架构。而为了应对此次米粉节,AWS的TAM更是与小米工程师并肩作战,出色的完成了米粉节这个巨大的挑战。
AWS中国技术支持团队负责人王文韬表示,小米每周的闪购活动,AWS的TAM都会全程支持,提前跟踪。一般情况下,小米的工程师提出架构后,根据客户的需求,TAM会评估架构的可行性,进而双方在讨论具体的工作内容。
例如,在这次米粉节的准备过程中,小米发现最初的配置下,AWS内网延迟是物理机房的两倍,由于传统的机房是物理机器,直接通过物理网卡就可以进行数据交换,而在AWS中,是通过虚拟机完成的,多个虚拟机使用同一个物理网卡,因此性能是有损耗的。最后在AWS TAM的帮助下,通过优化配置,将内网延迟0.3毫秒降低到0.1毫秒,提高了2倍多。
侯文辉表示,“通过购买企业级支持服务以后,在AWS工程师的帮助下,我们解决了很多技术问题,在有限的时间内保证了项目的稳定上线。”
经过了今年米粉节的验证,AWS顺利通过了这次大考,而未来,小米也计划将抢购系统整体都迁移到AWS云中。