鉴于对公有云的种种担心, 很多有实力的企业都想自己构建基础设施云计算平台以供自己使用。 但很多人对如何规划云计算平台有着很大的疑惑,因为这个平台包含了很多的技术, 涵盖很多领域, 对于云平台的规划和设计者,该关注哪些重要的方面呢? 我们有幸参与过几个公有云平台的设计和实施, 下面分享一下我们的一点心得, 权作参考。
首先在设计理念上, 要从以前的依靠硬件来保证可靠性的理念转到针对失败的设计理念上去。 所谓针对失败,就是假定硬件是不可靠的,通过架构上和技术上的设计来保障业务的高可用和高可靠性。 例如就存储来说, 传统的方式是通过RAID等硬件冗余机制来实现数据的可靠性, 但在对象存储里却是通过多份拷贝的分布式机制来实现数据的高可靠性;在计算能力上, 传统的方式是通过高可靠的硬件来保障可用时间的, 但在云计算的世界里, 保障业务高可用的是通过完善的监控机制和快速的实例重启来实现的。 这个理念对于云计算非常重要, 因为通过它可以摆脱云计算平台对硬件可靠性的依赖, 让大量使用廉价的硬件且能够获得高可用、高可靠成为可能, 从而能够降低整体的成本。
其次是把应用改造成松耦合的结构, 例如SOA。 这让您的应用可以摆脱对操作系统、对硬件等的依赖, 让您能够*地、快速地在异构平台上部署和使用, 增强了您组织的敏捷性,可以让您的应用在规模上能够做到伸缩自如,并可以让您可以迅速地以迭代的方式来发布您的应用。 这里有个很重要的概念就是API(Application Programming Interface), 使用API来统一数据的格式,实现和另一个模块的沟通、调用资源等操作, 也是松耦合架构的重要特点。 目前比较流行的是RESTful的API接口,
例如JSON和XML格式的API接口规范。
再次是考虑把串行工作转化为并行工作。 我们都知道, 企业里产生的数据越来越多了, 这对于企业数据处理能力的要求也是越来越高了, 那么怎么来提升处理能力呢? 传统的数据一般是串行处理的, 而串行工作的性能主要取决于硬件处理能力的高低, 这样的话还是摆脱不了硬件的限制, 解决之道就是把多数串行工作转化成并行工作,这样让单位处理量变小, 使普通的设备也能够快速地处理数据。 这可可通过使用诸如Hadoop等工具来实现。
还有就是使用多种存储方案来储存不同的数据。 例如使用块存储来存储关系型数据库的数据, 使用对象存储来存储富媒体数据(图像、视屏等), 这可以提升整体的性能和效率,并可以更好地优化成本结构。
企业还需要考虑私有云平台跟公有云平台的对接问题, 这对于您的私有云平台未来的扩展性和组合经济性是至关重要的,甚至, 如果您的平台可以经过简单的改造(例如增加模块)就可以对您的合作伙伴或者客户提供云计算服务甚至扩展成行业公有云, 那就更好了。
正如上文所述,云计算平台涵盖很多领域,包含很多技术,要有一个能力结构完整的团队来研发出完整的可靠可用的云计算平台并不是一件容易的事情,很多情况下, 即使有大量资金和优秀团队也不一定能够在短期内做出一套可用的平台。 那该怎么办呢? 那就是要想办法找到一个有着公有云成功实施经验的团队来帮助您实现这个目标, 这是不是很难? 因为现在全球都找不到几个有着公有云成功实践经验的团队。 呵呵, 不用担心, 我们就是这样的一个团队(我发誓, 这句绝对是广告)。 :-)