不松软却可以弹起来 京东云的弹性从何而来?

  6·18战罢,京东交出的答卷毫无意外的再次大幅刷新了各项历史记录。而在这个飞速发展的国家和这个国家的互联网圈儿里,成就、金钱、荣誉就像树上的果子,只要你不辞辛劳的去摘,总还是能赚的钵满盆满的。如果你是一个局外人,目睹今日之中国互联网圈,一定会产生一个感觉,那就是:人傻、钱多、速来。但事情真的是这样吗?

  其实,将“人傻、钱多、速来”作为中国互联网圈火爆现状的终极答案也并非完全错误,这个略带主观和戏虐态度的答案至少说对了两点,那就是“钱多”和“速来”。“钱多”说的是资本青睐,原始积累也很快;“速来”则是中国互联网人夜以继日工作所换来的对各种功能和商业模式的迅速实现。而这个答案,错只错在“人傻”这一点上。

  在中国,消费者不傻,互联网圈里的人更不傻。他们不仅知道用户的需求,更具备将用户需求转化成产品的智慧和技术。

  京东618品质狂欢节中,为了支持广大网友在这一天能够顺利、快速、开心的剁手买买买,京东不仅准备了海量的折扣商品,更在如何应对流量和交易高峰上做足了准备。而这些准备一方面靠聪明人来细心维护,另一方面则要靠聪明人研发出来的各种高效技术作为基础。

  或许是全球最大的Docker集群

  从京东给出的战报来看,618全天订单量同比增长60%,以2015年1500万单的数据推算应该是超过2400万单;这其中,移动端下单量占比高达85%。而在整个618品质狂欢节当中,京东订单量更是轻松破亿。而面对这样的压力,京东云是唯一的答案。

  作为中国电商的代表性力量,京东在基础架构上与其他主力玩家一样,只能靠自己。为了应对今年618的峰值流量。京东云所拥有的是3万多台服务器和部署在这些服务器上的15万个Docker容器。

  之所以选择Docker技术,京东云研发中心总经理何小峰表示:Docker技术在实现虚拟机时,性能开销是目前最小的。如果在一台64物理核心的服务器上建立8个8核心Docker容器的话,那么8个容器的在应对负载时所表现的总体性能跟一台64核心物理机是差不多的。而为了应对2016年的618,京东目前的Docker虚拟机总数已经达到15万个,很可能已经是全球最大的Docker集群。

  而在选择Docker技术之后,京东业务的部署速度已经从过去的一个月降到了分钟级,甚至是秒级。

  除了利用Docker容器在性能上的优势,京东云还进行了一系列工作来保证618的顺利进行。首先,京东云通过一系列流量预测模型对可能出现的资源扩容情况进行估算。然后再通过一系列自动构建集群、不同级别的自动容灾、自动负载均衡和自动故障迁移机制,保证系统能够自动化的应对618可能出现的各种情况。

  虽然京东云的规模在中国互联网圈里算不上最大的,但在业务速度上质飞跃让则京东云能够以最快的速度来应对618订单风暴中任何可能的意外,而速度和性能上的优势正是京东云弹性的基础保障。

  4亿、300亿、3000亿

  除了优秀的底层架构之外,上层的中间件更是整个京东云保持业务效率的关键。

  作为一个有特点、有追求的电商云,京东云专门针对京东电商平台的特点构建了三大中间件平台:分布式高速KV缓存JIMDB、分布式消息队列JMQ以及分布式微服务框架JSF。

  首先,JIMDB一直是京东云架构的特色。对于京东这种高流量电商网站来说,大量PV所产生的浏览和查询请求绝不是传统关系型数据库所能应对的,而JIMDB的高速KV缓存则可以解决这一问题。何小峰表示:京东云目前的JIMDB版本当然也是基于Docker的。而为了保证JIMDB的性能,目前有5万个容器在支持其运行,现在的JIMDB所存储的数据已经超过100TB。而在618当天,JIMDB每秒进行的操作就高达4亿次。除此之外,目前版本的JIMDB还可以根据压力情况进行自动扩容、收缩并且自动接入和部署。此外,JIMDB还能够根据目前运行的性能情况进行自动分片,将大集群分解为若干小集群。而这套JIMDB中间件几乎服务于目前京东所有的业务应用。

  其次,既然是要面对爆炸式海量订单的电商云,京东云消息队列服务的可靠性和效率就是生命。而京东自主开发的JMQ既然能够应对一天之内2400万的订单量,其先进性和可靠性自然也是不用说了。目前,京东云JMQ不仅拥有断电不丢消息、跨机房容灾等保命技能,更能够实现组提交、透明压缩、灵活复制、动态扩容。可以说京东云的JMQ就是一直飞翔的凤凰,不死且灵活。在618购物季期间,整个JMQ队列消息调用量已经达到了300多亿次。