如果盘点2015年最热的一个词,那么无疑是“互联网+”。上至李克强总理,下到平民老百姓,都在热论“互联网+”。
对于什么是“互联网+”则有很多争论。比较趋同的看法是:“互联网+”是互联网时代从消费互联网向产业互联网过渡的一个重要阶段,其主要特点利用互联网思维和互联网技术,包括移动互联网、云计算、大数据技术来推动传统产业的升级转型,同时推动行业生态的重构,通过互联网的跨界、融合去重构产业模式,形成新的业态。
对传统行业来说,“互联网+”的转型首先要采用“互联网思维”来创新业务模式,利用互联网技术,通过线上、线下的紧密结合,为客户提供更高价值的服务和产品。
在企业向“互联网+”转型过程中碰到的一个很大的挑战,就是传统竖井型的企业IT架构无法支撑“互联网+”的业务模式。“互联网+”的业务需要高度灵活、弹性、安全、智能的IT架构,来支持在快速变化的市场中的业务发展;而云计算架构正是支持“互联网+”业务需求的唯一架构选择。
云计算的来龙去脉
“云计算”这个概念最早由谷歌高级工程师克里斯托夫·比希利亚在2006年向Google董事长兼CEO 施密特提出。施密特非常看重这一想法,并在随后的一个业界大会上正式提出。对熟悉网络的技术人员来说,这个概念是很容易理解的。电脑网络工程师在绘制网络架构图时,经常用云来表示抽象的网络,省略其内部具体结构。引申开来,云计算就是不用关心其内部实现、具体位置,只要通过网络连接,就可获得计算能力的服务。因此从云的体验来看,使用云计算就像使用水和电这样的公用服务(utility),只要有网络,就可按需、随时随地使用。
云计算定义
自谷歌提出云计算的概念以来,“云计算”迅速成为业界的热词,很多IT厂商也将各自产品贴上云计算标签,云计算的定义也众说纷纭,使很多人对云计算的理解有云里雾里、不得要领的感觉。
美国的标准和技术组织(NIST)给了一个比较客观、经得起时间检验的定义,可以澄清很多误解。NIST给出的定义是:“云计算是一个提供泛在、方便、按需,并通过网络访问一个共享的可配置的计算资源池(包括网络、服务器、存储、应用和服务)的模式,该模式下资源能够迅速地被创建或释放而不须太多的管理开销或是服务提供商的人工干预。”
NIST还进一步总结出一个“三四五”要点来阐释云计算概念。“三”是指云计算的三种服务模式,即基础设施即服务(IaaS)、平台即服务(PaaS)、软件即服务(SaaS); “四”是指云计算的四种部署模式(私有云、公有云、混合云、社区云); “五”是指云计算的五个特点(按需自服务、宽带访问、资源池、快速弹性扩展、计量服务)。
云的内部实现机制
要真正理解云计算,还需要了解云计算的内部实现机制。云计算把简便使用的体验提供给用户,把复杂性留在了云中。图1-1示出了云计算的内部实现机制。
云计算的使用流程可以简单描述如下:
用户通过互联网登录云提供商的自服务门户,并通过查询门户中的服务目录,选择需要的服务并提交订单。
云管平台的服务请求工作流模块将自动把订单提交到工作流。工作流通常首先是检查资源池中是否有足够的资源来满足订单要求;如果有足够资源,将把客户的订单按照服务内容分解成不同的工单。
生成的工单将发到编排和开通模块。编排模块将根据工单生成资源开通的流程,理清需要开通资源的依赖关系和顺序,然后通过开通模块去开通资源。
图1-1 云计算的内部实现机制
开通模块调用审计合规模块和调度模块。审计合规模块返回合规管控策略,调度模块返回调度策略,最后开通模块根据所返回的策略开通所申请的资源。合规策略包括资源开通的安全性区域选择,调度策略包括对负载权重的选择等。
资源开通后,监控模块开始工作,后台管理可以通过监控模块了解开通资源的运行状态。同时监控信息也可以反馈给计量计费模块、审计合规模块或者调度模块,如果平台有自动调度策略,最终用户也可以通过监控服务监控其所购买的服务。
计量计费模块根据客户的资源使用情况和计费规则自动生成账单。
客户可以根据自身需求随时扩展或缩小申请的资源。
从以上流程来看,云计算平台的功能主要是管理服务的生命周期。根据资源的不同,服务类别可以分为:以基础设施资源为主的IaaS服务,主要是提供云主机、网络资源、存储资源;以平台资源为主的PaaS服务,包括数据库服务、开发平台服务、中间件服务等;以应用资源为主的SaaS服务,像ERP、CRM等服务。
概括地说,云计算的实质是一种新型的IT架构,是一种支持自动化服务模式的架构,而不是某一种技术。云计算的架构使得IT资源可作为一种自动化服务通过互联网提供,让最终用户可以不通过中间环节,随时随地按需使用服务。
云计算服务既然是一种通过网络提供的自动化服务,其架构就和传统IT有很大的区别。下面我们来讨论云计算的架构,从中我们可以看到为什么云计算架构是支持“互联网+”转型的唯一IT架构选择。
什么是架构
要了解云计算架构,首先我们要对架构有清晰、准确的理解。架构有两个层面的涵义:一个是静态层面的,主要是勾画系统边界、结构、组成的组件以及组件之间的关联关系;另一个是动态层面,主要是规范组件的行为以及组件之间的交互协议。根据一个IT系统的架构,可以界定该系统的功能特性和一些非功能特性。例如:一个邮箱系统,它的功能特性可以是收、发邮件,非功能特性则包括安全措施(认证、加密等)以及响应时间、吞吐率等。架构设计要考虑不断变化和恒久不变的两方面。一个有长久生命力的系统都有一个设计高明的架构,其精髓在于架构能支持系统功能的变化、发展、演化,允许系统功能的不断变化,也就是架构必须提供灵活性;而系统对易用性、安全性、稳定性和性能却应该是恒久不变的,因此IT架构的设计必须强调非功能特性,其中开放性、可扩展性、可移植性、可维护性、灵活性、安全性、性能(响应时间、吞吐率、并发数等)最为重要。云计算架构尤其强调灵活性、扩展性和易用性。
主要的云计算架构
要了解云计算架构,最直接的方法是了解目前流行的主要云计算提供商的平台架构。下面我们通过了解公有云提供商的典型代表——亚马逊AWS的架构,以及在企业私有云占垄断地位的VMWare,还有在互联网企业使用的主流OpenStack架构来深入了解云计算的架构。
(1)亚马逊AWS架构
在2000年前后,以IBM、微软、HP为首的企业IT龙头提出了面向服务的架构(SOA)的理念。SOA架构的核心是松耦合,其系统由服务组件组成,每个服务组件提供一个专门的服务功能,各服务功能通过标准服务接口向外提供。SOA架构和传统应用架构有很大区别。传统应用架构的组件之间耦合度高,组件之间没有标准的接口,使得应用的扩展、维护非常不方便,不能支持业务的发展。虽然SOA的架构理念当时炒得很火,但大部分IT厂商都只是忙着给自己的产品贴上SOA的标签,而真正把SOA理念付诸行动、落实到服务的是当时做电商的亚马逊CEO贝佐斯。
贝佐斯基本上是靠下行政命令来使系统开发人员按SOA的理念来开发系统的。在2002年前后他给公司发的一封邮件中,要求所有团队的程序模块都要用服务接口把数据和功能开放出来,所有程序间的通信必须也只能通过这些服务接口进行。违反这个原则的都会被辞退。因此,亚马逊能从一个电商做成最大的云计算提供商,也就不足为奇;因为只有亚马逊,是最早、最彻底用面向服务的架构(也就是云计算的核心架构)来构建云计算的公有云平台的。
时至今日,亚马逊AWS已经是功能最完善、性能最强大的公有云提供商。图1-2所示是亚马逊提供的主要服务的功能示意图。目前,可以毫不夸张地说,依托亚马逊提供的IaaS和PaaS,可以大部分取代传统IT厂商提供的产品,为客户构建他们所需的IT能力。亚马逊AWS的架构从底层的数据中心就提供高冗余的设计。每个可用区(Availability Zone)至少由三个相距50多公里的数据中心组成,任何一个数据中心发生故障不会影响客户的服务使用体验。AWS的IaaS提供的高稳定、弹性伸缩的虚拟机,弹性硬盘,简单对象存储,虚拟私有云,负载均衡等,都成为公有云的标杆。同时,AWS也逐渐向“IaaS+PaaS”服务方向演进,提供丰富的PaaS功能,包括大数据和数据库服务。最后,亚马逊AWS也是最开放的公有云提供商,通过标准API、软件市场(Market Place)和Direct Connect构建广泛的生态圈。
图1-2 亚马逊AWS云功能示意图
(2)VMWare云架构
VMWare 是最早在X86推出虚拟化产品的厂商,也是企业私有云建设中的最大得益者,长期以来是服务器虚拟化的绝对龙头,占有全球虚拟化市场近80%的市场份额。VMWare的拳头产品是VSphere和VCenter。其虚拟化的稳定性和性能在业界无出其右。在云计算起步相当长的一段时间,虚拟化和云计算是使很多人混淆的概念。其实虚拟化只是构建云计算资源池的一种主要方式,和云计算的服务模式有很大的区别。另一方面,资源池可以使用物理机或容器来构建。
近年来,VMWare 逐步发力云市场。图1-3所示是VMWare在2014年发布的企业云架构。其核心是统一管理物理环境、以VMWare 技术为主的虚拟化环境(包括以计算为主的VSphere、提供SDN 的NSX,以及分布式存储VSAN)以及多种公有云环境,实质上是一个混合云管理的方案。它在上层分成4部分:Business(业务)、Automation(自动化)、Operations(运维)、Extensibility(扩展)。通过这几部分实现图1-1所示的云内部机制。
图1-3 VMware企业云架构
(3)OpenStack架构
如果说在企业级市场VMWare是绝对的龙头,那么在开源产品上, OpenStack 已经是主流的开源云平台,其接受程度已远超过同类型的CloudStack、Eucalyptus和OpenNebula等开源平台。
OpenStack是2010年Rackspace和美国NASA合作推出的开源云项目,以NASA的Nebula平台以及Rackspace的云文件存储平台为基础,形成Nova计算平台和Swift对象存储两个核心项目。随后大部分的IT巨头,包括IBM、HP、Intel、思科等,出于和亚马逊AWS、VMWare 竞争的考虑,都聚集在OpenStack大旗下,目标是把OpenStack打造成未来的标准云操作系统,就像Linux是服务器的标准操作系统那样。
图1-4所示的OpenStack云架构图是OpenStack官方的架构图。可以看到,虽然和亚马逊AWS以及VMWare相比还有一段距离,但OpenStack现在已基本上具备一个实现类似图1-1所示的云内部机制。其中Horizon是界面模块, Heat是编排,Ceilometer是监控和计量,Keystone是标识和认证,Nova是类似AWS EC2的计算,Neutron是SDN 网络,Cinder是块存储,Glance是镜像服务,Swift 是类似S3的对象存储。
图1-4 OpenStack云架构图
OpenStack之所以能在众多开源云平台中脱颖而出,很大程度上在于其采用SOA 架构所带来的灵活性和扩展性。OpenStack项目管理也采用非常开放的方式。新的需求和想法可以由开源社区人员发起新项目,到一定程度可以申请成为OpenStack的孵化项目。孵化项目中经过考核并证明成熟的项目可以被集成到OpenStack的发布版本,转成集成项目,成为OpenStack正式家族成员之一。可以预见,未来OpenStack的功能会越来越完善,假以时日,超越AWS或VMWare这两大公、私云巨头也不是没有可能。
以上简单介绍了云计算和架构的定义,云计算的外部体验和内部实现机制,并通过对公有云龙头亚马逊AWS、私有云龙头VMWare和开源主流云平台OpenStack的架构分析,使读者对云计算架构有比较直观的了解。云计算架构,其核心是基于面向服务(SOA)的自动化服务管理架构,其特征是资源池化、通过互联网交付的按需弹性、简易使用、可计量的服务。企业的“互联网+”转型,需要的不单是方便灵活地使用各种云服务,更重要的是要把业务能力和应用转化成线上交付的云服务。未来的企业在云上同时是服务的提供者和消费者。因此,云计算架构是支持“互联网+”转型的唯一IT架构选择。