双 11 这个关于购物的狂欢节, 到今年已经是第九年. 从 2009 年的 5000 万元到去年 (2016) 的 1207 亿元销售额, 不到十年时间, 它见证了中国人消费习惯的迁移. 这背后, 是移动互联网崛起, 消费升级, 服务业转变等多层面的巨大变化. 这一场几乎是全民参与的最大规模的网络盛会背后, 紧贴的是和我们生活最近的场景之一——购物. 如果你参与过多年双 11, 也许会对曾经的服务器拥堵, 环节不流畅印象深刻, 而现如今, 这样阻碍「买买买」的情况却越来越少. 这背后让人好奇的就是, 双 11 是怎么变成现在这样的? 带着这个疑问, 双 11 前夕, 极客公园前往宁波海关, 保税区仓库以及阿里巴巴技术部等重要环节, 采访到在双 11 前进行「压测」的工作者, 听他们聊了聊在大家尽情买买买背后的秘密. 看不见的争分夺秒 压测, 全称压力测试, 是对系统进行针对性测试, 以此发现和解决问题, 为正式活动做好准备. 通俗点说, 就是实战演练, 「磨刀不误砍柴工」. 极客公园来到的第一站是宁波海关, 这里是目前全国跨境物流包裹量最大的进口口岸之一. 在历年双 11 中, 这里承担了全国将近 50% 的跨境包裹量. 面对现今日益完善的跨境电商业务, 今年双 11 能否处理更海量的包裹单量申报, 就成为其压测的目的. 「现在日平均处理单量大约是 10 到 20 万单, 如果按照综合预测今年双 11 真的有 700 万单, 就是平时的 30 多倍. 」宁波海关技术处刘阳科长介绍, 相比去年 双 11 不到三百万单的量, 今年压力的确很大. 有海淘网购经历的用户应该比较清楚, 在购买海外商品后, 海关要对入境货物进行审核, 完成备案, 这一环节中, 地方海关要在初次审核后进一步上报至海关总署, 经过总署审核后才能够进行下一步动作. 因此在面对双 11 这样的大型线上交易活动时, 对于系统的考验更加巨大. 而对于电商企业来说, 要想让境外商品更快更高效送到用户手中, 也需要和海关默契配合. 从九月份开始, 宁波海关就和阿里巴巴对接, 阿里巴巴会生成上百万份虚拟申报单, 以测试海关系统能否在短时间内处理通关, 并且顶住峰值压力. 这一过程可以发现系统需要多长时间处理完大量数据, 哪些环节比较慢等问题. 经过十月份的第一轮准备, 目前宁波海关已经可以在 24 小时内处理 700 万左右的单量, 这意味着双 11 当天, 即便大家都从海外买买买, 海关处理起来也不会慢. 从海关采访结束, 我们来到宁波保税东区的跨境电商专用仓库. 虽然还有二十多天才到双 11, 但这里 30 多个保税仓库不少都已经堆满货物, 货车进进出出, 工人们忙着理货, 贴码, 上架, 包装等工作. 宁波保税区海关物流监控科科长孙长伟告诉极客公园, 再有一个多星期, 这些仓库应该就能完成所有备货上架, 预包装工作也将基本完成. 根据预测, 今年宁波关区 700 万单的包裹量中, 保税区将达 560 万单以上, 这些货物预计可以在 10 天内全部完成发货. 但仓库的压测和别处不同, 仓库管理人员告诉我们, 在双 11 来临前, 仓库也会进行实战演练来测试短时间内处理货物的能力. 白天先将货物累积起来, 到晚上十二点再集中处理, 并预测包裹处理能力, 发现其中可能出现的问题, 包括人员效率, 也包括机器是否正常运转等. 这和平常有所不同, 平时用户白天的订单包裹, 会在下午四点前发出, 四点以后的包裹会在第二天早上发出, 到双 11 这天, 所有包裹都是晚上十二点下单之后就开始上线发货, 所以考验的就是十二点以后的处理能力. 仓库管理人员告诉极客公园, 用户下单之后, 仓库在半小时以内就会接到物流信息, 而宁波保税区的海外商品提前已经准备就绪, 所以相比过去, 如今即便是在双 11 期间人们大量购买的海外商品, 出货时间也和国内商品基本相同, 到收货点不会超过 10 天. 人变少, 压力却变小了 每年双 11 这一天的零点, 大量用户会进入阿里平台, 选购商品. 这里包含的不仅仅是不同地区用户复杂的使用习惯, 同时也需要电商/海关/银行/物流等各方面的快速协作, 从这一层面来说, 即便双 11 已经到第九个年头, 也仍然会有挑战. 「当流量大的时候机器性能会达到一个瓶颈, 突破这个瓶颈就会影响用户体验, 引起一系列异常. 」 经历过八年双 11 的天猫双 11 技术大队长霜波告诉极客公园, 系统要处理几亿用户同时下单, 要保障这一点是很难的, 所以压测这件事从第一次双 11 开始做到现在. 但最初几年的压测是在线下, 之后发现线下压测很难找到线上的问题, 因为线下压测要另外搭一套系统, 这套系统里的机器/容量都和线上很难匹配, 所以到 2013 年, 阿里做了线上全链路压测, 技术人员会模拟双 11 当天用户所有行为, 直接在线上机器去下单. 和线下压测相比, 线上压测按照链路走, 这个链路可以很深很深. 「比如你在淘宝下一个单, 然后可以马上支付, 可以发出物流单, 然后商家就可以立即操作发货, 这就可以看作一个完整链路, 我们可以把这个链路完全走完. 」天猫双 11 稳定性负责人叔同表示, 之前压测时, 要对系统一个一个压测, 之后会知道哪个部分该加服务器, 哪个该扩容. 但这种分而治之的策略像堆积木一样, 不牢靠. 如果一个应用和后面三个有关系, 那联系起来就会出很多问题. 「全链路就是把一整套串起来压测, 把支付宝/菜鸟这些也都串起来, 打通消息交互和服务调用, 都可以直接测试. 这样能够达到跟双 11 类似的压力环境. 我们第一年做全链路压测发现五百多个问题, 后来分析过, 如果这里面有两三个问题爆发, 整个双 11 就是失败的, 但通过这样的机制, 能让它把问题提前暴露提前解决. 」 从 2013 年开始, 全链路测试为双 11 当天解决了不少问题之后, 到今年, 阿里开始尝试的, 是如何能在效率提升的基础上, 让更少的人, 投入更少精力去参与双 11 测试, 所以就有了「尖兵计划」, 让机器代替人去解决一部分压测问题. 「我们在线上, 白天会有百分之五十的量跑真实用户, 另外隔离出百分之五十的量去跑压测数据, 这样就能自动去跑压测数据, 也不会对线上造成影响, 今年尖兵计划中, 我们提前发现了一些系统 bug 还有硬件资源 bug, 所以到晚上压测时压力就更小一些. 」 霜波表示, 之前的压测都在晚上进行, 为了不影响用户使用, 去年双 11 前工程师对系统进行了 8 次压测, 而今年通过模型上新的算法, 加上大数据的分析, 压测实际上在白天就自动完成了一部分, 而另一部分也帮工程师解决了很多问题. 10 月 20 日晚上, 一轮新的压力测试开始, 当屏幕上的数据突破某一峰值后, 曲线出现了一次小幅度的下跌, 几分钟后, 数字又恢复了平稳, 看似普通的压测, 却和往年有所不同. 「刚才我们的一台机器就出现了过载, 分配到这台服务器的订单都出现了交易失败的情况. 如果是去年, 就能听到有人说, 要把这台机器下线, 但是今年你会发现这个过程是自动的, 系统自动发现了这台服务器的问题, 自动把它下线, 修复问题之后会自动把这台服务器重新上线. 」霜波表示, 像这样的人工决策点, 今年有一半都交给了机器, 压测的次数也从 8 次减少到了 3 次, 「工程师的工作量减少了 30%, 轻松很多. 」这不仅仅是减少工程师熬夜, 也是自动化算法的优势. 压测不断改进也在提升着双 11 当天的峰值处理能力, 叔同表示, 在 2015 年双 11, 系统峰值处理能力是 8.6 万次/秒, 到 2016 年就达到 17.5 万次/秒, 尽管今年双 11 具体情况尚不可知, 但至少在压测当中, 系统的自动调配处理能力在不断增强. 在我们能够感知的维度, 大多数人看到的双 11 仅仅是一次普普通通的网购, 可当互联网用户群越来越大, 网上购物的行为越来越普遍时, 要怎样连接各个环节, 让所有人都能感知到体验升级, 怎样确保大量用户参与也不至于出现问题, 这里面不仅仅是不同领域的协作, 也是技术的进步. 而当你再下单参加双 11 狂欢时, 也许会有更进一步的体会.
双 11 这个关于购物的狂欢节, 到今年已经是第九年. 从 2009 年的 5000 万元到去年 (2016) 的 1207 亿元销售额, 不到十年时间, 它见证了中国人消费习惯的迁移. 这背后, 是移动互联网崛起, 消费升级, 服务业转变等多层面的巨大变化. 这一场几乎是全民参与的最大规模的网络盛会背后, 紧贴的是和我们生活最近的场景之一——购物. 如果你参与过多年双 11, 也许会对曾经的服务器拥堵, 环节不流畅印象深刻, 而现如今, 这样阻碍「买买买」的情况却越来越少. 这背后让人好奇的就是, 双 11 是怎么变成现在这样的? 带着这个疑问, 双 11 前夕, 极客公园前往宁波海关, 保税区仓库以及阿里巴巴技术部等重要环节, 采访到在双 11 前进行「压测」的工作者, 听他们聊了聊在大家尽情买买买背后的秘密. 看不见的争分夺秒 压测, 全称压力测试, 是对系统进行针对性测试, 以此发现和解决问题, 为正式活动做好准备. 通俗点说, 就是实战演练, 「磨刀不误砍柴工」. 极客公园来到的第一站是宁波海关, 这里是目前全国跨境物流包裹量最大的进口口岸之一. 在历年双 11 中, 这里承担了全国将近 50% 的跨境包裹量. 面对现今日益完善的跨境电商业务, 今年双 11 能否处理更海量的包裹单量申报, 就成为其压测的目的. 「现在日平均处理单量大约是 10 到 20 万单, 如果按照综合预测今年双 11 真的有 700 万单, 就是平时的 30 多倍. 」宁波海关技术处刘阳科长介绍, 相比去年 双 11 不到三百万单的量, 今年压力的确很大. 有海淘网购经历的用户应该比较清楚, 在购买海外商品后, 海关要对入境货物进行审核, 完成备案, 这一环节中, 地方海关要在初次审核后进一步上报至海关总署, 经过总署审核后才能够进行下一步动作. 因此在面对双 11 这样的大型线上交易活动时, 对于系统的考验更加巨大. 而对于电商企业来说, 要想让境外商品更快更高效送到用户手中, 也需要和海关默契配合. 从九月份开始, 宁波海关就和阿里巴巴对接, 阿里巴巴会生成上百万份虚拟申报单, 以测试海关系统能否在短时间内处理通关, 并且顶住峰值压力. 这一过程可以发现系统需要多长时间处理完大量数据, 哪些环节比较慢等问题. 经过十月份的第一轮准备, 目前宁波海关已经可以在 24 小时内处理 700 万左右的单量, 这意味着双 11 当天, 即便大家都从海外买买买, 海关处理起来也不会慢. 从海关采访结束, 我们来到宁波保税东区的跨境电商专用仓库. 虽然还有二十多天才到双 11, 但这里 30 多个保税仓库不少都已经堆满货物, 货车进进出出, 工人们忙着理货, 贴码, 上架, 包装等工作. 宁波保税区海关物流监控科科长孙长伟告诉极客公园, 再有一个多星期, 这些仓库应该就能完成所有备货上架, 预包装工作也将基本完成. 根据预测, 今年宁波关区 700 万单的包裹量中, 保税区将达 560 万单以上, 这些货物预计可以在 10 天内全部完成发货. 但仓库的压测和别处不同, 仓库管理人员告诉我们, 在双 11 来临前, 仓库也会进行实战演练来测试短时间内处理货物的能力. 白天先将货物累积起来, 到晚上十二点再集中处理, 并预测包裹处理能力, 发现其中可能出现的问题, 包括人员效率, 也包括机器是否正常运转等. 这和平常有所不同, 平时用户白天的订单包裹, 会在下午四点前发出, 四点以后的包裹会在第二天早上发出, 到双 11 这天, 所有包裹都是晚上十二点下单之后就开始上线发货, 所以考验的就是十二点以后的处理能力. 仓库管理人员告诉极客公园, 用户下单之后, 仓库在半小时以内就会接到物流信息, 而宁波保税区的海外商品提前已经准备就绪, 所以相比过去, 如今即便是在双 11 期间人们大量购买的海外商品, 出货时间也和国内商品基本相同, 到收货点不会超过 10 天. 人变少, 压力却变小了 每年双 11 这一天的零点, 大量用户会进入阿里平台, 选购商品. 这里包含的不仅仅是不同地区用户复杂的使用习惯, 同时也需要电商/海关/银行/物流等各方面的快速协作, 从这一层面来说, 即便双 11 已经到第九个年头, 也仍然会有挑战. 「当流量大的时候机器性能会达到一个瓶颈, 突破这个瓶颈就会影响用户体验, 引起一系列异常. 」 经历过八年双 11 的天猫双 11 技术大队长霜波告诉极客公园, 系统要处理几亿用户同时下单, 要保障这一点是很难的, 所以压测这件事从第一次双 11 开始做到现在. 但最初几年的压测是在线下, 之后发现线下压测很难找到线上的问题, 因为线下压测要另外搭一套系统, 这套系统里的机器/容量都和线上很难匹配, 所以到 2013 年, 阿里做了线上全链路压测, 技术人员会模拟双 11 当天用户所有行为, 直接在线上机器去下单. 和线下压测相比, 线上压测按照链路走, 这个链路可以很深很深. 「比如你在淘宝下一个单, 然后可以马上支付, 可以发出物流单, 然后商家就可以立即操作发货, 这就可以看作一个完整链路, 我们可以把这个链路完全走完. 」天猫双 11 稳定性负责人叔同表示, 之前压测时, 要对系统一个一个压测, 之后会知道哪个部分该加服务器, 哪个该扩容. 但这种分而治之的策略像堆积木一样, 不牢靠. 如果一个应用和后面三个有关系, 那联系起来就会出很多问题. 「全链路就是把一整套串起来压测, 把支付宝/菜鸟这些也都串起来, 打通消息交互和服务调用, 都可以直接测试. 这样能够达到跟双 11 类似的压力环境. 我们第一年做全链路压测发现五百多个问题, 后来分析过, 如果这里面有两三个问题爆发, 整个双 11 就是失败的, 但通过这样的机制, 能让它把问题提前暴露提前解决. 」 从 2013 年开始, 全链路测试为双 11 当天解决了不少问题之后, 到今年, 阿里开始尝试的, 是如何能在效率提升的基础上, 让更少的人, 投入更少精力去参与双 11 测试, 所以就有了「尖兵计划」, 让机器代替人去解决一部分压测问题. 「我们在线上, 白天会有百分之五十的量跑真实用户, 另外隔离出百分之五十的量去跑压测数据, 这样就能自动去跑压测数据, 也不会对线上造成影响, 今年尖兵计划中, 我们提前发现了一些系统 bug 还有硬件资源 bug, 所以到晚上压测时压力就更小一些. 」 霜波表示, 之前的压测都在晚上进行, 为了不影响用户使用, 去年双 11 前工程师对系统进行了 8 次压测, 而今年通过模型上新的算法, 加上大数据的分析, 压测实际上在白天就自动完成了一部分, 而另一部分也帮工程师解决了很多问题. 10 月 20 日晚上, 一轮新的压力测试开始, 当屏幕上的数据突破某一峰值后, 曲线出现了一次小幅度的下跌, 几分钟后, 数字又恢复了平稳, 看似普通的压测, 却和往年有所不同. 「刚才我们的一台机器就出现了过载, 分配到这台服务器的订单都出现了交易失败的情况. 如果是去年, 就能听到有人说, 要把这台机器下线, 但是今年你会发现这个过程是自动的, 系统自动发现了这台服务器的问题, 自动把它下线, 修复问题之后会自动把这台服务器重新上线. 」霜波表示, 像这样的人工决策点, 今年有一半都交给了机器, 压测的次数也从 8 次减少到了 3 次, 「工程师的工作量减少了 30%, 轻松很多. 」这不仅仅是减少工程师熬夜, 也是自动化算法的优势. 压测不断改进也在提升着双 11 当天的峰值处理能力, 叔同表示, 在 2015 年双 11, 系统峰值处理能力是 8.6 万次/秒, 到 2016 年就达到 17.5 万次/秒, 尽管今年双 11 具体情况尚不可知, 但至少在压测当中, 系统的自动调配处理能力在不断增强. 在我们能够感知的维度, 大多数人看到的双 11 仅仅是一次普普通通的网购, 可当互联网用户群越来越大, 网上购物的行为越来越普遍时, 要怎样连接各个环节, 让所有人都能感知到体验升级, 怎样确保大量用户参与也不至于出现问题, 这里面不仅仅是不同领域的协作, 也是技术的进步. 而当你再下单参加双 11 狂欢时, 也许会有更进一步的体会.
|