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