ebay增强可用性的4个原则(1)

简介: ebay增强可用性的4个原则(1)

你可能听说过英国《卫报》。有可能从诸如爱德华·斯诺登泄密事件或者2011年与罗伯特·默多克的国际新闻相关的电话窃听丑闻中听说过它。你所不知道的是它的在线和技术团队获得过数个奖项,被许多圈子视为英国最好的产品团队。


2008年的情况有些奇怪,《卫报》运营在一套企业级软件系统上,这套复杂的代码又分成数个服务,这些服务与一个单体数据库耦合在一起。系统运行了相当长的一段时间并且平安无事,但是随着互联网的增长,你永远都不知道未来会发生什么事情。如果我们推出一篇确实重磅的文章,流量就可能达到一天内以前峰值的一倍以上。问题是当有些部分出现问题时,所有的其他部分都开始出故障。这好像整个产品共享一个巨大的熔丝——当熔丝熔断时,整个系统都会因此失败。

“坦尼娅·科德里向其eBay的前同事们求助,作为增长咨询公司AKF Partners公司,他们现在帮助那些需要这方面指导的客户。在AKF的帮助下,我们开始重新设计网站,增加故障隔离区或泳道。基本上,相当于把熔丝盒中的单根熔丝变成了多根。在任何时候,如果网站的一部分出现问题,只有那个部分会出故障。这种故障隔离办法让软件和数据库子系统部署在独立的泳道里,每个泳道都完全独立于其他的泳道。网站的不同内容区域由不同的泳道提供服务。如果一个泳道失败,比如天气版面,我们可以继续提供时效性强的新闻。更近一步,我们可以在每个不同泳道的可用性方面投入不同的时间和精力。像新闻之类的泳道可以有比其他重要性低的(如天气)泳道显著不同的冗余解决方案。在过去的解决方案中,每个部分都有同样的可用性以及相同的成本;现在我们可以让新闻有更高的可用性而不必大幅度提高成本。


格兰特说道,“回想2008年,你会看到责任编辑总在关注网站是否能应对大流量新闻。而今,刚刚有1400万唯一的读者阅读了2015年11月恐怖分子袭击巴黎的报道。现在的责任编辑再也不顾虑在线系统,他们知道该系统有这个能力。”


“受到这种关注的并不仅仅是网站。当在互联网上使用一款产品时,要依靠一定数量的工具以及独特的基础设施。”格兰特总结说,“现在,我们把相同的概念应用到监控和代码发布等地方。每个关键业务都应该有自己的泳道,这样某个工具的故障就不会导致其他工具和监控的故障”。


对故障隔离和故障控制的需求并不局限于格兰特与《卫报》。根据我们的经验,大多数的技术团队都非常擅长,并且非常专注于交付能正常工作的系统。此外,大多数工程师都明白不可能研发出完美无缺的解决方案,因此,不可能构建永远不会故障的系统。即使考虑到了这一点,几乎没有工程师愿意花费大量时间来勾勒和圈定任何给定故障的“爆炸半径”。


在我们的业务中,可用性和可扩展性具有同等重要性。可用性不高的产品确实不需要扩展,当需求来临时不能扩展的网站也不会是高可用的。因为系统故障无法避免,所以我们不得不花时间来控制故障对系统的影响。本章提供了几种限制故障影响的方法,总之,减少故障的频率,提高产品的整体可用性。


微信图片_20220123182919.jpg

规则1——用“泳道”隔离故障

内容:在设计中实现故障隔离区或泳道。

场景:为可扩展性开始拆分持久层(例如数据库)或服务时。

用法:沿Y或Z轴拆分持久层和服务,禁止故障隔离的服务和数据间同步通信或访问。

原因:提高可用性和可扩展性。减少发现和解决故障的时间。缩短上市时间和成本。

要点:故障隔离包括根除故障隔离域间的同步请求,限制异步调用和处理同步调用失败,以及避免泳道之间的服务和数据共享。

 

在拆分服务和数据方面的术语丰富而混乱,而且有时候相互矛盾。不同组织经常使用一些词,如豆荚(pod)、池(pool)、集群(cluster)和分片(shard)。在同一组织内这些术语经常交替使用加剧了这种困惑。在某个场景,团队可以使用分片来确定服务和数据的分组,而在另一场景下,它仅意味着在数据库中分割数据。鉴于现有术语的混淆和差异,在实践中我们创造了泳道一词,尝试打造故障隔离的重要概念。一些客户开始采用这个词来表示为实现故障隔离而在生产中按照服务或客户拆分,它最重要的贡献是在设计领域。表9-1是常用术语的列表,它包括对这些术语最普通的描述以及何时及如何在实践中交替使用的说明。


微信图片_20220123182939.jpg


在我们看来,这些术语中最重要的区别是大多数都集中在分工或事务上,但只有一个聚焦在控制故障传播上。而池、分片、集群和豆荚指的是如何在生产环境中实施或如何拆分或扩展客户或者服务,游道是围绕设立故障隔离域提出的架构概念。故障隔离域是这样的一个域,当物理或逻辑服务因故障无法正常工作时,无论该故障是响应缓慢还是根本无法响应,唯一受到影响的是那些在故障域中的服务。泳道通过故障域把分片和豆荚的概念拓展到了服务的前门——数据中心的入口。在极端情况下,它意味着按照功能提供独立的网络、应用和数据库服务器(或叫故障隔离区)。在本质上,泳道旨在提高可扩展性和可用性,而不仅仅是一个可以扩展事务处理的机制。


