主动/主动多区域建筑背后的理论与动机

主动/主动多区域建筑背后的理论与动机

时间:2021-2-18 作者:admin

日期是2012年12月24日圣诞前夕。世界的最大视频流服务,Netflix经历了最糟糕的一次事件在公司历史上。这一事件是加拿大、美国和LATAM地区客户在电视设备上播放视频的中断。幸运的是,Netflix的应急人员的不懈努力,以及亚马逊弹性负载均衡器(Amazon ElasticLoad Balancer)服务遭受中断导致事故原因的AWS,都成功地在圣诞节前恢复了服务。如果你想想那一天在Netflix和AWS发生的事件,它将与所有这些事件相提并论。拯救圣诞节的电影我们都喜欢在一年中的那个时候看。

这个想法事件管理事件会发生这一普遍存在的事实。这不是一个未知的事实,也是亚马逊副总裁和首席技术官最不朽的。沃纳·沃格斯当他说“一切都会失败”时。因此,大家都知道事情会破裂,但问题仍然存在,那就是我们能做些什么来减轻这些不可避免的事件的影响吗?答案当然是肯定的。

Netflix引发的事件并不是一个“突然”的警钟,而是为了建立更有弹性的系统。事实上,Netflix已经意识到他们的系统可能存在的风险,并且正在试验一种更具弹性的体系结构。峡部尽管目的不同。然而,这一事件确实突出了这些工作的重要性,并提出了一个积极/活跃的多区域架构的必要性。

Active/Active体系结构的概念并不是一个新概念,实际上是可以的。追溯到70年代当数字数据库系统新引入公共领域时。现在,随着云供应商推出新的服务,他们正在为用户抽象的一个因素就是这样一个系统的设置。毕竟,移动到云的主要承诺之一是抽象这些类型的复杂性以及可靠性的承诺。今天,几乎所有的云供应商都可以构建有效的活动/活动多区域架构。

考虑到当今市场上云服务的能力和成熟程度,本文将不作为如何构建预期体系结构的教程。已经有各种各样的了工作坊 导轨和会谈在这件事上。事实上,弹性和高可用云架构的拥护者之一,阿德里安·霍恩斯比谁是AWS的首席技术布道者?系列博客引导读者了解AWS上的活动/活动多区域体系结构。

然而,缺少的,或至少已经失去的,是理论和对实施这种架构背后的动机的明确理解。随着云服务将大部分复杂性抽象化,很容易将此类架构的“如何”和“为什么”抛诸脑后。因此,本文旨在展示Active/Active多区域系统背后的分布式系统知识,并展示对该概念的基本理解如何使我们能够在考虑到供应商服务的情况下构建在任何云供应商之上。

回到基础

一切都失败了。是的,这是既定的,但这也是一个事实,一个人不需要屈服于在建设伟大的产品之旅。从广泛的角度来看,这一失败的主要原因是需要扩大服务规模并加快其发展速度。当扩展性和速度都增加时,失败的概率就会增加,这只是在这个领域观察到并通过学术验证的现象。文学.

正如Netflix和其他人所提到的,主动/主动架构概念提供了减轻不可避免的失败后果的措施。必须指出,这并没有降低失败的可能性,而是减少了失败的影响,而这本身就是实践所依据的概念的定义点。因此,可以看出,这个概念是建立在失败是不可避免的前提下的,因此它的目的是解决停机问题。

这里的目标是平均解决时间(MTTR)在影响使用者对服务可用性的感知方面,它是微不足道的。因此,不应该从受影响的服务的角度来衡量分辨率,而应该从消费者的角度来衡量。增加的低MTTR值可用性用户感知到的服务。

简而言之,Active/Active体系结构实现这一目标的方式是不断地了解可用的服务资源并相应地路由用户流量。因此,当某个资源或服务发生事故时,就应该构建总体架构,以便从其他可用资源或服务中为客户请求提供服务。现在,这当然是一个非常高层次的描述什么是积极/积极的概念。当深入研究如何实际执行这个想法时,我们会遇到诸如冗余、复制、无状态和最终一致性等概念。然而,主动/主动架构的创建者必须努力解决的问题可以分为两点:

  • 如何将客户流量路由到可用的服务或资源,并了解中断的服务或资源。
  • 如何确保每个可用的服务或资源与其他服务或资源一致,以便客户在突然被另一个服务或资源提供服务时不会遇到差异。

从现在起,这些不同的服务或资源将被称为节点。这是因为理论上一切都可能失败。不仅计算服务,而且资源(如数据存储、事件总线、路由服务和其他此类资源)都可能失败,应该用副本或其他类似的服务替换,从而减轻故障的打击。因此,为了简单起见,我们将所有这些组件称为节点。

冗余和请求路由

在解决流量路由问题之前,让我们重新考虑冗余的概念。在分布式系统的世界中,冗余可以被称为服务或资源的存在,正如我们所称的节点,这些节点对于实现系统的业务逻辑和功能来说并不是绝对必要的。这似乎有悖于直觉,违背了软件的内在原则,例如干,但是对于主动/主动系统的概念来说是至关重要的。这是因为,有了这些冗余节点,从客户的角度来看,整个系统就会变得更有抗毁能力。每当一个节点停机时,就会引入另一个节点进行服务。因此,是的,整个系统到处都是多余的资源,但所取得的成果是,随着系统的不断增加,系统的弹性也得到了很大的提高。容错.

