`

分布式系统发展史

阅读更多

分布式系统(确切地说应该是分布式计算机系统)从它诞生到现在已经过去了很长的时间。在很久以前,一台电脑一次只能完成一项特定的任务。如果我们需要同时完成多项任务,则需要多台计算机并行运行。但是,并行运行并不足以构建真正的分布式系统,因为它需要一种机制来在不同计算机或者那些运行在计算机上的程序之间进行通信。这种在多台计算机之间交换/共享数据的需求催生了面向消息通信的想法,即两台计算机使用包含了数据的消息来共享数据。文件共享、数据库共享等其他机制当时还没有出现。

 

接着,我们进入了多任务操作系统和个人电脑的时代。利用Windows、Unix、Linux等操作系统,我们可以在同一台计算机上运行多个任务。这使得分布式系统开发人员能够在一台或者几台通过消息传递连接的计算机内构建和运行整个分布式系统。这催生了面向服务的架构(SOA),其中每个分布式系统可以通过一组集成在一台计算机或多台计算机上运行的服务来构建。我们通过WSDL(用于SOAP协议)或WADL(用于REST协议)等语言适当地定义服务接口。接着,服务的使用者将利用这些接口来进行客户端的实现。

 

随着计算能力和存储价格的降低,世界各地的组织都开始使用分布式系统和基于SOA的企业IT系统。但是,一旦服务或系统的数量增加,这些服务之间的点到点连接就不再是可扩展和可维护的了。这催生了集中式“服务总线”概念的产生。服务总线通过类似集线器的架构将所有系统连接在一起。这个组件被称为ESB(企业服务总线)。它作为一个“语言”翻译者,就像一个中间人在帮助一群使用不同“语言”但希望相互通信的人进行沟通。在企业应用中,“语言”代表着在通信时不同系统的消息传递协议和消息格式。

 

这种模式工作得很好,即使在今天也能正常工作。随着万维网的普及和模型的简化,基于REST的通信比基于SOAP的通信模型变得更加流行。这促进了基于应用程序编程接口(API)的REST模型通信的发展。由于REST模型的简洁特性,我们需要在标准REST API实现之上实现安全(身份验证和授权)、缓存、流控和监控等各种类型的功能。但我们并不想独立地在每个API上实现这些功能,而是需要一个公共组件将这些功能应用于这些API之上。这样的需求催生了API管理平台的发展。现在,它已经成为了任何分布式系统的核心功能之一。

 

随后,我们见证了分布式系统大爆炸的时代。Facebook、Google、Amazon、Netflix、LinkedIn、Twitter等互联网公司变得异常庞大。他们开始想要构建跨越多个地理区域和多个数据中心的分布式系统。这样的需求使他们的技术焦点转向了一切开始的地方。工程师们开始思考单台计算机和单个程序的概念。他们不再把一台计算机当作一台计算机来看,而在同一台计算机内创建多台虚拟计算机。这催生了关于虚拟机的想法,即同一台计算机可以充当多台计算机并且全部并行运行。尽管这是一个还不错的主意,但在宿主计算机的资源利用方面,这并不是最好的选择。运行多个操作系统需要更多的资源,但在同一个操作系统里运行多个程序并不需要这些资源。

这些问题最终催生了关于容器技术的想法。容器只使用一个宿主操作系统(Linux)的内核,就可以运行多个程序并分别依赖于相互独立的运行时。这个概念在Linux操作系统上已经有一段时间了。随着基于容器技术的应用程序部署的普及,它变得更加流行并且有了很多改进和提升。容器可以像虚拟机一样工作,却不需要多一个操作系统的开销。您可以将应用程序和所有相关的依赖项放入容器镜像中。它便可以被放在任何可以运行容器的宿主操作系统中运行。Docker和Rocket是两个热门的容器构建平台。

 

 

容器技术为Netflix、LinkedIn和Twitter等组织提供了底层框架,用于构建他们要求苛刻的永远在线的多区域、多数据中心应用平台。但这并不意味着利用容器技术没有任何难点。基于容器的部署带来的轻量特性让跨多个容器的平台维护和编排变得非常复杂。随着微服务架构(MSA)的出现,单体式应用程序被分成更小块的微服务。这些微服务能够完成整个服务里的某一个特定功能并部署在容器中(在大多数情况下都可以)。这给分布式系统生态系统带来了一系列新的需求。要让系统最终保持一致,并且彼此之间没有太多复杂的通信。

 

 

这些新的需求最终帮助工程师们构建了一个容器编排系统。该系统可用于维护更大规模的容器部署的一致性。毋庸置疑的是,这个领域的顶尖技术来自Google。因为它们的规模非常大。他们构建了名为“Kubernetes”(又名k8s)的容器编排平台,并成为大规模容器编排需求的事实标准。k8s让工程师可以:

  • 在大型集群中运行容器
  • 将数据中心视为一台计算机
  • 控制服务之间的通信(在容器上运行)
  • 动态伸缩与为多个服务进行负载均衡

Kubernetes和Docker让应用程序员的生活更加轻松。他们不用再考虑他们的应用在不同的环境(操作系统、开发环境、测试环境、生产环境等)下的不同表现。他构建的容器镜像在所有环境中运行表现几乎完全相同,因为所有依赖项都被打包到镜像中了。

 

 

但是,尽管我们有了容器和编排框架,我们仍然需要一个管理这些服务器的团队。这意味着数据中心需要使用像Docker和Kubernetes这样的技术进行管理,以确保它对于应用程序来说就像一个单台计算机一样。如果不是你自己来做这些事情,而是别人来为你管理这部分工作,这正是serverless架构所带来的便利。您的服务器将由第三方云提供商(如Amazon(Lambda),Microsoft(Azure Functions)或Google(Cloud Functions))进行管理。现在,分布式系统将由应用程序员进行编程,而基础设施管理将由云提供商完成。这是分布式系统发展的最新状态,并且会不断地发展下去。  

 

查看英文原文:https://medium.com/@chanakaudaya/the-evolution-of-distributed-systems-fec4d35beffd

http://www.infoq.com/cn/articles/the-evolution-of-distributed-systems

 

分享到:
评论

相关推荐

    分布式系统发展史.docx

    分布式系统发展史.docx

    分布式文件系统的历史与现状.

    分布式文件系统的历史与现状.详细具体哦……………………………………

    分布式系统一致性发展史(二)丨两阶段和三阶段提交1

    介绍TwoGeneralsParadox问题.Two Generals Paradox在1975年被提出[SomeTrade-offs in the Desig

    分布式控制系统概论.ppt

    分布式控制系统概论ppt,提供“分布式控制系统概论”免费资料下载,主要包括分布式控制系统及其发展、集中控制系统、分散控制系统、分布式控制系统、过程控制系统的发展史、分布式控制系统的发展趋势 等内容,可供...

    互联网发展史.pptx

    什么是架构 单机时代 集群时代 分布式时代 互联网发展史全文共34页,当前为第3页。 互联网早期,产品团队初创之时,资源有限,人力不足,为了快速开发一个产品,或上线一个网站,单机往往是一个不错的选择,此时会...

    架构解密-从分布式到微服务

    本书一开始并没有提及分布式的枯燥理论,而是讲述了一段精彩的IT发展史,其中重点讲述了大型机、UNIX小机器的没落与X86平台的崛起,从而巧妙地引出CPU、内存、网络、存储的分布式演进过程,这恰恰是分布式软件系统...

    Lustre文件系统曲折而坚韧的发展史1

    自2005年6月以来,它持续在超级计算机世界排名前十中占有至少一半的席位,前排名前100的超级计算机中,至少60个超级计算机使用Lustre,其中包括在2014

    架构解密 从分布式到微服务 ,Leader-us著

    本书一开始并没有提及分布式的枯燥理论,而是讲述了一段精彩的IT发展史,其中重点讲述了大型机、UNIX小机器的没落与X86平台的崛起,从而巧妙地引出CPU、内存、网络、存储的分布式演进过程,这恰恰是分布式软件系统...

    架构解密从分布式到微服务(Leaderus著)

    《架构解密:从分布式到微服务》一开始并没有提及分布式的枯燥理论,而是讲述了一段精彩的IT发展史,其中重点讲述了大型机、UNIX小机器的没落与X86平台的崛起,从而巧妙地引出CPU、内存、网络、存储的分布式演进过程...

    分布式数据库数据一致性的原理、与技术实现方案

    可用性(Availability)和一致性(Consistency)是分布式系统的基本问题,先有著名的CAP理论定义过分布式环境下二者不可兼得的关系,又有神秘的Paxos协议号称是史上最简单的分布式系统一致性算法并获得图灵奖,再有...

    操作系统原理及应用(LINUX).pdf

    全书共9章,主要内容包括操作系统的基本概念、功能、操作系统的发展史及Linux操作系统概述,进程的概念、进程描述、进程控制、进程的同步与互斥、进程通信及线程,作业调度及进程调度、死锁的概念与产生原因以及解决...

    单片机数据传输接口技术研究

    随着单片机技术的不断发展,特别是网络技术在测控领域的广泛应用,由单片机构成的多机网络测控系统已...单片机的应用已不仅仅局限于传统意义上的自动监测或控制,而形成了向以网络为核心的分布式多点系统发展的趋势。

    IBM System Storage DS8000系列

    这一旗舰IBM磁盘系统可以支持混合的随机与序列 I/O工作负载以及交互式与批处理应用程序,而无论其是在某个当今流行分布式服务器平台上还是在大型机上运行,从而简化您的存储环境。借助同时管理所有这些工作负载的...

    精选云原生资料合集(12份ppt)dr.zip

    科普-云原生的发展史和工程技术栈 实践-阿里巴巴大数据云原生探索与实践 实践-当当云新-代Serverless平台 Knative的应用实践 实践-基于云原生构建DevOps研发效能平台 实践-基于云原生容器化的DevOps流水线在AI领域的...

    不一样的双11技术:阿里巴巴经济体云原生实践.pdf_k8s_实战_云原生_阿里巴巴_cloud_

    阿里巴巴经济体云化是阿里技术发展史上继之前的分布式架构、异地多活后的又一轮巨大的架构升级, 这次架构升级需要把我们从 Cloud Hosting 演进到 Cloud Native,Cloud Native 作为技术圈最火 热的名词,不同的人的...

    人工智能概述.ppt

    人工智能的发展史 人工智能研究的不同学派及其争论 人工智能的研究与应用领域 组合调度问题、模式识别、机器视觉、博弈、人工神经网络、知识发现和数据挖掘、智能决策支持系统 人工智能研究的不同学派及其争论 人工...

    西工大计算机操作系统复习(问题+回答)60页!一万字!纯手打!史上最全!

    ♣ 新发展:个人计算机、实时系统、网络与分布式系统、移动计算…… o 什么叫中断 ♣ 中断:指CPU在收到外部中断信号后,停止原来工作,转去处理该中断事件,完毕后回到原来断点继续工作。 ♣ 通道:用于控制I/O设备...

    【重磅】史上最全的阿里云分享的云原生技术学习资料合集(120份).zip

    分布式系统知识体系大图 架构图思考路径 Go指南大图 三、大咖演讲 阿里巴巴 DevOps 的三架马车:基础设施、运维编排、监控 阿里巴巴 K8s 超大规模实践经验 阿里巴巴 Kubernetes 应用管理实践中的经验与教训 阿里...

    人工智能及应用概述.doc

    人工智能及应用概述 作者:王明月 张德慧 魏铭 来源:《科学与财富》2018年第18期 摘 要:作为世界三大尖端技术之一, 人工智能( Artificial Intelligent)自1956年诞生之日起, 就成为科学发展史上一颗令人瞩目...

Global site tag (gtag.js) - Google Analytics