模块化计算机的黎明

科技2020-11-05 15:10:19
导读最后,当最后一个模块在失重状态下经过鲍曼时,哈尔不复存在了。早在60年代,当库布里克和阿瑟·C·克拉克为他们的

最后,当最后一个模块在失重状态下经过鲍曼时,哈尔不复存在了。

早在60年代,当库布里克和阿瑟·C·克拉克为他们的史诗电影写剧本时,计算机还处于早期的大型机时代。高度分布式、紧密连接的数据中心(像HAL)的想法,是科幻小说里才有的。现在,将近50年过去了,我们生活在这样一个世界里,我们的许多计算资源都在像那台虚构的计算机那样的系统中,我们开始思考接下来会发生什么。

面料和池

与任何使用云基础设施(私有或公共)的人交谈,他们不会谈论服务器、交换机或磁盘阵列。相反,这是一个由织物和数据池组成的世界,在这里,商品硬件是超大规模、高性价比的数据中心的基础,而新的开放硬件正在进一步改变基础经济学。

在3月份的Open Compute Project峰会上,供应商展示了用于存储和网络的基于x86的硬件,旨在为软件定义的数据中心提供平台——基于Facebook、微软和其他公司用作公共云基础的工作。这种方法使得dat中心的建造成本更低,管理起来也更容易。同样的底层技术也存在于硬件背后,比如微软基于戴尔的云平台系统(CPS),它为您提供了与azt一致的服务,即使不是在一个盒子里,也至少在一个架子或四个架子里。

软件定义的数据中心是交付云计算好处的关键,即使在您自己的前提下也是如此。自动化基础设施和虚拟化其他一切使得以一种传统数据中心架构无法实现的方式管理和控制资源成为可能。我们得到的不是单独的服务器,而是允许我们访问计算、存储和网络池的工具,这些工具可以配置为支持我们的应用程序和服务。

我们不再需要知道我们使用的是什么服务器,我们只需要知道我们使用的是四个中等能力的内核,每个内核有四个线程和几个gb的内存。如果我们使用IaaS,也许我们需要知道我们在那组资源上部署了一个特定的操作系统,但是在许多情况下,我们甚至不需要知道那么多,只需要知道我们部署了预先配置的容器或代码。

我们的未来

下一步是什么呢?随着网络变得越来越快,我们将看到一个新的架构出现,在这个架构中,我们将能够共享内存并将其与计算资源一起分配。最初,它将是一个机架级,在那里高速连接将允许我们把内存模块放在我们的计算机旁边。今天的瘦服务器会更瘦,处理器阵列的内存只够引导和加载主机操作系统。

同时,应用程序清单将变得更加复杂,定义代码的内存需求和扩展选项。旧的内存边界将会消失,但是我们所获得的将会被新的延迟问题所平衡,这将要求开发人员更多地考虑如何在分布式内存池中管理一致性和并发性。当然,最终,操作系统和框架将为我们处理这些问题,但这是一个改变,这将意味着非常不同的编程模型。

像容器化这样的技术是面向数据中心的理想伙伴,因为它们将应用程序抽象添加到硬件和软件的分离中。通过允许将应用程序封装在隔离的容器中(并易于复制),可以将应用程序分配给适当的资源,使用容器清单作为描述所需资源的工具。有了快速网络连接容器api,无论你的代码在数据中心的什么地方运行都没有关系;它所需要的只是内存、存储和CPU。

云计算:迁移到IaaS

作为服务提供商的基础设施为企业提供了一个非常有说服力的理由,让它们停止运行自己的数据中心,而只是按需购买服务器容量,并根据需要进行伸缩。这是我们对IaaS战略和最佳实践的深入研究

阅读更多

微软的CPS,以及作为开放计算项目的一部分而开发的硬件,是交付下一代数据中心的合乎逻辑的下一步,将超大规模的云硬件引入您自己的机架。

使用下一代管理工具,调出数据中心就像将电源和网络插入机架一样简单。硬件将是自描述的,“metal-as-a-service”工具将根据需要交付主机操作系统,并将服务器资源添加到数据总线级工具(如Kubernetes或Mesos)。

认为微

我们用于构建新应用程序的微服务技术也是下一代管理环境的一部分。它们让我们将服务分解成逻辑组件,然后将它们分布在商品硬件上——同时利用下一代可编程设备。像微软的Azure负载均衡器这样的SDN工具实际上是一个分布式控制平面,它将功能委托给基于商品硬件的交换机,在网络硬件中编程fpga来直接管理数据包。

不管你喜不喜欢,驱动大型云服务提供商的硬件和软件最终都会进入我们的数据中心。他们正在进行的投资是改变服务器供应商正在生产的硬件,无论是白盒OEM设备还是来自惠普和戴尔等公司的品牌服务器。这是一件好事,因为我们已经可以利用改进的NIC硬件来加速我们的数据中心,以及操作系统级的存储虚拟化和分层。

随着技术不断地从云端迁移到机架上,我们正在快速地进入这样一个世界:即使是最小的数据中心也可以由软件定义,并由模块化硬件构建。这意味着我们需要为这些变化做好准备,以及这些变化对我们编写和管理应用程序的方式意味着什么:构建同样模块化的代码。


免责声明:本文由用户上传,如有侵权请联系删除!