当前位置:金沙js9001平台 > 互联网 > 去哪儿系统高可用之法,全局效率差

去哪儿系统高可用之法,全局效率差

文章作者:互联网 上传时间:2019-10-20

原标题:去哪儿系统高可用之法:搭建故障演练平台

原标题:《雪崩》作者尼尔·斯蒂芬森领导着Magic Leap西雅图团队

原标题:营销进化史:全局效率差,定营销胜负

作者介绍

文章相关引用及参考:映维网

“年少的我们,孤独坚定,就像北极星,守护心中不熄灭的热血。迷路的我们,仰望天空,看到它,就看到希望与方向。”——佚名

王鹏,2017年加入去哪儿机票事业部,主要从事后端研发工作,目前在机票事业部负责行程单和故障演练平台以及公共服务ES、数据同步中间件等相关的研发工作。

把西雅图的神秘面纱稍稍揭开了一点点。

图片 1

去哪儿网2005年成立至今,随着系统规模的逐步扩大,已经有成百上千个应用系统,这些系统之间的耦合度和链路的复杂度不断加强,对于我们构建分布式高可用的系统架构具有极大挑战。我们需要一个平台在运行期自动注入故障,检验故障预案是否起效——故障演练平台。

映维网 2018年09月12日)两年前,神秘AR初创公司Magic Leap在距离其总部3300英里远的西雅图设立了一个办事处,而自那以后,他们就一直对这个前哨站的工作三缄其口。但随着第一款产品的正式上市(Magic Leap One创作者版本),Magic Leap终于向我们提供了一定的信息,把西雅图的神秘面纱稍稍揭开了一点点。

一、瑞幸咖啡的效率

一、背景

Magic Leap没有透露西雅图办事处的员工数量,但根据LinkedIn的信息,超过50人表示目前受雇于Magic Leap,而工作地点则是大西雅图地区。

据星巴克官方披露的信息,每约15小时就有一家星巴克门店在中国开张。至2018年5月,星巴克在中国开出超3000家门店,平均每年160家左右。

这是某事业部的系统拓扑图:

图片 2

而风头正劲的LuckinCoffee瑞幸咖啡据称已完成门店布局900家,服务用户350余万,销售杯数达2000万杯,并将年内目标激进的定为建店2000家。不仅如此,据官方数据,瑞幸咖啡外送订单平均完成时间为18分钟,“30分钟慢必赔”超时率为0.4%,用户满意度达到99.3%。至此,瑞幸咖啡成为独角兽,刚刚完成的A轮融后估值超过10亿美元。

图片 3

西雅图工作室由著名科幻小说《雪崩》作者尼尔·斯蒂芬森和Brian Schowengerdt负责。对于斯蒂芬森,他在四年前成为了Magic Leap的首席未来学家,并曾供职于Blue Origin和Intellectual Ventures Labs,而Schowengerdt则是Magic Leap的联合创始人和首席科学与体验官,同时在华盛顿大学担任过很长一段时间的教授职位。

如果单纯地从开店效率来看,瑞幸大约6小时开一家店,速度是星巴克的2.5倍。在营销效率上,瑞幸更是实施了互联网的降维打法:发布张震、汤唯“这一杯,谁不爱”系列广告,围绕店面地理位置周边密集投放分众电梯媒体与微信朋友圈广告,诱导用户下载APP,获赠优惠券,邀请朋友买一赠一福利社交裂变,继而扩充轻食新品类……。

系统之间的依赖非常复杂、调用链路很深、服务之间没有分层。在这种复杂的依赖下,系统发生了几起故障:

这个前哨站是名为SCEU的机构所在地,亦即Self-Contained Existence Unit(自给自足单位),一个专注于内容的研发小组。另外,别名为Goat_Labs的十数人团队同样驻扎在这里,首席执行官罗尼·阿伯维茨曾安排他们向开发者分享自己的经验教训。

如果说,以前由星巴克、COSTA等玩家主导的咖啡市场,还是像静流一样有着自己的营销节奏,一家家的开店、用户体验为上、营造第三空间。而瑞幸,像一个突然闯入老地盘的的新牛仔,打法涵盖互联网赋能新零售的各种动作:以流量为核心运营、从线上/线下多场景切入、强化福利社交裂变、低成本以老拉新……

  • 弱依赖挂掉,主流程挂掉,修改报销凭证的支付状态,下单主流程失败;
  • 核心服务调用量陡增,某服务超时引起相关联的所有服务“雪崩”;
  • 机房网络或者某些机器挂掉,不能提供核心服务。

Goat_Labs的绰号可以追溯到一个曾极受欢迎的YouTube视频:将一个小山羊的视频转换为混合现实。这个机构的的经验教训不是完整的软件开发工具包或诸如此类,而是Magic Leap研发团队正在探索的,可供其他开发者复制的示例代码。

