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