在过去几年中,“软件定义”在数据中心业界已然经成为了另一大被广泛的大肆炒作的术语,甚至使得其意义已经变得模糊了。然而,软件定义的基础设施却恰恰是数据中心目前正在重塑的方式的关键组成部分,以满足现代IT和应用程序的不断变化的需求,毕竟,现如今的IT和应用程序更具分布性和动态性。
当前,企业和数据中心运营商们所面临的绊脚石之一就是IT基础架构越来越复杂化,需要进行部署和配置。而应用程序通常又要依赖于一系列其他的服务和资源才能正常运行。
IDC欧洲数据中心基础架构和客户端设备咨询经理Andy Buss表示说:“解决这个问题需要一定程度的自动化。任何正在进行数字化转型的企业都将需要部署自动化,因为自动化的部署能够将企业的IT政策真正贯彻到日常的IT行动中。”他还补充说,“从研发到运营的转变就是尽可能实现IT基础架构的轻松部署。”
这意味着,IT基础设施必须能够通过借助使用软件来进行重新配置或重新利用,而不是让工程师们进入数据中心本身,并在物理设备上重新配置基础架构。
许多著名的大型互联网企业,如谷歌和亚马逊网络服务(AWS)已经在广泛使用这种方法了,因为这是运营公共云服务平台的基本要求,其中服务可能会不断开始、规模化扩展,最终在终止时再次释放资源。
换句话说,“软件定义”是指与其正在运行的硬件分离的基础架构和资源,并且能够在软件的控制下(通常使用应用程序编程接口(API))进行动态配置和重新配置。
在IT基础设施中,头一波获得软件定义的处理的组成部分是服务器,其是通过虚拟化技术实现的。在云中运行的虚拟机实际上是一台软件定义的服务器,因为其已经从底层物理硬件中分离出来,并且在发生硬件故障(或者出于其他原因,如负载平衡)时,可以从一台物理服务器迁移到另一台物理服务器。
过去几年来,容器集装箱技术的兴起,该技术比虚拟机所需要的资源要少。Docker等平台也将更多的重点放在应用程序的分发和管理方面,作为集合化的集装箱功能。
鉴于云计算的发展已经成为数据中心日益重要的一部分,数据中心将越来越多的转变为软件定义的基础设施,并随之变得越来越灵活敏捷。
当被不同的供应商使用时,“软件定义”的这一术语可能意味着不同的东西,而这一术语并不总是有着广泛认可的标准化定义。例如,软件定义的存储可以包括存储虚拟化,例如EMC公司的ViPR平台,使客户能够使用多个混合的阵列(包括来自多家供应商的阵列)来构建其存储基础设施,并从单个控制台进行管理。
但是,软件定义的存储更普遍的是指诸如在商品化服务器节点群集之间运行的开源GlusterFS等软件,并使用这些存储来创建可扩展的存储池。这种模式往往在超融合的基础架构(HCI)系统、高性能计算(HPC)集群以及像Google和Facebook这样的大型互联网公司中被看到,因为它易于配置和扩展。
软件定义的存储仅仅只是与其所运行的硬件水平相当,可能不如专用的企业存储阵列那么可靠。这一假设前提是:冗余和其他功能(如数据复制)将在软件堆栈中的其他位置处理。
软件定义的网络类似地涵盖了许多不同的方法,旨在使网络基础设施更加动态化,并且易于根据需要进行配置。
一种方法是分离控制面板,或从转发面板管理部分网络(通常是围绕着网络上实际路由数据包的交换机硬件)。这里的理念是:使用诸如OpenFlow等工具集中控制网络流量,OpenFlow是旨在为其提供标准机制的协议,该协议由许多交换机供应商(如Dell、HPE和Cisco)支持。
另一种方法是虚拟化网络,允许使用物理网络迁移数据来创建逻辑网络,但不一定有相同的IP地址方案,并可能在他们各自的服务和安全质量策略方面存在差异。
后一种方法以VMware的NSX和OpenStack平台中的Neutron模块为代表,对于数据中心支持多租户,特别是托管公共云服务是至关重要的。
虚拟化网络不仅可以创建新的网络连接,而无需物理地移动跳接电缆(patch cable),但在VMware的NSX的情况下,其也可以更好地监控网络流量,因为交换机和路由被集成到了hypervisor 管理程序,分布在整个基础设施中。
这些软件定义的计算、存储和网络并不是单独存在的,而是经常相互依赖的。将它们整合在一起是最终的目的,以便实现英特尔等企业称之为的“软件定义的数据中心”(SDDC)。
借助SDDC,整个数据中心基础设施应该可以在软件的控制下进行配置,从而更容易实现自动化,以便IT人员们可以将更少的时间花费在日常的简单IT运维方面,而这也就意味着第四大难题是管理和orchestration业务流程安排。
Buss表示说:“没有自动化和业务流程安排的软件定义是毫无意义的。他引用了诸如Microsoft的System Center Operations Manager(SCOM)和VMware的vCloud Director之类的工具,但又补充说,这些工具尚未达到与大型云服务提供商所使用的工具的相同程度的成熟度。
同样不太成熟,但却获得服务提供商的支持的是OpenStack,OpenStack是开放的且非专有的,因此独立于任何一家单一的供应商,并且提供一组可用于插入其他软件和服务的API。
总的来说,SDDC方法已经过了一个转折拐点,并且越来越重要,根据Buss介绍说:“公共云服务表明这是可行的,当我们转向一个多云的世界时,会引发一个由云所推动的,在现有云服务之间提供兼容性的需要的大量思考。”
HPE的Synergy基础设施平台
惠普企业公司(HPE)的Synergy基础设施平台是该公司于今年1月份正式出货的一款基础设施平台。该平台即是将高端设计的基础架构设计为软件定义的一个例子,尽管HPE并没有将其称为“可组合的基础设施架构”。
根据该公司的说法,Synergy背后的主要意图是“由代码定义”,这意味着其被设计为几乎完全由指定的特定应用程序和服务所需资源的模板以及如何配置这些模板所驱动。
“这是一种无状态的计算机,旨在成为可重构的资源池。”Buss说。它可以被视为一组存储、网络、计算和内存资源,可以一起创建一个虚拟计算机,用于任何任务的处理。
Synergy的关键部分是,HPE更新的OneView管理系统可以配置和管理裸机,因此可以轻松地支持在专用硬件上运行的数据库集群,同时提供在容器中运行的虚拟服务器和应用程序。
值得注意的是,Synergy可以有效地将HPE所提供的特殊硬件和软件组合在一起。虽然客户可以从一系列计算和存储节点中选择以满足其需求,但它们不能与Synergy部署中的第三方套件混合使用。
开源的SDDC
OpenStack是众所周知的开源软件项目,广泛应用于云部署项目。然而,其优势在于它实际上是一个旨在尽可能开放和可扩展的管理框架,使其成为运行IT基础架构的通用“集成引擎”。
这可以从转向采用OpenStack的电信运营商的数量中看出,OpenStack将作为这些电信运营商们基础设施现代化的关键,允许他们用在同一工作中的商品服务器上运行的软件来代替昂贵的专业网络硬件,这称为网络功能虚拟化(NFV)。
其原因之一是OpenStack的灵活性;其现在围绕核心服务(包括计算、存储和网络模块)进行组织,而其他则是可选的,可根据用户的要求提供服务,包括遥测、业务流程甚至数据库服务。
OpenStack的计算模块Nova不与特定的管理程序绑定。默认使用Linux KVM,还支持来自VMware和Microsoft的,以及诸如LXC的容器技术。同样,Neutron网络和Cinder存储模块也插入了各种其他产品和平台,如VMware Integrated OpenStack,分别在VMware的NSX和VSAN上使用。
如果OpenStack有弱点的话,那么可以说就存在于诸如自动化和业务流程安排方面,其并不像一些专有的云服务和数据中心平台那么成熟。然而,由于其开放的API,开发人员和第三方工具可以填补这方面的空白。
这些API意味着用户可以在编程控制下重新配置其基础架构,这是SDDC的一个基本方面。
OpenStack在技术行业拥有广泛的支持者,其中包括英特尔,该公司自2011年以来一直在内部使用该软件来管理他们自己的基础设施,以及为项目提供代码。
容器集装箱技术在云中获得长足发展
虽然虚拟机已经为硬件利用率带来了奇迹 ,但目前正在出现一种新的工作负载方法,可以使数据中心更有效地使用其资源。
Kubernetes和Docker是在软件容器内部署应用程序自动化的最流行的系统示例。他们将应用程序及其所有依赖项集成到所有依赖于同一个Linux内核的个别环境中,这意味着它们需要比虚拟机更少的开销。
应用程序容器完全独立于底层基础设施,可以轻松地跨服务器、数据中心和云平台迁移。同时,开发、测试和生产环境之间的无缝过渡使得DevOps不可或缺。最后,由于他们的策略驱动的性质和与主机的隔离,使得包装在容器中的应用程序从根本上变得更加安全。
集装箱化的应用程序是迈向微服务架构的重要一步,其中各种服务单独打包,并使用业务流程工具链接在一起。 这种方法对于在云环境中运行的大量软件项目尤其有用,因为其允许应用程序内的各个服务根据需求进行扩展或缩小。 其还使开发人员团队能够在软件上工作,而不必知道其他团队正在做什么。
Kubernetes最初是在Google开发的,而Docker则是由Solomon Hykes在同名的Docker Inc(以前称为dotCloud)创建的。 今天,这两个都是开源项目,拥有大量拥趸,这意味着他们将继续快速发展,以应对早期采用者的需求。
本文转自d1net(转载)