从营销观察角度,如果把获客想象成一台不断向用户使能前行的飞轮机器,目前看,瑞幸的获客效率或是比星巴克高。

三个故障原因:

西雅图办事处同时是Magic Leap开发者关系团队的所在地,由著名资深游戏从业者Tadhg Kelly负责。Tadhg主要是管理Magic Leap与西雅图地区中关键开发者与创作者的关系。返回搜狐,查看更多

图片 4

  • 系统强弱依赖混乱、弱依赖无降级;
  • 系统流量陡增,系统容量不足,没有限流熔断机制;
  • 硬件资源网络出现问题影响系统运行,没有高可用的网络架构。

责任编辑:

图:瑞幸咖啡的增长飞轮

各种各样的问题,在这种复杂的依赖结构下被放大,一个依赖30个SOA服务的系统,每个服务99.99%可用。99.99%的30次方≈99.7%。0.3%意味着一亿次请求会有3,000,00次失败,换算成时间大约每月有2个小时服务不稳定。随着服务依赖数量的变多,服务不稳定的概率会呈指数性提高,这些问题最后都会转化为故障表现出来。

二、营销的北极星指标

二、系统高可用的方法论

美国管理学家彼得-德鲁克说过:“企业的唯一目的就是创造顾客”,“企业的基本功能是营销和创新”。

如何构建一个高可用的系统呢?首先要分析一下不可用的因素都有哪些:

从用户-渠道-产品的循环三角来看,我们可以理解营销的过程其实就是一个通过各种渠道,触达用户,转化用户使用产品的持续使能过程。“使能”即`Enable`,前缀en-是“使”,able是“能够”,合起来的使能描述的是一个动态过程——以一定资源投入,创造能激发用户与品牌互动的场景,不断转化,从而让两者关系从弱到强,弱关系刺激品牌认知,强关系激发购买转化。这个过程就像一台输入原料,输出产能的机器,一旦这台机器启动,它唯一目标就是获客增长。

图片 5

图片 6

高可用系统典型实践

图:产品-渠道-用户三角

理论上来说,当图中所有的事情都做完,我们就可以认为系统是一个真正的高可用系统。但真是这样吗?

维基百科对“机器”的解释是——一种利用能量为达到一特定目的,负责执行任务的设备。这个定义有三个关键词:特定目的、利用能量、执行任务。对应到营销上,我们可以这样理解:

那么故障演练平台就隆重登场了。当上述的高可用实践都做完,利用故障演练平台做一次真正的故障演练,在系统运行期动态地注入一些故障,从而来验证下系统是否按照故障预案去执行相应的降级或者熔断策略。

图片 7

三、故障演练平台

机器利用能量是在做“功”——即单位时间内/或者单位资源,完成的工作量。“功”必然指向“效率”,而营销是通过预算资源的投入,产生一个个具体的创意广告、内容运营,公关活动……它们作为场景入口,再来产生流量、激活、留存、转化……。它们是营销的动作,这些动作就像机器做“功”一样,也必然应该指向“效率”,单位资源(其实时间也是一种资源)越少,完成的工作量越多,效率越高。对应到获客转化效率上,你用越少的资源、更短的时间,实现了更多的获客转化,你的营销效率就越高。

故障演练平台:检验故障预案是否真正的起作用的平台。

想象一下,一个品牌完美的营销组织与过程应该进化成一台完美的“机器”——它有梦幻的营销团队,就像操作机器的工人一样,不同的营销职能如不同的机器构件,给与资源能量,驱动不同功能构件的耦合,他们之间完美的协同,产生营销机器的“功”,不断转化用户,单位资源输出的获客转化越多,这台“营销机器”效率越高。

故障类型:主要包括运行期异常、超时等等。通过对系统某些服务动态地注入运行期异常来达到模拟故障的目的,系统按照预案执行相应的策略验证系统是否是真正的高可用。

图片 8

1、故障演练平台的整体架构

图:一个品牌完美的营销组织与过程应该进化成一台完美的“机器”

故障演练平台架构主要分为四部分:

在企业营销现实中,具体的营销活动多样而复杂,它们可能是一场场线下活动、一次次线上线下广告投放,或一个个在社交媒体平台上的裂变刷屏……这些各种各样的营销活动都可以有独立而多样的指标——可能是10万+的阅读数、可能是CPM、CPC、可能是粉丝关注人数、或APP下载量……等等,但无论如何,当我们开动这架营销机器的时候,我们都需要一个唯一而重要的指标——获客效率,这个指标应该像北极星一样在夜空永恒闪耀,持续提醒我们。在这个意义上,可以将“获客效率”称之为“北极星指标”。

