我们正处于数据爆炸的时期,这一点没有人会怀疑。网络用户规模越来越大,由此产生的访问数据也呈指数级增长。最典型的是,每年的大型购物节、流量明星作弊、春晚抢红包等特殊活动,都像服务器系统性能崩溃。《极限挑战》,总会拉出某些互联网公司来给大众看。成功了,就向他们顶礼膜拜,失败了,就集体抱怨。如何在不过度增加服务器成本的情况下,在极度繁忙的情况下流畅、安全地提供服务?要解决这个问题,传统的服务器架构有些力不从心。分布式技术作为专门针对海量数据场景的解决方案,已经成为一剂“特效药”。除了基本的“疗效”外,更关键的是技术本身也为未来埋下了“彩蛋”。为什么分布式技术“上位”?如果你关注互联网公司的技术动向,你会发现大规模或超大规模分布式应用已经成为主流,而随着云计算逐渐渗透到大众生活中,中小型分布式应用成为主流。也广泛出现在各个领域。最直接的表现就是现在的开发工程师要找工作,“熟悉分布式系统”“合理应用常见的分布式技术”都是普遍的要求。但对于非专业人士来说,恐怕会有很多疑问,分布式技术为什么会上台,它是如何工作的,它比传统系统有什么优势,它又是如何影响我们的“冲浪”体验的?简单来说,所谓分布式(distributed)就是将不同的服务模块部署在多台不同的服务器上,然后通过远程调用的方式协同工作,共同对外提供服务。对于用户来说,它就像一台为用户服务的电脑。我们知道,第一代的服务器架构往往比较简单,应用程序、数据库、文件、代码等所有资源都放在一台服务器上,是单机架构。随着企业业务量的增加,单台服务器难以满足数据处理的需求,只需“复制粘贴”单机,即可收获数倍处理能力的“服务器集群”。但是集群扩容很容易达到物理上限。最直接的反映就是无论增加多少节点,整个集群的性能似乎并没有太大的提升。这时候就需要分布式系统了。在实际业务中,分布式系统可以将不同的业务功能映射成独立的子系统。例如,对于电商平台,用户服务、商品服务、门店管理、数据分析等不同的数据处理项目可以部署在不同的计算机集群上。这些独立的集群可能在不同的机房,甚至在不同的城市,一些大型数据中心也分布在不同的国家和地区。它们通过RPC消息传递进行通信和协调,然后为用户提供服务。通过几种架构的运行逻辑,不难发现分布式系统至少具有三个特点:第一,能够满足高并发、低延迟的网络服务需求。面对超大规模的访问请求,很容易造成网页打开缓慢、游戏卡顿、卡顿,甚至直接导致应用宕机。此时需要多台服务器高效协作,处理尽可能多的任务,以达到相应流量的吞吐量。这就需要企业在不同地区部署多台服务器,以避免全球用户可能带来的网络拥塞和延迟问题。换句话说,分布式系统是全球网络服务发展的基本前提。此外,分布式系统的可扩展性可以大大降低企业的网络成本。由于分布式系统中的多台计算机可以在空间上随机分布,机器的性能也可以独立运行并随时变化,这使得多个独立的服务可以有针对性地升级,而不是“大锅饭”传统建筑下的大米”。例如商城大促期间,只需要针对与订单层级直接相关的商品系统、订单系统等节点,其他服务模块保持原有层级,可有效降低网络使用成本.一些基础模块还可以复用到其他新业务,无需重复开发,进一步降低了企业的业务风险。可以说,在各行业竞争进入精益期并愈演愈烈的情况下,分布式系统无疑是竞争力的先决条件。更关键的一点是分布式系统的高安全性。由于本系统中计算机之间没有主从之分,也就是说所有的计算机节点都是平等的,分布式系统在对外服务时会对数据和服务进行复制处理,从而直接有效地防止了密钥的丢失企业数据。无法找回等“悲剧”成为网络防灾的重要保障。正是由于这些技术特点,毫不夸张地说,计算机系统正在经历从集中式到分布式的全面转型。分布式云计算:受益者和拥护者如果说分布式系统代表了网络服务的发展方向,那么云计算的社会化可能是其迅速普及的重要推动力。今天,我们可以在很多云服务商的技术架构中看到很多分布式技术,比如分布式存储、分布式数据库、分布式消息中间件等等。某种程度上,分布式系统在资源池化、硬件容错、性能提升等方面的技术优势,赋予了云计算真正触及服务市场的可能。这种影响主要体现在三个关键环节:一是分布式存储。云服务作为智能输出载体,是数据存储和分析不可或缺的能力之一。传统的数据存储模型通常存在容量限制或空间限制。云需要支撑海量数据的存储。恰恰只有分布式的解决方案,比如ApacheHadoopHDFS。二是分布式计算。资源池的规模越大,对资源利用效率即计算效率的要求就越高。传统集群结构采用的并行计算往往耗时较长,而分布式计算会将任务拆分成很多子任务,分发到多台计算机上。这种高效的计算方式也有效地提升了云服务。整体表现。三是分布式管理。我们知道,云服务的核心价值之一就是帮助客户随时获取IT资源和应用,按需付费。这意味着云供应商的应用程序和服务也需要基于可扩展性、灵活性和可靠性进行设计。因此,一个能够划分和复用不同服务模块的分布式框架是非常必要的。当然,除了作为受益者与分布式技术不断发生化学反应外,云服务商也成为企业部署分布式系统的最佳选择。大多数企业之所以需要依赖云厂商的力量,核心原因在于分布式系统的复杂性,大大增加了网络运维和调用的难度。对于大中型企业来说,当越来越多的服务和业务被拆分部署在不同的网络计算单元上时,服务之间的依赖关系也变得复杂,难以管理和配置。有时连写系统的架构师都无法完整描述应用之间的关系,分不清应用启动的顺序,从而导致扩展、调用、线路故障等一系列问题。此外,敏捷开发模式要求工程师不断更新程序以满足网络对新业务和新功能的需求。紧跟IT行业前沿技术,及时引入最新算法模型,修正安全漏洞,完成数千台服务器的迭代升级,对于企业来说无疑是一项极其庞大且低效的工作。在此背景下,引入云服务模式,借助虚拟服务器操作系统,即SaaS技术,部署在云服务商的统一运行环境中,大大减少了需要的硬件数量维护,从而使分布式系统管理更容易。消耗了企业大量的时间和精力。从这个角度看,云计算和分布式技术捆绑在一起,两种技术方案相辅相成,实现了新数据规模背景下效益比最佳的网络基础设施。进入“硬件虚拟化”的精彩时代,我们感受到了云计算与分布式技术结合的可能性。这才是像我这样的普通人真正关心的。目前,分布式系统与云计算的结合首先会带来服务能力的共享。云计算能力结合虚拟化技术,可以将众多业务端模型抽象出来的固定软件统一起来,然后使用分布式系统进行管理和输出。很多原本需要开发相应应用的功能,比如AI计算,通过云端虚拟化后,就可以成为共享资源。例如,Nvidia和VMWare推出的针对VMWareCloudonAWS的GPU加速服务,使AWS客户可以将各种VMwarevSphere应用程序和容器无缝迁移到云端,无需任何更改,从而实现AI计算分析。此外,还可以将终端能力虚拟化到云端,再通过分布式技术发布到其他硬件上。比如智能音箱的语音功能、智能手机的视频功能、无人机的实时拍摄功能、笔记本电脑的多功能操作等。调用可以实现终端间不同能力的灵活组装。比如可以通过车载喇叭接听手机电话,可以通过视频通话实时直播无人机画面,手机和电脑无缝传输……对于用户来说,没有必要浪费精力思考某个产品的性能,只看当前场景需要什么样的硬件能力,就可以发出调用指令。同时,分布式系统的分工协作调用可以最大限度地降低硬件设备间通信的功耗。从针对不同场景设计不同硬件,到主动适配不同硬件适配不同场景,AIoT智能互联后可能面临的跨终端体验碎片化问题正在被分布式技术解决。同时,分布式系统也使得不同机器之间的安全通信成为可能,从而进一步推动了万物互联的到来。我们知道,如果攻击者利用漏洞获得了整个主机的访问权限,那么他就可以在很长一段时间内攻击主机上运行的所有其他设备,从而危及整个系统的安全。由于这种类型的攻击很难被标准的IDS/IPS检测到,因此越来越流行。试想一下,如果在车联网、工业物联网等场景下发生迁移攻击,或者黑客通过空调/咖啡机访问家中任意联网设备,这将产生怎样可怕的连锁反应?原因?因此,许多云服务商和硬件厂商开始将分布式技术引入到安全服务中。一方面,分布式系统中各个网络节点之间的通信需要经过验证和认可,可以有效地保护和控制复杂的设备网络,实现恶意软件控制前的检测和隔离;同时,分布式网络模式的“复制”也可以保证数据在每台设备中都被复制存储,避免因黑客攻击造成无法挽回的损失。今天,我们看到,在人工智能、5G、云计算等基础设施的共同部署下,智能万物互联展现出越来越清晰的未来图景。如何做到可靠、可用、可信,需要借助分布式技术,迈出实用化的关键一步。
