集中式架构VS分布式架构,会是一场“伯罗奔尼撒战争”吗?
历史上的伯罗奔尼撒战争,以斯巴达一方的胜利收场,代价却是斯巴达不惜牺牲希腊的长远利益,选择和宿敌波斯联盟,最终在战争中摧毁了希腊文明的基础,整个希腊世界开始由盛转衰。
01
1964年,吉恩·阿姆达尔的团队耗费了50亿美金后,终于研制出了世界上第一台采用集成电路工艺的计算机IBM360。
因为IBM360的出现,吉恩·阿姆达尔被冠以商用大型机最早的“建筑师”、有史以来最伟大的计算机设计师等一连串的头衔,IBM也凭借比原子弹造价高2.5倍的投入,奠定了计算机帝国的半壁江山。
可如此高昂的研发成本也留下了一个棘手问题,只有国防、金融、交通、能源等国家支柱产业才能承担起大型机的费用,普通企业几乎无法染指。
好在有学者提出了“效用计算”的概念:家家户户都可以使用电灯,却不需要各家各户都配置并维护一台发电机,是否可以用同样的方式提供计算服务呢?
集中式架构的理念应运而生。
但到了20世纪80年代,计算机架构却也开始向两个方向发展:以X86为架构的面向个人的PC和以RISC为架构面向企业的UNIX服务器。在成本天平的制约下,不少企业改用小型机及PC来搭建系统架构,分布式架构的思想逐渐开始生根萌芽。
单从时间上看,有关分布式架构与集中式架构孰优孰劣的讨论已经持续了30年左右的时间,几乎等同于伯罗奔尼撒战争的时长,集中式架构和分布式架构分别扮演了雅典城邦和斯巴达的角色。
02
先来花一点时间回忆下,什么是集中式架构,以及什么是分布式架构?
集中式架构
集中式架构可以理解为将所需要的服务器资源集中在少数几台服务器上,可以理解为“中央集权式”的部署。而分布式架构的思想根基是根据业务功能、模块设计或者行政机构的不同,采用相对分散的中小型服务器。
集中式架构的“代表人物”就是采用Power架构的浪潮K1 Power系列高端服务器,最大特点在于部署结构简单、高效运营。
集中式系统往往基于底层性能卓越的服务器,终端或客户端机器仅仅负责数据的录入和输出,无需考虑如何对服务进行多个节点的部署,也就不用考虑多个节点之间的分布式协作问题。
然而由于历史上的种种原因,集中式架构多用于传统的银行、电信、交通、医疗等行业,操作系统、中间件、数据库等“基础软件”多为闭源商用系统,“稳定、安全”几乎是集中式架构的代名词。
分布式架构
分布式架构则被Google、Amazon、Facebook、阿里巴巴、腾讯等互联网公司所推崇,往往采用性价比更高的X86服务器、分布式数据库和大量的内存闪存,既没有控制整个系统的“主机”,也没有被控制的“从机”,分布式系统的所有节点都是对等的,并且可以在空间部署上进行随意分布,可以是不同的机房,甚至是不同的城市。
由于分布式架构下的单台服务器处理能力有限,数据库层和应用层主要依赖横向扩充,导致数据库服务器必须使用并行版数据库软件,应用系统必须基于并行数据访问方式进行开发,早期确实遇到了不少技术上的瓶颈。
不过从声量上来看,随着互联网巨头们影响力的与日俱增,分布式阵营在话语权上逐渐胜过集中式架构,以至于不少论坛上出现了往分布式架构一边倒的现象。
03
至于分布式架构是否优于集中式架构,仍然存在很大的争议。
正如许多人多认可的:集中式架构的优势在于可靠性、一致性和稳定性,缺点在于不适用于非结构化数据,特别是在支撑力有限的前提下,但对顶层设计的要求偏高;分布式架构长于弹性、扩展性和敏捷性,又在并发性、全局时钟、故障处理等方面存在先天不足。
只是这些优点和缺点的比较,多半还在站在技术的角度上,如果站在客户需求的立场上,或许可以得到不一样的答案。
譬如在可扩展性方面,分布式架构看似有着无可比拟的优势,但在实际应用中,鉴于并行数据库的软件使用难度和维度费用较高,横向扩充方式的实现相对困难许多。反倒是集中式架构由于单台服务器有着较好的可扩充能力,可采用增加硬件和配件的纵向方式提升处理能力,数据库和应用软件不需要进行调整,实现起来反而相对容易。
又譬如在投资成本方面,集中式架构的前期采购价格偏高,给人留下了高成本的印象,分布式架构则胜在成本优势。简单算一笔经济账的话,分布式架构的硬件采购成本偏低,与之对应的软件成本、运维成本乃至机房建设成本,都可能随着机器数量线性增长,到达某个临界点后,分布式架构的成本可能会高于集中式。
当然,分布式架构还有另一重被看好的因素,即安全性。封闭的体系和国外巨头垄断的市场现状,较于有自主知识产权的分布式架构,似乎在控制能力上稍显吃力。
而浪潮K1等国产高端服务器的出现,已然在某种程度上改变了这一局面,比如浪潮商用机器针对K1 Power服务器进行了全新的设计,从固件的开发、KUX操作系统到AIX、Linux的兼容,Power的整个生态系统正在从封闭走向开放。在这样的局面下,诸如集中式架构的安全疑问自然不攻自破。
或许应该抛弃一些固有的偏见,以客观的态度认识IT架构。
04
事实也是如此,分布式架构和集中式架构的讨论,正逐渐从商业话题转变为纯粹的技术性问题。或许在企业的立场上,集中式和分布式架构从来都不是非此即彼的选择,而是择其善者而选之。
诸如谷歌、阿里等面对大量非结构化数据的互联网巨头,自然成了分布式架构的重视拥趸,阿里甚至在2009年掀起了一场“去IOE”运动。但对于制造业、金融业等需要敏捷开发的行业,集中式架构的适用性要优于分布式架构,用一台机器集中解决IT问题,在空间成本、运营、管理、软件许可成本等方面优势的优势不无明显。
一个直观的案例,在全球银行百强的采购名单中,2019年依然有92%的银行购买了集中式架构的服务器。特别是多云、混合云等趋势下,客户的架构选择不再像以前那么单一,分布式和集中式架构的应用场景,不再只是行业间的差异,逐步细化到了应用场景上。
比如某银行在对高稳定性、高安全性有着苛刻的要求,并注重关键应用的秒级灾备能力,以及强调数据完整性的场景上,集中式架构仍然是最好的选择;在互联网金融等需要快速创新的业务中,流量上存在较大的弹性和不确定性,对可扩展性有着明显的刚需,选择分布式架构可以说是最正确的结果。
借用浪潮商用机器总经理胡雷钧的观点:“未来的选择一定是多样化的,每个用户都可以根据实际需求选择适合自己的方案。”毕竟客户的应用在高速变化,不同业务对安全性和灵活部署有着不同的偏好,只依靠一种架构注定是不现实的。
难题其实留给了大大小小的IT服务商们,客户需要的不是集中式与分布式架构之间的单项选择题,需要针对具体的场景制定相应的方案,分布式架构也好,集中式架构也罢,没有本质上的孰优孰劣,无非是适合什么样的场景而已。
也就不难给分布式架构和集中式架构长达30年的讨论做一个注脚,所有的技术专家都可以有自己的立场,可脱离了场景谈优劣,无异于“耍流氓”。
05
历史上的伯罗奔尼撒战争,以斯巴达一方的胜利收场,代价却是斯巴达不惜牺牲希腊的长远利益,选择和宿敌波斯联盟,最终在战争中摧毁了希腊文明的基础,整个希腊世界开始由盛转衰。
无论是集中式阵营,还是分布式阵营,无不是穿梭在商业游戏中的聪明人,注定不会只知对抗,不懂平衡,重蹈伯罗奔尼撒战争的覆辙。
一个比较乐观的消息是,几乎所有公司在选择架构时,务实和理性都战胜了主观上的情感偏好。
同时,集中式架构和分布式架构的“争夺”,越发像道家太极里的阴阳,一时的涨消并不重要,关键是二者处于一种和谐共生的平衡中。
比如浪潮在集中式架构的服务器上推出了分布式的存储解决方案,金融行业中也出现了分布式数据部署在集中式架构的尝试。
集中式与分布式不再是替代关系,而是融合关系。何况“软件定义”正逐渐成为IT领域的主旋律,大量的云计算软件和云应用可以无差别运行在不同的硬件架构上,也在加速分布式架构和集中式架构的融合。
#专栏作家#
Alter,微信公众号:Alter聊IT(ID:spnews),微信号imhefei ;人人都是产品经理专栏作家,互联网观察者。专注于移动互联网、智能硬件、电子商务等科技领域。独立的自媒体人,走在创业的路上。
本文原创发布于人人都是产品经理。未经许可,禁止转载。
题图来自Unsplash,基于CC0协议
写的不错,简单易懂