为私有云或者混合云做计划非常复杂,其中一个关键元素经常被忽视:平台软件——运行在虚拟机上的操作系统和软件,或者平台即服务(PaaS)为基础的形式。云平台软件将应用连接到云基础架构,以及你希望运行的框架上,然后就可以轻松集成和管理最终的产品。
IT轻盈
为了选择平台软件,一个公司必须关注其在虚拟化上的投资,其数据库的选择、网络流量问题以及应用安全和管理问题。
企业对于虚拟化的投入
选择云平台软件时,首要考虑的是企业已经部署的虚拟化程度。考虑云计算最简单的方式就作为虚拟化的扩展来看待,因此如果已经使用了虚拟化,现有软件将会是选择云堆栈和平台软件的一大因素。
如果企业拥有虚拟化的现在投资,可以通过回顾最近运行的机器镜像开始进行平台软件评估。在云端,对于所有软件而言,最简单的就是标准化平台软件集,或者至少少量标准配置。回顾企业拥有什么以及选择最小数量的平台配置,在没有过度开支或者许可证成本的前提下,可以运行一切。
如果你的企业并没有广泛使用虚拟化,云平台软件的作用会更为关键,但是也更难以选择。大多数公司在操作系统和中间件上只有受限的策略控制,因此他们需要做一份服务器和应用的详细目录,确定他们运行着什么。正如之前的内容,目标就是鉴定尽可能少的数量的标准平台,因此可以识别出“不合常规”的配置,这些配置很难支持且昂贵,因为很少用到。需要寻求其他途径来运行。
数据库服务选择
企业检索云平台软件下一件最重要的问题就是数据库。几乎每一个应用都需要某种形式的数据库服务,有两种选择可用:作为云平台的一部分部署数据库服务,或者使用云提供商的数据库即服务(DBaaS)产品。
部署企业自己的数据库服务***的好处在于这项战略几乎肯定是可以跨多个云提供商迁移的,你可以更换提供商或者甚至使用数个不同的提供商。缺点在于提前有很多额外的工作,需要集成数据库服务到平台中,而且甚至还要做更多的一些工作,来保持软件和维护版本或者版本变更保持更新。Cassandra、CouchDB、Hadoop和MongoDB都是比较流行的安装数据库工具的平台,很多(尤其是Hadoop和MongoDB)通常可以从云提供商那里得到DBaaS服务。
数据库服务如果是中间件的一部分,可能既部署在内部相同的机器镜像上,也是平台或者独立的机器镜像的一部分。在前一种案例中,集成应用更加简单,但是很难在多种云应用之间共享一个数据库。使用独立的机器镜像,数据库本质上是外部应用组件,同样的,SQL Server数据库通常在传统数据中心或者托管部署中,将组件分为Web服务器和应用。这意味着你必须承担额外的VM托管费用,以及通过网络查询和响应的费用,还有流量以及访问费用也需要支付。
网络流量问题
网络流量是云端平台软件的下一个问题。一些云应用会产生显著的网络流量,并不是所有的服务器平台都为网络性能做了优化。在虚拟网络应用中更是如此,这种情况下网络I/O可能通过hypervisor处理的中介。很多云应用现在包括一个或者更多的托管路由或者交换机,软件定义网络的形式,以及以往的经验显示这些应用可能在没有加强网络I/O 的形式下运行的过于慢,影响运行在相同的服务器上不同的VM上的其他应用的性能。
英特尔的开放网络平台和6WIND的6WINDGate技术旨在让虚拟化和云服务器在网络上更加高效。这种加强必须添加到网络平台上,而且如果你计划使用SDN或者虚拟交换机/路由技术,你也可能需要增加平台软件支持你选择厂商。网络优化软件可能无法兼容每一个OS,或者甚至是每一个服务器,因此检查兼容性很重要。
应用安全和管理
***的云平台软件的问题和应用安全和管理相关。管理工具和安全架构可以作为代理软件集成在OS中提供,可以在云端安装和高效的使用,只要它们不指望查看或者控制实际的服务器。这一点对于云计算很重要,甚至是私有云计算,主要为了避免安全和管理工具期望硬件访问,因为那些虚拟机共享一个单一服务器的应用存在风险竞争。
任何形式的硬件依赖问题都是在云平台战略中***检查的一项。平台是用来部署云的,应该仅同虚拟机资源交互,并不是实际的资源,或者不兼容公有云服务,而且创造了不一致或者甚至是私有云中的不正确结果。这种风险对于那些正在将非虚拟化内部IT转移到云端的企业最为高,因为他们还没有面对过虚拟资源和实际服务器和存储之间的区别。