故障实验框架:LinkedOut与Capital One的实践探索
1. LinkedOut的故障实验方案
1.1 快速实验的浏览器扩展
在故障实验框架中,虽然基于LiX的方案适合大规模用户和实验,但缺少在浏览器中快速进行故障实验的能力。为了满足快速迭代探索故障对系统影响的需求,引入了通过Invocation Context(IC)向请求注入故障的机制。IC是Rest.li框架中特定于LinkedIn的内部组件,可在请求中传递键值对并传播到处理请求的所有服务。
为了方便在浏览器中进行一次性快速实验,开发了一个浏览器扩展。其操作流程如下:
1. 点击按钮发现请求涉及的所有服务。
2. 选择要注入故障的服务。
3. 点击按钮刷新页面并应用故障。
为了发现下游服务,利用了名为Call Tree的内部框架进行请求跟踪。该框架允许工程师将分组键作为cookie与请求一起设置,从而关联所有发现的下游调用。浏览器扩展会设置Call Tree分组键cookie刷新页面,发现涉及的下游服务并显示在UI中。
由于请求可能涉及多个甚至数百个服务,扩展中添加了搜索框,方便用户快速过滤关注的端点或服务。并且,用户可以针对特定端点的特定Rest.li方法注入故障。用户选择所有适用资源的故障模式后,扩展会创建故障的JSON数据,设置cookie注入IC,然后刷新页面应用故障,整个过程对用户来说非常便捷。
这个浏览器扩展的优点是影响范围极小,仅允许员工在自己的浏览器中针对请求级故障进行实验,故障影响仅限于自身。若在主页到提供LinkedIn动态的API请求中注入故障,只会影响自己的会话体验,不会影响他人。而且,只需点击
超级会员免费看
订阅专栏 解锁全文
55

被折叠的 条评论
为什么被折叠?



