设计横向扩展方案

所谓横向扩大,就是经由过程复礼服务或数据库来疏散事务负载,而纵向扩大即购置更年夜的硬件。前者可以替代后者。实用于任何估计会快速增加的体系、办事和数据库。应用AKF扩大立方肯定情况的准确拆分办法。平日,横向拆分(克隆)是最简略的办法。

只须要复制数据和功效就可以快速扩大事务。为胜利做好筹划,把体系设计为可以或许横向扩大的。不要让本身陷入如斯困境:要进行纵向扩大时,却发明已经没钱购置更快更年夜的体系了。

当你发明体系中的客户和事务在快速增加,而体系却不克不及扩大到多个办事器上时,你会怎么做?幻想情形下,应当研讨你有哪些选择。是购置更年夜的办事器,照样消费更多的编程时光使软件能在多个办事器上运行。让运用法式或数据库可以或许在多个办事器上运行,就是所谓的横向扩大。持续让体系在更年夜的硬件上运行,则称为纵向扩大。在剖析进程中,经由过程ROI盘算,结论可能会是购置更年夜的硬件比消费技巧资本来修正运用法式更廉价。固然我们支撑得出这种结论的剖析办法,但对于超高速成长的公司和产物来说,这个结论可能是毛病的。原因在于它可能没有斟酌历久成本。把具有两个64位双核处置器的办事器换成具有四个处置器的办事器,其成本与从中获得的新增盘算资本是成比例的(约2倍)。当我们持续购置具有更多处置器的年夜型办事器时,谬误就涌现了。盘算处置才能的成本曲线是条幂次定律曲线,个中成本的增加与更年夜的办事器供给的处置才能的增加不再成比例l假设你的公司在连续地胜利与增加,那么你购置更年夜体系的成本就会跟着曲线一向增加。固然你可能已经为技巧更新做了预算,然则仍可能会不得不消高得离谱的价钱去购置新体系。而假如你的体系是可以或许横向扩大的,那么购置的体系就会廉价得多。整体说来,你总的成本支出会年夜年夜增长。当然,跟着代码库的增年夜以及体系庞杂度的增长,用于解决问题的编程资本的成本也会增长,但这种增加是线性的。是以,在本章开首的剖析应当得出的结论是:尽早花时光修正代码进行横向扩大。

7个设置装备摆设(内存和硬盘等)几乎完整雷同的办事器的成本,独一分歧的是处置器的数目和每个处置器的核数目。图中采取的是一家年夜型办事器供给商的在线报价和设置装备摆设。无能否认,两个双核处置器的盘算资本与一个四核处置器的盘算资本并不相等,但从成本上比较,它们的成本异常接近。请留意快速增加的曲线。

依据我们为上百个客户办事的经验,这种剖析发生的结论几乎都是修正代码或数据库以进行横向扩大。这就是为f什么AKFPartners认定纵向扩大老是掉败的原因地点。最终你总会碰到两种情形之一,即成本不合算了,或者没有更年夜型的硬件装备可用了。例如,我们有过如许一位客户,在把本身的顾客群散布到分歧体系之后,他们依然有才能一向扩大数据库的硬件。最后,当采取了硬件供给商所供给的6台最年夜型的办事器后,到达了极限。每台如许的办事器须要消费300多万美金,硬件的整体消费接近2000万。因为顾客数目还在增加,所以他们照样要竭力扩大,于是他们赞成了对数据库进行横向扩大的项目。他们选择用4台较小的办事器调换每1台年夜型的办事器。每台小办事器的成本是35万美金。最终,他们不仅胜利实现了顾客增加所需的扩大,还勤俭了快要100万美金的成本。后来,这家公司一向在应用这些旧体系,直到最后这些体系过时,才采取低成本、更小的新体系。

年夜多半体系从最初设计时就可以或许在多台办事器上运行,或者可以或许被很轻易地改为具有这种功效。对于年夜多半SaaS运用来说,只要把代码复制到多个运用办事器上,然后把运用办事器放在负载平衡器上,就可以实现这一点。运用办事器之间不须要互相通讯,哪个办事器处置哪个要求是由负载平衡器决议的。假如某个运用须要记载状况,那么可以用负载平衡器的会话cookie保护客户阅读器和特定的运用办事器之间的联系关系关系。一旦客户提议了最初要求,那么响应当要求的办事器就会一向处置该客户的要求,直到会话停止。横向扩大数据库平日须要更多的筹划和编程工作,但就像本章开首说明的,这种投人是值得的。我们介绍了扩大运用法式或数据库的三种办法。它们在AKF扩大立方上被标识为X轴、Y轴和Z轴,分离对应于复制(克隆)拆分分歧的器械(办事)和拆分邻近的器械(客户)

“等等!”你可能会年夜喊,“Intel的开创人之一戈登?摩尔在1965年预言过,集成电路上的晶体管数量,每两年就会翻一番!”不错,近50年来,摩尔定律一向是对的,这点令人赞叹。问题是,这个“定律”并不是永恒的真谛,戈登·摩尔在2005年的访谈中也认可了这一点。此外,假如你的公司真是一个超高速成长的网站扶植公司,那么你的客户数或营业量不会每两年只翻一番,很可能每个季度就翻一番。假如根据摩尔定律扩大你的体系,那么无论是扩大运用法式照样扩大数据库,都可能会导致掉败。

相關文章: