选择一个IaaS解决方案之前,有必要对IaaS云计算架构本身有个初步的了解。云计算仅仅是一种计算模型,可以采用不同的方式来实现,许多厂商都有自己对云计算的远景,进而发布自己的架构。客户之间又可能会有不同的定制化模块,所以云计算解决方案的搭建不是一蹴而就的,很多时候需要在框架内做些修改来满足客户特殊的需求。
许多厂商的架构都存在类似的地方,所以这里总结一下其共通点。 目前IT部门面临着不同的业务挑战,主要包括:
- 对资源的需求造成了高额的资本和运维开销(↑CapEx & OpEx)
- 复杂的IT操作造成了业务的慢速响应;比如,合理化手动配置和资源调配的任务都是复杂而耗时的(Slow Responsiveness)
- 专用物理基础设施的低效资源利用率;资源池按应用程序来自定义,造成了更少的资源共享率(Res. Dedication -> Lower Res. UT)
- 动态的向上/向下伸缩资源很困难,造成更久的部署时间(un-scalable->slow provisioning)
- 将数据中心内的云元素与其他操作元素进行整合的困难(运维、变更请求管理,等等),导致高昂的运维开销(no tightly integration -> ↑OpEx)
- 虚拟化的资源(Virtualized Resources) – 网络、计算和存储资源是部署云的构建块,虚拟化资源将由用户和应用程序共享,它们提升了资源分配的效率。
- 服务汇集(Service Orchestration) – 汇集软件自动化并汇集操作人员所执行的日常任务和功能,它协调着跨越服务器、客户端、网络设备、存储设备的配置自动化解决方案,实现了资源的快速调配。它还自动化了跨越多个应用程序和工具以及多个IT小组(比如支持和运维)的流程,使得跨越孤岛(cross-silo)的整合更为容易、快速、可靠。汇集是云基本定义的关键,因为它在一个多租户环境下使能(enable)了按需、可伸缩的IT资源。
- 服务门户和服务API(Service Portal & service APIs) - 为了将云服务转型为效用计算模型(Utility Computing Model),必须定义并向消费云资源的客户端暴露一个服务目录作为门户或一组服务API。通过目录,客户端基于需求选择资源并发起记录,持续跟踪那些资源的花费或信用卡退单(chargeback)。
- 操作和管理 (Operations & Management) - 该构建块包括的系统有记账(billing system)、资产和配置管理、软件许可管理、变更和发布管理、桌面服务和服务级别管理。
认识了IaaS各个构建块之后,我们可以阶段性(stage)的来实现。因为很多企业和服务提供商已经运行在大规模现有的IT环境下,所以转型不可能是一蹴而就的。好在云计算的体系架构允许我们一步一步的迁移,可以将早期传统的基于物理资源的数据中心经过虚拟化、自动化、设施化,最终实现完整的云计算体验,企业和服务提供商能够在每一个阶段看到实施所带来的投资回报。如下图:
- 整合(Consolidation) – 许多大型企业正在整合以减少数据中心和服务器的蔓延(sprawl),降低能源和制冷花费
- 虚拟化(Virtualization) – 虚拟化是做整合的使能工具(Enabler),在共享资源池的基础上实现隔离。
- 自动化(Automation) - 资源管理的自动化以及服务汇集降低了调配时间,简化了管理资源池的管理和优化。以公共设施(Utility)的形式呈现资源使的客户能够选择他们所需要的资源和服务,实现了灵活性、高效性和民主的资源分配,这一切都直接降低了运维成本(OpEx)。
通常我们还希望同一种基础架构除了承载IaaS服务之外,还能够按需承载其他类型的服务或应用。这种服务交付框架(Service delivery framework)体现了整个解决方案的灵活性和可扩展性。
云计算架构必须允许通过服务汇集实现按需资源调配,服务汇集是一个位于数据中心基础架构之上的配置抽象层,它实现了一个基于门户的配置模型,用户可以从预定义的服务选项和主机应用程序中进行选择。基于选择,系统会在设备上执行配置操作来完成门户中呈现的服务。这种自助服务、基于门户的模型为每一个客户提供了自定义的能力,从而减少了IT部门的手动任务。因此,服务汇集通过门户实现了跨设备配置自动化,极大的降低了IaaS的OpEx,实现了快速应用程序部署。有许多汇集程序(orchestrator)可以使用,比如VMware Automation Center、BMC Atrium Orchestrator。
分层安全性(Layered Security) - 安全访问和资源保护对于云架构的采纳至关重要,对整个架构的每一个层级都提供特定的安全机制是保证业务正常运作的基础。
综上,我们可以看出云计算模型是一个大杂烩,他的实质完全可以类为是一个操作系统 - 云操作系统 - 只不过它管理的对象是资源池,而非单个系统上的资源。除了引入虚拟化,服务门户、计费等新的功能,我们依然需要可管理性、安全性、可靠性等传统需求,而这也是导致复杂的必然,但最终呈献给用户的,一定是简单的东西。
参考:
- 《Virtualized Multi-Tenant Data Center Solution for Infrastructure-as-a-Service》
- 云计算服务模型
- 云计算定义 - NIST