网站故障隔离的好处
故障隔离的架构会给平台或产物带来许多利益。个中显著的利益是进步了可用性和可扩大性,而不明品的利益是削减了上市时光和开辟成本。公司会发明,采取故障隔离的架构,回退发会更轻易,而当站点、平台或产物“上线”后,再推出新功效也会加倍轻易。
故障隔离的架构会给平台或产物的可用性带来很年夜的利益。当一个故障隔离城或泳道在平台或体系架构级别出了故障,你掉去的只是驻留在这些泳道的办事器中的功效、地舆地位或客户群。当然,前提是你的泳道架构设计准确,其他泳道不会挪用这个出问题的泳道。在这个例子中,岂论哪个泳道出故障都不会给可用性带来什么利益,但影响却有年夜小之分,所以泳道的架构就显得异常主要。为了解释这一点, 让我们来比较一下支撑高可用性的泳道架构和架构设计不良的泳道架构。
我们在介绍各个主题时,都采取了虚构的AllScale公司为例,此次也不破例。AllScale公司的团队决议把创立泳道的概念运用到新开辟的客户关系治理体系(CRM)和已有的人力资本治理体系(HRM)上。这两个体系都是SaaS (软件即办事)平台。CTO约翰尼.菲克斯和他的团队从无到有地开辟了CRM平台,这个平台支撑公司层面上的多租户,也就是说,多个公司可以驻留在一个物理数据库中,如许可以削减整体成本,更有用地应用本钱。AllScale公司的架构师还熟悉到了历久扩大的需求,因为它们的客户是赓续增加的。是以,他们决议,对于新开辟的CRM解决计划和已有的HRM解决计划,都以客户为界限,划分运用和数据库。约翰尼和AllScale公司的团队决议了,不再须要划分的最小的客户分块是公司内的一个部分。AllScale公 司的架构师还肯定了要在美国规模内,运行多个运动的数据中间。
AllScale公司的架构师选择了泳道,或者说故障隔离的架构。他们年夜致按一个异常 年夜的公司部分配以几个较小的公司的方法分派数据中间,这些客户所需的所有办事都来自于这个数据中间。数据中间的选址尽量接近数据中间所办事的公司的企业总部。任何一个组件产生了故障,那么只有驻留在这个数据中间的客户会在产生停机或办事中止的进程中在数据中间之间进行通讯。是以,一旦一个数据中间中从数据库到界限路由器的任何办事都不克不及受到影响。
局城网分段和多个数据库,就可以把多个部分或一组公司放到数据中间的一个故障隔离域中。 这 Aslal公司的架构师进一步发明了一种应用泳道在数据中间中进行扩大的办法。 借助虚拟样地,办事也不克不及跨故障隔离城通讯。如许的话,除了共享的收集装备外(如路由器和界限路由 样还可以对内部路由器后的体系和办事进行故障隔离,包含局城网、数据库、运用办事器等。同期,它许可公司把eca饭本的产物宣布给互相隔离的客户分段,从而提高下降了风险)。其他任何装备故障都邑被隔离在数据中间的一一个区或城中。在实现时,这种设计超越了预故障隔离的架构,而不是以客户为界限。在这种情形下,该团队可能会为登录办事创立一个泳道,另一种办法是依照办事来划分故际隔离城。让我们假讨AlSeal的团队以办事为界限创立了为更新发卖线索集的办事创立一个泳道,为查看发卖线索的办事创立一个泳道,为制造发卖线索权衡指标的报表的办事创立一个泳道。这种办法的问题在于,一旦个中任何一个办事出了故障,都可能给其他办事带来意想不到的影响。例如,在上述例子中,一旦登录办事产生故障,导致体系无法拜访,那么尽管其他办事仍然可用,但可以想见,体系的用量会逐渐降低,因为新的登录操作都不被接收了。如许要与平台进行交互的客户在登录掉败后会100%受到影响。
这并不是说,绝对不该该采取这种面向办事的隔离办法。正好相反,这种办法可以很好地隔离代码库、经由过程隔离来缩短上市时光以及经由过程缓存特定办事的动作来削减扩大需求。然而,一旦你的办事要依附于其他办事,无论是以前面提到的同步方法,照样要依照时光序列,一个办事要在另一个办事之前挪用,那么你都使本身陷人了故障高发的地步。这时你可以经由过程确保先产生的办事具有更高的可用性和冗余度,以下降它们出故障的风险,或者也可以进行多次划分,进一步隔离故障。
假如要采取前一种办法,即让先产生的办事具有更高的可用性,常用的办法是极年夜地增长产能。此外,对每个公司进行功效减负),也会有助于隔离某些问题。对于新的登录代码,强迫性地让少量用户采取特定的登录池办事,可以削减新代码带给AllScale公司的风险。在办事器上树立衔接限制,可以在出于某些原因造成办事变慢时,仍然使某些客户可以或许准确登录体系。
设计为可以或许禁用的,我们称之为功效减负。有了功效减负的设计,就可以把产物中的某个功效禁用失落,从而不会影响到,其他功效。公司路动能减负投贵的常见原因是,限制新的功效宣布对可用性和 口可扩大性的负面影响。功效减负实行适合,就可以或许在修复问题代码成体系时,让一个新宣布的版本保存在临盆情况中,需无需回退全部宣布。平日可以经由过程一个软开关让有问题的代码成体系离线,在激发不测行动的问题获得解决后,再让它上线。
采取这种办法,AlSal公同既依照办事进行了划分,又以公司为基本依照客户进行 我们偏向于采取后一种办法,即进行网站设计的多次划分来隔离故障,因为它同时解决了可扩大性和可离,然后又在这个办事泳道中,采取泳道进行了面向客户的划分。此外,AlSale公司还可以交 了划分。起首ASCal公司以面向技巧的划分办法为重要划分办法,经由过程登录办事泳道实现了隔离划分的次序,起首为组公司创立一 个客户豆荚 (或泳道),然后在豆荚中,用泳道来划分办事,个中一一种办事可所以登录办事。固然年夜多半公司以为面向客户的划分办法更天然,但无论哪种办法都是可行的。划分类型,个中将介绍AKF立方以及若何把它运用到办事、数据库和存储构造上。