我们借用CSMA/CD(带有冲突检测的载波侦听多路存取,通常称为以太网)中的概念,其中故障隔离域相当于冲突域。在全双工交换机之前,为了抵消碰撞的影响,以太网段控制碰撞以确保所有连接的系统感觉不到影响。我们觉得用“泳道”这个术语来描述故障隔离是一个非常好的比喻,泳道是在游泳池中设置的隔离线,有助于游泳选手在游泳过程中避免相互干扰。与此类似,不同组别的客户或者功能之间存在隔离带,不允许跨越不同组别进行同步事务处理,有助于确保一条泳道上的故障不会对其他泳道上的用户操作产生不利的影响。


image.png

相关文章
|
图形学
Unity 不同Scene场景转换(简)
本文提供了Unity中实现场景转换的基本方法,包括编写传送脚本、创建传送门和玩家对象,并通过触发器实现玩家触碰传送门时切换到另一个场景的功能。
Unity 不同Scene场景转换(简)
|
负载均衡 前端开发 Cloud Native
API 网关选型及包含 BFF 的架构设计
在更通用的场景下我们会使用 NGINX 这样的软件做前置,用来处理SLB负载均衡过来的流量,作用是反向代理、集群负载均衡、转发、日志收集等功能。
API 网关选型及包含 BFF 的架构设计
|
8月前
|
自然语言处理 PyTorch 算法框架/工具
大模型太慢?别急着上 GPU 堆钱:Python + ONNX Runtime 优化推理性能实战指南
大模型太慢?别急着上 GPU 堆钱:Python + ONNX Runtime 优化推理性能实战指南
1078 10
大模型太慢?别急着上 GPU 堆钱:Python + ONNX Runtime 优化推理性能实战指南
|
5月前
|
数据采集 人工智能 监控
2026OpenClaw龙虾替代品推荐 八款实测工具盘点 适配多场景自动化办公效率
2026年八款实测OpenClaw龙虾替代工具盘点:AionClaw(全能办公)、OpenLobster(轻量挂机)、BrowseAgent Pro(网页批量)、DesktopFlow Enterprise(企业内网)、MiniTask AI(低配简易)、ContentFlow AI(内容创作)、EcomAgent Suite(电商运营)、DevAgent Studio(程序开发),覆盖多场景,助用户高效选型。(239字)
|
5月前
|
人工智能 运维 数据挖掘
2026企业有哪些agent应用场景?六大核心场景+三大避坑指南
企业正迈入以数据消费者为中心的“智能化时代”,超六成企业面临“数据有余、洞察不足”困境。数据分析Agent通过“获取-分析-策略-报告”全流程自动化,提供智能问数、自动报告、归因诊断、报表搭建、知识问答、决策推演六大场景,助力企业从“人找数”迈向“数找人”,释放全员数据生产力。(239字)
|
7月前
|
机器学习/深度学习 JSON 自然语言处理
PAI-Rec 特征工程全解析:统计特征、实时特征、序列特征与 FG 特征算子
PAI-Rec是阿里云智能推荐的特征工程解决方案,支持离线统计、实时及序列特征自动衍生,并通过Feature Generator(17种内置算子)保障离线/在线特征一致性,大幅降低开发与维护成本。
841 9
|
8月前
|
安全 编译器 C语言
C语言「NULL 真假分身」:90% 写错的空指针陷阱
在C语言中,`NULL`与`0`本质不同:前者是空指针常量(如`(void*)0`),后者是整数。变参函数中混用会导致崩溃;跨平台时`NULL`赋整型可能截断。安全规范:只含`<stddef.h>`后使用,指针判空用`p == NULL`,禁赋整型。
5963 6
|
11月前
|
消息中间件 NoSQL Java
SpringCloud
本课程基于黑马程序员2025版SpringCloud实战教学,聚焦高频面试与实际应用,涵盖微服务、RabbitMQ、Redis高级、ElasticSearch等核心内容,结合项目实战与AI模块优化,助力掌握企业级开发技能。资料详尽,尊重原创,侵权必究。
|
12月前
|
机器学习/深度学习 传感器 数据采集
Python函数式编程入门:map、filter与lambda的正确用法
本文深入浅出地介绍了Python函数式编程核心工具:map、filter与lambda。通过真实案例,展示如何用函数式思维重构冗长循环,实现简洁高效的数据处理流水线,并对比列表推导式、探讨性能与最佳实践,助你提升代码质量与编程思维。
590 1
|
11月前
|
新零售 人工智能 算法
咖啡机器人技术深度解析与主流商业解决方案评测
咖啡机器人正从营销工具蜕变为商业基础设施,广泛应用于高端商务、交通枢纽等场景。依托高精度控制、视觉感知与人机协作技术,实现24小时稳定出品。猎户星空智咖大师以AI算法与仿生设计平衡性能与成本,ABB YuMi展现极致工艺,越疆、节卡、川崎则各具开放性、灵活性与稳定性优势,推动服务机器人迈向智能化新阶段。(238字)

热门文章

最新文章