因此,其理论是,客户流量进入一个冗余的节点网络,其中每个节点都可以访问一个数据存储。理论上,任何用户都可以连接到任何处理节点。当然,在现实世界中,存在着GDPR遵从性和应用本地化等问题。因此,用于云应用程序的处理节点集群可以在特定的区域中找到,但概念是相同的。两个或多个处理节点可用,其中许多节点是冗余的,可作为主节点遇到中断时的备用。

现在的问题是如何知道节点中断和流量路由。解决这个问题的方法有几种,其中一些比较流行的方法是在受到干扰的节点被击中时自动重路由请求。如何重新路由到另一个可用节点的基本概念是计算学术界一个有趣的研究领域。

业界支持的研发和学术机构都在不断探索更先进和最优的重路由算法。随着近年来机器学习的加入,这一领域实际上变得更加有趣。例如,电信巨头,爱立信,一直在探索图机学习在分布式网络中。当被中断的节点被击中时,这种创新也可以用于将流量最优地路由到下一个健康节点。

在业界,像aws这样的云供应商正在开发自己的一组服务来执行路由,例如亚马逊53号公路…Netflix利用这些服务,但也建立了自己的辅助技术,其中之一是祖尔尽管它主要用于边缘计算,但Netflix拥有进一步增加在其活动/主动架构中如何路由通信的功能。

总的来说,人们对路由流量的概念有很好的理解,并且正在注意到向最佳路由流量的进展。然而,这只是工作的一半。第二部分是保证这个冗余网络中的所有节点实际上是相同的。毕竟,对于客户来说,当主服务节点失败时,它们必须是不受阻碍地使用平台的经验。因此,提高无状态计算服务和数据复制的重要性。这两个概念都应该得到有效的执行,以确保跨网络的同步。

主动/主动同步

如前所述,在实现跨活动/活动体系结构的同步时,我们必须注意无状态节点和跨可用数据存储区的数据复制。前者是一个更容易解决的概念,因为后者在概念上遇到了明确的障碍。

无状态状态可以定义为服务可以处理传入请求而不知道以前的请求。很明显,这是为什么这是一个重要的块,一个积极的/主动的架构。除主服务节点之外的任何节点都可以在主节点失败时开始接收请求。无状态服务的思想既可以应用于数据存储,也可以应用于计算服务。

当考虑具有无状态计算服务的无状态体系结构时,这就是可以利用无服务器服务的地方。Serverless并不总是意味着无状态,但确实促进了这一概念。这是因为无服务器计算服务,例如拉姆达当被拆掉的时候不保留现有状态因此,在被利用时,我们必须始终注意无国籍性质。这个想法不是新的,而且有很多。探索关于如何将无服务器应用于无状态体系结构。

现在,当考虑数据存储中的无国籍状态时,这并不总是能够实现的。只有这么多才能实现无国籍状态,最终,当考虑到系统内的实际数据时,在活动/主动架构中的各种数据存储之间需要某种形式的同步。这就是数据复制的概念所在,但是我们需要解决一个固有的障碍,那就是CAP定理。

在理想世界中,我们希望在我们的体系结构中看到的是高一致性、分区容忍度和高可用性。高一致性是指所有数据存储都具有相同的精确数据,因此可以为系统中的所有节点提供服务。高可用性意味着每个客户端都会得到响应,而不管每个节点和服务于该节点的数据存储的状态如何。分区公差可以定义为系统的一个部分的故障对系统的另一个部分没有任何影响,并且请求被处理而不受任何干扰。

根据盖定理,上述三项条件中,只有两项条件在任何时候都能得到满足。这个定理最初是由加州大学伯克利分校的系统教授确定的,埃里克·布鲁尔,在90年代末和2000年。后来在一份报告中证实了这一点。研究论文发表于ACM Sigact新闻,由赛斯·吉尔伯特和南希·林奇2002年。

因此,当无法满足理想状态时,当活动/活动分布式体系结构倾向于最终一致性时,最终一致性和严格一致性的公理就会出现。对最终一致性和严格一致性的解释最好在此堆栈中捕获。StackOverflow回覆克里斯·肖恩.

Active/Active体系结构倾向于最终一致性的原因是在不影响系统可用性和分区容忍度的情况下,跨数据存储复制数据的开销。当考虑活动/活动背后的动机时,可用性和分区容忍度都具有更高的优先级。唉,正如科技公司以前所证明的那样,没有银弹这样的东西。

结语

随着我们进一步突破软件开发的界限,在不可避免的竞争中,我们必须重新思考我们的整个开发方法和实践,从头到尾。在DevOps的保护伞下,在保持产品稳定性的同时需要更快的速度,这就需要像Active/Active这样的体系结构,尽管在实现过程中会出现困难。幸运的是,云供应商已经承担了抽象化他们的即插即用模型服务下的繁重部分的任务。然而,尽管这些责任已经委托给了云供应商,正如Netflix和其他人所了解的那样,了解这个概念背后的理论可以起到很大的作用。

福州软件开发 福州小程序开发 福州APP开发

版权所有:https://www.eraycloud.com 转载请注明出处