图片 9

一些以销售促进为导向的营销活动是可以紧紧围绕“获客转化”展开的,但还有大量的品牌导向的投入,似乎很难看到与获客转化的直接关系,他们貌似和获客离得比较远。但我们可以用获客效率的“北极星指标”去思考和衡量它们,这时候,品牌广告的创意导向就会发生变化,相比没有从这个角度创作的广告比,获客效率自然不同。

  • 前台展示系统(WEB):展示系统之间的拓扑关系以及每个AppCode对应的集群和方法,可以选择具体的方法进行故障的注入和解除;
  • 发布系统(Deploy):这个系统主要用于将故障演练平台的Agent和Binder包发布到目标APP的机器上并且启动执行。前台展示系统会传递给发布平台要进行故障注入的AppCode以及目标APP的IP地址,通过这两个参数发布系统可以找到相应的机器进行Jar包的下载和启动;
  • 服务和命令分发系统(Server):这个系统主要是用于命令的分发、注入故障的状态记录、故障注入和解除操作的逻辑、权限校验以及相关的Agent的返回信息接收功能。前台页面已经接入QSSO会对当前人可以操作的IP列表做故障注入,防范风险。后端命令分发的模块会和部署在目标APP上的Agent进行通信,将命令推送到Agent上执行字节码编织,Agent执行命令后返回的内容通过Server和Agent的长连接传回Server端;
  • Agent和Binder程序:Agent负责对目标APP做代理并且做字节码增强,具体代理的方法可以通过传输的命令来控制,代理方法后对方法做动态的字节码增强,这种字节码增强具有无侵入、实时生效、动态可插拔的特点。Binder程序主要是通过发布系统传递过来的AppCode和启动端口(ServerPort)找到目标APP的JVM进程,之后执行动态绑定,完成运行期代码增强的功能。

例如,当王老吉的广告说“怕上火,喝王老吉”,这个广告就勾画了消费场景——上火、激发了你的恐惧情绪——怕,并且将这个场景与品牌直接关联“喝王老吉”,从场景-情绪-品牌,三位一体,这个品牌形象的广告成为具有导流价值的入口,获客效率相对高。“渴了累了喝红牛”,也是一样的原理。而有的广告,例如“鹤舞白沙,我心飞翔”,无场景-无情绪,品牌与用户间无法有效互动,获客效率很难高起来。

2、 Agent整体架构

图片 10

目前AOP的实现有两种方式:

图:王老吉是场景、情绪与品牌三位一体的经典案例

  • 静态编织:静态编织发生在字节码生成时根据一定框架的规则提前将AOP字节码插入到目标类和方法中;
  • 动态编织:在JVM运行期对指定的方法完成AOP字节码增强。常见的方法大多数采用重命名原有方法,再新建一个同名方法做代理的工作模式来完成。

营销使能,既可以在空间维度“做功”,也可以在时间维度“做功”。空间维度好理解,搞一堆营销事件使能就是空间做功。时间维度被大多忽略,比如初创品牌的“做功”就和成熟品牌很不同,初创品牌资源约束强,如果低成本获客成为关键命题,其实是对获客效率有更高的要求。再比如,不同行业营销周期差异也很大,比如企业软件项目从获客到回款往往大约12个月,房地产行业大约2-3年,制造业一般120天,这也需要营销者从时间维度判断产业周期、品牌成长周期、销售周期等不同,策略性配置资源,是阶段性重点资源投入做局部压倒性优势,还是细水长流以时间换空间,这些都是不同打法。可以说,营销“做功”重要,但啥时“做功”其实更重要。

静态编织的问题是如果想改变字节码必须重启,这给开发和测试过程造成了很大的不便。动态的方式虽然可以在运行期注入字节码实现动态增强,但没有统一的API很容易操作错误。基于此,我们采用动态编织的方式、规范的API来规范字节码的生成——Agent组件。

三、营销进化史就是效率提升史

Agent组件:通过JDK所提供的Instrumentation-API实现了利用HotSwap技术在不重启JVM的情况下实现对任意方法的增强,无论我们是做故障演练、调用链追踪(QTrace)、流量录制平台(Ares)以及动态增加日志输出BTrace,都需要一个具有无侵入、实时生效、动态可插拔的字节码增强组件。

营销效率可以理解成一个至少包括有:识别有效用户效率、作用于用户心智的认知效率、转化效率,以及传播扩散效率的函数。

Agent的事件模型

营销效率=函数{识别效率*认知效率*转化效率*扩散效率}

本文由金沙js9001平台发布于互联网,转载请注明出处:去哪儿系统高可用之法,全局效率差

关键词: