首页 > 娱乐前沿 > 科技
LinkedIn公开混乱工程经验,并开源部分异常注入框架LinkedOut
乐乐 2018-06-26 10:04:22
图片来源:

LinkedInGad我酷网

LinkedIn对外发表并部分开源其异常注入测试框架LinkedOut,这个框架可以在不影响会员使用经验下,通过两种机制引发分散式系统异常,其中包括错误、延迟以及超时3种情况。LinkedIn认为,该框架对内除了可以帮助工程师产出高品质程式码,对外也能展示其系统的强健性。Gad我酷网

LinkedIn网站可靠性资深工程师Logan△Rosen提到,他们的工作总是一再的验证墨菲定律,任何可能发生错误的地方都会出错,对于复杂的分散式堆叠,了解系统可能发生问题的地方,以及知道当用户遇到这些错误时,出现的画面以及情况是非常重要的工作。在2017年LinkedIn可靠性工程团队建立了Waterbear专案,通过复制系统故障以及调整框架,以透明简洁的方式处理错误,帮助开发人员维持网站弹性,而请求及失败注入框架LinkedOut则被开发用来测试错误、逾时以及超时3种情况。Gad我酷网

对分散式系统注入错误有很多种方法,Logan△Rosen表示,请求层级(Request△Level)是最好的方法,因为使用者通过LinkedIn寻找就业机会,他们不希望在测试时,中断会员使用服务的过程。而这个受控制的实验过程需求,正是他们开发LinkedOut的原因,LinkedOut的核心是Rest.li堆叠中的请求筛选器,其中部分已经开源。Gad我酷网

LinkedOut现在可以制造出3种类型的服务异常,分别是错误、延迟以及逾时。Rest.li框架当请求的资源发生通讯或是资料请求异常时,会引发几种预设的例外情况,像是能以DisruptException来模拟资源不可用,则该资源便会以RestliResponseException的形式出现,使用者同时也可以设定例外出现的时机。在制造延迟情况方面,使用者可以给予大量延迟请求,筛选器则会依要求延迟往下传递请求。想要测试服务逾时的情况,只要为终端在D2 Zookeeper配置里设定逾时,就能让筛选器等到超过时间,丢出TimeoutException。Gad我酷网

在避免影响会员使用经验的前提下,LinkedOut现在有两个主要机制来触发干扰器(Disruptor),其中一个是使用LiX,而这个本身是LinkedIn上进行A/B测试以及功能限制的框架,LiX可瞄准多个层级引发错误,测试范围可从单一用户进行个别请求,到下游丛集对一定比例的会员发出范围请求。这个触发机制,可以提供工程师设定针对特定流量区段的弹性测试。Gad我酷网

第二种触发机制是最近LinkedIn才加入的,通过调用上下文(Invocation△Context,IC)对请求注入失败,这个IC是LinkedIn专属的Rest.li框架内部组件,用来传递键(Key)与值到请求中,并传播到所有参与处理的服务中。LinkedIn为中断架构建立新的模式,可以通过IC传递来让该请求立即发生异常。Gad我酷网

Logan△Rosen表示,在开发功能的过程进行这些测试,能够确保工程师产出高品质的程式码,而在产品阶段进行这些功能,则能向外部组织提供信心以及系统强健的证据。Gad我酷网

Gad我酷网

上一篇  下一篇

I 相关 / Other

Google开源UI框架Flutter释出预览版

能帮应用程序快速换皮的UI框架Flutter,在3月Google△I/O大会释出测试版后,现在释出预览版第一版,就离正式版1.0不远了。Flutter持续在工具上进行更新,并且获得社交的强力支援,Google表示,在Google△I/O之后活跃

脸书开源大型应用程序加速工具B白领T

脸书开源内部用来加速大型应用程序的工具B白领T,由于提供复杂服务的应用程序,相对来说档案容量就比较大,即便只编译一种服务的机器语言,大小也可能介于10到100MB间,难以放入CPU指令快取中,硬件需要花费额外的时

Mozilla开源基于浏览器开发框架A

Mozilla在混合实境上进行了不少实验性的专案计划,探索各种可能性,而今在GitHub上开源了A-Terrain,这是一个在浏览器3D开发框架A-Frame上使用的高自由度网页制图组件,其特性除了可以应用真实世界的地理资料集,绘制

“个体经验”or”集体意识”? 推荐

“青年”这个群体,似乎在任何时代都作为“进步”、“新潮”、“先锋”的代名词。从新文化运动开始,青年一直被视为进取的力量。上世纪50年代推出的全国青年美展,80年代初期的伤痕、乡土美术,以及90年代注重对本土

开源云端开发平台Pulumi释出,主打多语言、多云端的开发体验

Pulumi创办人Joe△Duffy在博客宣布,其多开发语言与多云端环境的开源云端开发平台Pulumi正式上线,开发者可以在Pulumi上使用自己习惯的语言撰写云端运算程式,甚至还能不使用模板语言基础架构,Joe△Duffy提到,使用

I 热点 / Hot