欢迎来到天天文库
浏览记录
ID:41707314
大小:116.71 KB
页数:3页
时间:2019-08-30
《数据中心操作系统的曙光》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、数据中心操作系统的曙光在过去的I•年,从搜索引擎到社交网络再到SaaS,虚拟化已经成为软件的每一项主要趋势背示的关键驱动力。事实上,如果没有虚拟化所带来的服务器利用率的提升和和关成木的节约,那么,我们所使用的人多数的应用程序以及我们今天所知道的云计算均是不可能实现的。但现在,新的云架构正在重塑整个数据屮心。据我们所知,虚拟化己然无法再跟上这一趋势。随着数据屮心转型,虚拟化背麻的核心:即把一台人型的、昂贵的服务器划分为多台虚拟机理念已然冇了不同的含义。相反,并非分配个别服务器的资源,大量的服务器被
2、合并为一个仓库规模的“电脑”(虽然述是虚拟的!),以运行高度分布式的应用程序。侮一家IT企业和开发商都将受到这些变化的影响,尤其是随着规模化扩展需求的增加,以及应用程序每天都在变得越來越复杂。那么,对于那些己经投资于当前模式虚拟化的企业而言,要如何理解这一转变呢?其背后的推动因素是什么?下一步的发展方向又是如何呢?过去和现在的虚拟化也许适应业界现如今正在发生的变化的最好的方法便是走在变化Z前一一成为引导这些转型变化的领头羊。这样的故事案例在大型主机时代就己经开始了。早在20世纪60和70年代,I
3、BM公司需要一种方法以便能够在新一代的硬件上支持其I口版木的软件,并将其强人的计算机从在一个时间段内只能运行一款程序的批处理系统变为一个能够支持多个川户和应川程序的互动式系统。彼时,IBM的工程师们提出了一个“虚拟机”的概念,作为能够让多款应用程序和用户能够共享服务器资源和基本时间系统的一种方式,同时还能够保持兼容性。这种方法无疑在彼时大大稳固了IBM作为主机计算市场领导者的霸主地位。而到了21世纪初,一个新的问题应运而生了。企业所血对•的是充满了昂贵的服务器的数据中心,但这些服务器的利用率则非
4、常低。此外,由于摩尔定律,处理器时钟速度每18个刀翻了一番,而处理器已然发展到了多核处理器——但软件堆栈无法有效地利用新的处理器和所有这些内核。解决方案再次采用了一种虚拟化的形式。VMware公司彼时还仍是一•家來白斯坦福大学的初创型企业,通过允许企业用户将他们的多款应用程序打包到一台单一的服务器中,从而使得企业川户能够极大地提高服务器的利川率。通过兼容所冇的软件(包括III的和新的),VMware还Z间桥接弥补了软件栈和现代多核处理器Z间的差距。最后,VMware使得Windows和Linux
5、虚拟机得以在同一台物理主机上运行一一而无需在同一数据中心内分配单独的物理服务器集群。因此,虚拟化在每一家企业的数据中心建立了束缚。但到了2000年代示期,我们又迎来了一次全新的技术革命,诸如像谷歌和Facebook这样的公司开始成长起來。面临着为数十亿用户提供实时服务的前所未有的挑战,这些互联网巨头们很快意识到,他们需要建立定制化的数据中心,将硬件和软件栈聚集到数千台服务器,并収代更大型,更昂贵的单片系统。这些更小更便宜的服务器缺乏计算能力,而复杂的软件将这些服务器整合到一起建立一个人规模分布式
6、计算基础设施。数据屮心的形状发生了改变。其可能是由商品化的部件组成,但这所导致的结果仍然是使得相关多使用最先进技术的传统数据中心更加强大。Linux成为这些超大规模数据中心操作系统的首选,并在DevOps领域成为管理开发和运营的一种方式,虚拟化也就失去了其核心价值主张z—:在同一物理服务器上同时运行不同的“客户”操作系统的功能(即Linux和Windows)o微服务作为主要驱动力但是,推动虚拟化聚集的最冇趣的变化是在应用程序方面,其通过一个新的软件设计模式:被称为微服务(Microservice
7、s)架构。不是单一应用程序,现在我们的分布式应用程序是由许多小的,独立的进程组成,通过语言无关(language-agnostic)的拣议(HTTP/REST,AMQP)交流。这些服务是小而高度解耦的,他们专注于执行一个小的任务。基于一些原因,微服务迅速成为设计模式的选择。首先,微服务冇快速的周期时间。旧的软件开发模式每隔好儿个刀才发布一款应用程序,这对互联网公司而言太慢了,他们需要在一个星期内多次部署新版本——甚至需要在单独的一天内就响应参与指标或类似的事件°而山于其高度变化的成本单一应用程序
8、显然不适合这种灵活頌捷性。其次,微服务允许应用程序选择纟R件的规模比例。一款应用程序对于不同组建的比例需求通常是不同的,而微服务计互联网公司能够按照其实际需求进行相应的功能缩放。另一方面,较旧的应用程序是极其低效的。通常情况下,唯一的办法就是克隆整个应用程序。第三,微服务支持平台无关(platform.agnostic)的开发。由于微服务通过跨语言无关的协议通信,一款应用程序可以在不同的平台运行(Java,PHP和Ruby,Node,Go,Erlang等)而没有任何问题,从而得以受益于微服务上每
此文档下载收益归作者所有