带你读《企业私有云建设指南》之一:企业信息化与云计算架构和关键技术-阿里云开发者社区

开发者社区> 华章出版社> 正文

带你读《企业私有云建设指南》之一:企业信息化与云计算架构和关键技术

简介: 企业私有云建设需求旺盛,在架构设计和技术选型过程中应该结合自己公司的实际情况,因地制宜。本书给了很好的经验分享和思路,虽然是本技术书,但文笔流畅、平实细致,内容上也涉及了私有云建设的很多方面,值得细细阅读和品味!

云计算与虚拟化技术丛书
点击查看第二章
点击查看第三章
企业私有云建设指南
image.png

孙 杰 山金孝 张 亮 张婷婷 著

引言

回顾企业IT架构演进的整个历史,我们不难看到,自冯·诺依曼架构的第一台计算机诞生以来的前30年,计算高度集中化、支持多用户多任务的大型机和小型机是企业IT的主流形态。进入20世纪80年代,以x86服务器和PC系统的诞生为标志,企业IT系统迎来了第二次里程碑式变革:从all in one、全封闭的软硬件栈走向了包含网络、存储、服务器、操作系统、中间件、应用层等多层次水平分工的架构,各层IT产业链获得了大繁荣与大发展。
随着企业信息化进程的不断推进,企业IT系统的使用者和维护者们逐渐发现,分层架构体系也存在诸多弊端:生态链大繁荣的同时,多厂家硬件异构集成与管理的复杂度越来越高;企业信息化的重心向软件转移,但计算、存储、网络硬件弹性供给能力及其相互协同的不足越来越成为软件价值提升的制约性因素。
那么是否存在一条IT架构演进路径,可以在代价最小化,即在不对现有软硬件堆栈做颠覆式改动的前提下,有效应对上述关键痛点与挑战呢?答案是肯定的,这就是IT领域的第三次里程碑式演进变革,即从PC与服务器时代迈入云计算时代:虚拟化与云调度管理技术将来自不同厂家的、多台烟囱式的、彼此孤立和割裂的计算、存储、网络设备在逻辑上整合成一台“超大规模云计算机”,为上层软件提供弹性的按需供给资源的能力,从而实现软硬件部署过程与运行态的解耦,屏蔽了底层多厂家软硬件异构的差异性与复杂度,并填补了计算与存储之间的性能鸿沟。

第1章

企业信息化与云计算架构和关键技术

1.1 企业信息化发展的阶段和转型重点

企业信息化绝对不单单是技术问题,而是一个包含诸多层面与环节的系统工程。有研究表明,信息技术发展10~15年为一个周期,信息化建设同样也有周期性。根据信息化内容、信息化范围及信息化价值,可以将企业信息化发展的30多年划分为3个大的阶段,并分别简称为信息化1.0阶段、信息化2.0阶段和信息化3.0阶段。

1.1.1 企业信息化发展的三个阶段

如图1-1所示,企业信息化发展可分为三个阶段,如同生产方式的演进一样,三个阶段之间也是一种递进和创新的关系,是一种扬弃而不是颠覆。
下面就分别了解一下每个阶段的特点。
1.信息化1.0阶段
20世纪80年代到90年代,其主要特点是单个部门的单系统应用。1981年财政部推动提出了“会计电算化”概念,国内企业开始开展企业信息化应用,该阶段的应用特点如下:
□从信息化内容角度看,计算机应用主要集中在以财务电算化和档案数字化等个别领域。
□从信息化范围看,主要是单个部门的应用,很少有跨部门的整合与集成。
□其价值主要体现在效率提升方面,在IT部门总体地位不高,价值不显著。
目前,大部分大中型企业都已脱离这一阶段,仅有部分小企业信息化仍处于这一状态。

image.png

2.信息化2.0阶段
自20世纪90年代中后期开始,信息化进入快速发展时期。这个阶段的应用特点如下:
□从信息化内容看,重点是企业级套装软件的实施和开发,大部分企业引入了ERP、CRM、PDM及行业特性管理软件,并通过集成平台实现系统的整合与集成,实现了系统间的互联、互通、互操作。
□从信息化范围看,信息化首先是跨部门实现了企业内部的整合,而后是跨过企业边界,部分实现了供应链上合作伙伴之间的整合。
□从信息化价值角度看,企业IT部门的地位随之提升,成为对流程与管控创新有重要影响的部门,IT成为驱动企业发展的动力之一,主管企业信息技术的IT主管也成为企业高级别的领导,CIO群体逐步崛起。
目前大部分大中型企业都处于这一阶段,“信息孤岛”是这一阶段企业面临的主要挑战,集成、整合是工作的重心和难点。
3.信息化3.0阶段
随着电子商务的成熟,以及各种新兴技术的快速发展,以“BATJ”等互联网公司为代表的部分企业迅速开展系统升级和转型,它们通过引入云计算、大数据、AI等新兴信息技术,引领了企业信息化建设的潮流,并引领这一潮流迅速向传统企业扩散。该阶段有以下几大特点:
□从信息化内容看,建设的重点从前一阶段的系统建设和整合方向转向数据的分析和利用,信息化建设从IT阶段向DT(Data Technology,数据技术)阶段进化。
□从信息化范围看,企业通过从内部资源的集成到外部资源管理的扩展,建设一体化平台,构建内外融合的生态圈,使应用的边界模糊化。
□从信息化价值看,信息化地位再次提升,已成为战略创新的重要工具和手段。
目前处于该阶段的企业大部分是电商企业和互联网企业,仅有少部分的传统企业信息化达到了这一水平。这也是大多数企业未来信息化建设的目标和方向。

1.1.2 企业信息化转型的六个重点

从概念到大规模实践,短短数年间云计算迅猛发展。它与诸多行业深度融合,带来了颠覆性创新,凸显巨大的应用价值和发展前景。未来几年,企业信息化建设将进入发展阶段转型的关键期,信息化建设的技术、理念、理论、模式及评价标准等都已发生或将发生重大变化,需要用全新的理念和方法来筹划。因此,面对新的变化,企业信息化应用不能再沿用原有的发展模式,而是要突破发展惯性和路径依赖,顺应时代潮流,不断探索发展的新动力和新模式,才能实现持续发展和基业长青。未来几年,传统企业的信息化将发生以下六个方面的变化,也即六个重点。
1.信息化建设的侧重点从内部向外部转化
传统企业信息化建设的侧重点更多的是关注内部。例如,在很多生产制造企业中,“PDM+ERP+MES”是信息化的核心,实现从设计到计划再到生产的集中管控是信息化的主要工作。在未来,企业的经营要向互联网扩展,要逐步将内部业务流程和外部商务活动与互联网直接连接起来,去除价值链中的中间环节,直接与消费者、合作伙伴连接,用信息化手段再造企业和消费者之间的关系,整合社会资源,构建和谐的生态圈,以有效提升企业整体的核心竞争力。
要支持这一战略的落地,信息化建设的侧重点要从关注内部向关注外部转化,通过外部需求倒逼内部系统的升级。首先在客户端要满足O2O、电子商务和C2B的需求,围绕用户需求进行营销、客服、设计和生产计划等系统的改造;其次在供应端要满足B2B的需求,构建功能强大的平台,支撑生态圈的高效运作。在这样的形势下,“PDM+ERP+MES”将不再是信息化建设的重点,而且它们也需要进行改造,从支撑大批量生产向个性化生产转换。
2.信息化建设重点从应用向数据逐步转化
在信息化2.0阶段,大家往往更关心如何通过信息系统固化和优化业务流程,实现业务的电子化处理,而对数据的重要性不甚了了。之所以出现这种状况,原因有以下几点:
□意识不足,没有认识到数据和信息资源的价值,企业系统都是以流程为中心,大家关注的是产品功能。
□工具和技术不足,缺乏有效处理多种类型、不同格式数据的能力。
□需求不足,信息化主要还是满足业务操作和中层管理的需求,真正数据分析挖掘的需求和动力不足。
随着基本信息系统建设的完毕,未来信息化的重心必然会随之变化,将逐步从IT(信息技术)向DT(数据技术)转化,从以流程为中心向以数据为中心转化,未来信息化建设的重心将是如何对组织内外部的数据进行深入、多维、实时的挖掘和分析,以满足决策层的需求,推动信息化向更高层面进化。
3.信息系统从追求大一统向“平台+组件化”转变
企业要快速发展,业务的调整是不可避免的,如果业务调整带来信息化大量的变更,而且响应不及时,这势必会影响到企业业务的发展,而只有设计出智能的、柔性的信息化技术架构,才能快速地适应业务变化,及时地为业务提供信息化的相关支撑。信息化2.0阶段的一大特点是以套装软件为主,企业只能被动地适应软件的要求,不仅困难而且成本高昂。随着业务的快速变革,僵化的软件不但没有成为业务发展的支撑,反倒制约了业务的变化。SOA思想诞生后,意图改变这一被动局面,但由于成本高昂,效果并不理想。未来的互联网转型要求信息系统必须随业务快速变革,这就要求系统从原来的大一统向“平台+组件化”转变,从业务入手,进行业务和技术的分层和解耦,以动态支持业务变革。
4.IT基础架构向云端转型
近几年,云计算基础资源加紧布局,核心技术逐步完善,服务租赁的意识日趋深入人心,这些都为云计算技术的广泛应用提供了良好的条件。未来几年,随着PaaS层和SaaS层的逐步成熟,越来越多的集团企业会将系统部署到云端,混合云将在较长一段时间内成为IT基础设施的常态,如何处理好私有云和公有云的关系是考验IT建设和运维的一道难题。
5.IT系统从PC端向移动端转化
对比“云大物移智”几大IT新技术,移动应用或许是最容易走进传统企业的,移动应用对传统的IT架构并没有带来巨大的冲击,其成本也相对较小,但给终端用户带来的价值却是最大的。因此,移动信息化在传统企业将会快速推进,并成为未来几年信息化的一项核心工作。
6.信息系统开发从瀑布式向敏捷转化
业务向互联网转型后将面临更多的不确定性,需要不断试错来降低不确定性带来的风险,这就要求信息系统开发从传统的瀑布式向敏捷开发转化。瀑布模型式是最典型的预见性方法,严格遵循制定计划、需求分析、设计、编码与测试的步骤顺序进行。步骤成果作为衡量进度的方法,如需求规格、设计文档、测试计划和代码审阅等。瀑布式方法的主要问题是它的严格分级导致的自由度降低,项目早期即做出承诺导致难以根据后期需求的变化进行调整,代价高昂。瀑布式方法在需求不明并且在项目过程中可能发生变化的情况下,基本是不可行的。敏捷开发是针对传统的瀑布式开发模式的弊端而产生的一种新的开发模式,目标是提高开发效率和响应能力。敏捷开发可以在几周或者几个月的时间内完成相对较小的功能,强调的是能尽早将尽量小的可用功能交付使用,并在整个项目周期中持续改善和增强,以应对业务的快速变革。

1.2 云计算参考架构

云计算(cloud computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态、易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法。过去在图中往往用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象。云计算可以让你体验每秒10万亿次的运算能力,而拥有这么强大的计算能力可以模拟核爆炸、预测气候变化和市场发展趋势。
云计算的定义有很多种。现阶段广为接受的是美国国家标准与技术研究院(NIST)对它的定义。
云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,并进入可配置的计算资源共享池(资源包括网络、服务器、存储、应用软件、服务),这些资源能够被快速提供,只须投入很少的管理工作或与服务供应商进行很少的交互。
云计算之所以被关注,关键还在于其带来一种服务交付模式改变的业务价值。任何一项商业交易活动的参与者都可以简单划分为服务提供者和服务消费者,服务消费者基于与服务提供者事先达成的协议,随时随地从服务提供者处获取并消费服务,这种方式大大简化了商业交易活动过程中信息不对称的现象,同时最大程度地提升了服务消费者的服务体验。
为了有效描述云计算技术模型,各大商业组织都相继公布了云计算的参考架构模型,其中以IBM提出的CCRA(Cloud Computing Reference Architecture)最为准确,并在很大程度上推动了云计算参考架构的国际标准化。
IBM云计算参考架构如图1-2所示,为云计算平台的实现提供了指导性原则和技术工作产品,如服务和部署模型,并定义了具体实现的采用模式(Adoption Pattern)。一个采用模式具体表达了体系结构模式,并具体说明了企业单位可以用它来实施云计算解决方案的方法,可以指导企业单位定义与设计满足自己需求的云计算解决方案。
1.角色
该架构定义了三个主要角色:云服务消费者(Cloud Service Consumer)、云服务提供商(Cloud Service Provider)、云服务创建者(Cloud Service Creator)。每一个角色可以由单人执行,也可以由一组人或一个组织团体执行。一个云服务消费者可以是一个组织、一个人或一个IT系统,他们消耗着特定的云服务实例。云服务提供商有能力为云服务消费者提供云服务。云服务创建者的目的是创建一个能够被云服务提供商运行并暴露给云服务消费者的云服务。通常情况下,云服务创建者利用云服务提供商暴露的服务功能来创建他们的云服务。就如同云服务提供商和云服务消费者一样,云服务创建者可以是一个组织或一个人。
2.服务
IBM云计算参考架构设计了四种云服务模式:基础设施即服务(IaaS)、平台即服务(PaaS)、软件即服务(SaaS)和业务流程即服务(BPaaS),业务流程即服务是IBM自己定义的,美国国家标准只定义了IaaS、PaaS和SaaS。

image.png

3.基础设施
在IBM云计算参考架构中,所有基础设施元素都由云服务提供商提供,包括服务器、存储、网络资源和机房设施。基础设施元素仅限于硬件基础设施,不包括系统管理程序,也不包括任何虚拟化管理软件。
4.通用云管理平台
在IBM云计算参考架构中,通用云管理平台(Common Cloud Management Platform,CCMP)的功能是通过由CCMP 内部组件公开的AP来访问的。CCMP可支持跨越IaaS、PaaS、SaaS、BPaaS任何类别的云服务管理。CCMP分为两个主要元素:运营支持服务(Operational Support Service)和业务支持服务(Business Support Service)。
运营支持服务(OSS)代表了一系列运营管理和相关技术服务,这些服务将由CCMP暴露给服务消费者,这些服务需要通过云服务创建者来实现。主要包含:
□平台与虚拟化管理(Platform and Virtualization Management)
□监控与事件管理(Monitoring & Event Management)
□IT资产与授权管理(IT Asset & License Management)
□容量与性能管理(Capacity & Performance Management)
□自动化部署(Provisioning)
□配置与变更管理(Conf?iguration & Change Management)
□服务自动化管理(Service Automation Management)
□事故与问题管理(Incident & Problem Management)
□IT服务水平管理(IT Service Level Management)
□服务交付目录管理(Service Delivery Catalog Management)
□服务请求管理(Service Request Management)
□镜像生命周期管理(Image Lifecycle management)
业务支持服务(BSS)代表了一系列与业务相关的服务,这些服务将由CCMP暴露给服务消费者,这些服务需要通过云服务创建者来实现。主要包含:
□用户账户管理(Customer Account Management)
□合同与协议管理(Contracts & Agreement Management)
□计量管理(Metering Management)
□定价管理(Pricing Management)
□评级管理(Rating Management)
□计费管理(Billing Management)
□订单管理(Order Management)
□服务产品目录(Service Offering Catalog)
□服务产品管理(Service Offering Management)
□授权管理(Entitlement Management)
□服务请求管理(Service Request Management)
□订阅管理(Subscription Management)
□结算管理(Clearing & Settlement)
□应付账款(Account Payable)
□应收账款(Account Receivable)
5.安全、弹性、性能和易用性
安全、弹性、性能和易用性横跨了基础设施、CCMP和三个云服务角色几方面。这些非功能性要素必须从端到端的角度来看,包括CCMP本身的组成结构、硬件基础设施的设置(如隔离、网络分区的划分、为数据中心配置灾难恢复等)以及如何实现云服务。
6.服务创建工具
云服务创建者使用服务创建工具来开发新的云服务,包括开发运行工件和有关管理组件(如监测、计量、配置等)。
云计算国际标准—ISO/IEC如图1-3所示。2014年9月,中国等国家成员体推动立项并重点参与的两项云计算国际标准—ISO/IEC 17788:2014(《信息技术 云计算 概述和词汇》)和ISO/IEC 17789:2014(《信息技术 云计算 参考架构》)正式发布,标志着云计算国际标准化工作进入一个新阶段。这是国际标准化组织(ISO)、国际电工技术委员会(IEC)与国际电信联盟(ITU)三大国际标准化组织首次在云计算领域联合制定标准,由ISO/IEC JTC1与ITU-T组成的联合项目组共同研究制定。这两项云计算国际标准规范了云计算的基本概念和常用词汇,从使用者角度和功能角度阐述了云计算参考架构,不仅为云服务提供者和开发者搭建了基本的功能参考模型,也为云服务的评估和审计人员提供了相关指南,有助于实现对云计算的统一认识。

image.png

1.3 典型的云计算解决方案架构

众所周知,云计算中的三种典型架构分别是基础设施服务(Infrastructure Service)、平台服务(Platform Service)和应用服务(Application Service)。
1.SaaS(Software as a Service,软件即服务)
SaaS是一种通过互联网络提供软件的模式,用户无须购买软件,而是向提供商租用基于Web的软件,以管理企业经营活动。可以将它理解为一种软件分布模式,在这种模式下,应用软件安装在厂商或者服务供应商那里,用户可以通过某个网络(通常是互联网)来使用这些软件。这种模式通常也被称为“?随需应变?”(on demand)软件,是最成熟的云计算模式,因为这种模式具有高度的灵活性、已经证明可靠的支持服务、强大的可扩展性,因此能够降低客户的维护成本和投入,而且由于这种模式采用灵活租赁的方式收费,客户的运营成本也得以降低。
2.PaaS(Platform as a Service,平台即服务)
PaaS提供了基础架构,软件开发者可以在这个基础架构之上建设新的应用或者扩展已有的应用,同时却不必购买开发、质量控制或生产服务器。Salesforce.com的Force.com、Google的App Engine和微软的Azure(微软云计算平台)都采用了PaaS模式。这些平台允许公司创建个性化应用,也允许独立软件厂商或者其他第三方机构针对垂直细分行业创造新的解决方案。
3.IaaS(Infrastructure as a Service,基础设施即服务)
IaaS通过互联网提供了数据中心、基础架构硬件和软件资源。IaaS可以提供服务器、操作系统、磁盘存储、数据库或信息资源。IaaS的最高端代表产品是亚马逊的AWS,不过IBM、VMware和惠普以及其他一些传统IT厂商也提供此类服务。IaaS通常会按照“弹性云”的模式引入其他的使用和计价模式,也就是在任何一个特定的时间,都只使用你需要的服务,并且只为之付费。
4.SaaS、PaaS和IaaS的联系与区别
作为基于互联网的云计算服务,SaaS、PaaS、IaaS面对不同类型的用户。
它们并不是简单的继承关系(SaaS基于PaaS,而PaaS基于IaaS),因为首先SaaS可以是基于PaaS或者直接部署于IaaS之上,其次PaaS可以构建于IaaS之上,也可以直接构建在物理资源之上。
如图1-4所示,通常的应用系统架构自底而上,包括了网络、存储、服务器、虚拟化、操作系统、中间件、运行环境、数据和应用等9大层次。云计算服务面向基础架构、应用平台和业务服务分别提供了其中相应的架构服务组合,为企业用户的应用系统提供支持。
IaaS、PaaS和SaaS三者之间的界限正趋于模糊,严格区分三者的异同是次要的。因为这三种模式都要涉及业务负载、人员开支管理、服务器及网络的软硬件维护等问题。从更高层面来看,SaaS、PaaS和IaaS都是为了解决用户的问题,都是为业务提供服务。例如它们都试图为用户降低IT基础设施成本、充分发挥IT资源规模经济效益、提供强大的扩展能力。

image.png

PaaS服务面向的用户是应用系统开发和设计者,它不能为最终的业务用户所使用,然而PaaS服务提供了简化业务系统构建的组件和接口,可作为上层系统构建的基础。PaaS可以直接建立于IaaS之上,也可以构建在物理资源之上。作为一种特殊的业务应用形式,SaaS也可以构建在PaaS之上,而且这是将来的一种趋势。
SaaS服务模式与传统许可模式软件有很大的不同,它是未来管理软件的发展趋势。与传统服务方式相比,SaaS具有很多独特的特征:SaaS不仅减少了甚至取消了传统的软件授权费用,而且厂商将应用软件部署在统一的服务器上,免除了最终用户的服务器硬件、网络安全设备和软件升级维护的支出,除了个人计算机和互联网连接之外,客户不需要其他IT投资就可以通过互联网获得所需软件和服务。此外,大量的新技术,如Web Service,提供了更简单、更灵活、更实用的SaaS。
另外,SaaS供应商通常是按照客户所租用的软件模块来进行收费的,因此用户可以按需订购软件应用服务,且SaaS供应商会负责系统的部署、升级和维护。而传统管理软件通常是买家需要一次支付一笔可观的费用才能正式启动。

1.3.1 IaaS架构

消费者可以通过Internet从完善的计算机基础设施获得服务,这类服务称为IaaS(基础设施即服务)。一般意义上IaaS提供的资源包括计算资源、网络资源和存储资源。
作为当前使用最为广泛的IaaS开源实现,OpenStack的架构具有一定的代表性,图1-5是OpenStack的概念架构。在此模型中,共有四类用户,分别是开发者、DevOps工程师、应用负责人和云运维人员,并为每类用户划分了他们所需要的功能。该架构采用分层方法,带有两个正交区域:
□展示层:负责与用户交互,接收用户输入并返回请求结果。门户网络为非开发者提供图形界面,为开发者提供API端点。
□逻辑层:为云提供逻辑和控制功能。该层包括部署(复杂任务的工作流)、调度(作业到资源的映射)、策略(配额等)、镜像注册、日志(事件和计量)。
□资源层:提供计算、网络和存储资源的虚拟化管理能力和自动化交付能力。
业务结合层:提供计费和身份认证服务。
□管理层:提供IaaS平台基本配置能力以及IaaS平台被管资源的监控。

image.png

1.3.2 PaaS架构

近几年,伴随着国家“互联网+”战略,各个行业已经实施或正在实施自己的数字化转型战略,平台服务已经成为实践云计算的重点之一,它将应用运行所需的IT资源和基础设施以服务的方式提供给用户,包括中间件服务、数据服务、连通性服务、整合服务和消息服务等多种服务形式。为了实现平台服务,业界提出了“平台即服务”(PaaS)的交付模式。PaaS模式基于互联网提供对应用完整生命周期(包括设计、开发、测试和部署等阶段)的支持,减少了用户在购置和管理应用生命周期内所必需的软硬件以及部署应用和IT基础设施的成本,同时简化了以上工作的复杂度。为了确保高效交付具备较强灵活性的平台服务,在PaaS模式中,平台服务通常基于自动化技术以虚拟化的形式交付,在运行时,自动化、自优化等技术也将被广泛应用,以确保实时动态地满足应用生命周期内的各种功能和非功能需求。
具体来说,搭建传统IT基础平台是一个漫长的过程,通常由申请、审计、硬件购买与运输、硬件安装与配置、软件安装与配置等步骤组成。在这个过程中繁复的手工配置工作费时费力,而且容易发生人为配置错误。同时,平台环境的升级维护也面临人为配置错误频繁产生问题,造成不必要的影响和损失。基于这些原因,对于搭建完成的应用运行平台,即使在一定时期内不再需要,也不会被及时释放和回收,以供新项目使用。这是造成空闲硬件资源的原因之一。此外,传统基础平台提供的应用运行能力是静态的。然而,在不同时间,应用负载往往是不一样的。为了确保高负载时应用的正常运行,应用运行平台必须能够提供最高运行能力,这就造成了非高峰时的众多空闲硬件资源。
云计算的产生(尤其是平台服务的理念)从产生空闲硬件资源的根本原因入手,建立了快速搭建和部署应用运行环境与动态调整应用运行时环境资源这两个目标。一方面,依据虚拟化与自动化技术实现应用运行环境的即时部署以及快速回收,降低了环境搭建时间,避免了手工配置错误,可快速重复搭建环境、及时回收资源,减少了低利用率硬件资源的空置。另一方面,根据应用运行时的需求对应用环境进行动态调整,实现了应用平台的弹性扩展和自优化,减少了非高峰时硬件资源的空置。
在实际应用中,PaaS模式的重要应用场景之一是向用户交付一个支撑应用运行的应用运行平台(Applications Running Platform,ARP)。基于PaaS模式构建ARP,需要满足以下典型需求:
提供定义应用需求的接口:用户可以方便地定义满足应用功能需求所需的组件,同时可以定义应用的非功能性需求,如可用性、服务水平等。
提供基于应用需求快速构建应用运行环境的能力:能将应用需求映射为物理的IT资源和基础设施的具体配置和拓扑结构,并进行快速部署。
提供运行时实时动态满足应用需求的能力:将应用需求映射为运行策略,在运行时,根据系统运行的实际状况,如负载状况,动态地对物理的IT资源和基础设施进行调整,如调整负载分配或增减计算资源,使ARP具备足够的弹性和灵活性,以实时动态地满足应用需求。
针对上述需求,基于PaaS模式构建ARP的解决方案至少需要包括如下组件:
□需求与运行策略库:向用户提供定义应用需求的界面,保存应用需求,并将应用需求转化为部署及运行策略,提供给平台交付组件和运行时控制组件。
□软件镜像库:提供ARP所需的基础软件。
□ARP硬件资源池:基于Hypervisor,以虚拟化的方式提供ARP所需的硬件资源。
□平台交付组件:根据部署或调整策略及ARP硬件资源池来创建或调整ARP。
□运行时控制组件:根据运行策略和实际运行状况动态调整ARP资源池,提供资源动态调度能力。
1.PaaS平台和IaaS层的关系
在没有PaaS平台之前,我们通过IaaS层实现了业务应用和物理资源的解耦,有了虚拟化的资源池,但是资源池中的资源如何使用?资源池建设不是重点,资源池能够动态调度、提升资源利用率才是重点。为了实现该点就必须动态调度和分配资源,为了动态调度就需要应用托管,继而需要提供支持托管的开发框架和环境,并提供自动部署功能。有了这些,PaaS平台才能够更灵活地调度IaaS资源池中的资源。从两者集成和配合上来说,支持应用托管和资源动态调度是PaaS平台的核心。
在谈论IaaS时我们一般介绍通过IaaS形成了计算资源池和存储资源池,而在谈论PaaS时也需要提供资源池,这个资源池封装数据库和中间件等服务,即提供中间件资源池和数据库资源池。中间件资源池本身就是“中间件+应用部署包”后的可调度计算单元,而数据库资源池是“数据库平台+数据”后的可伸缩的存储单元。中间件和数据库对业务系统隔离,形成中间件即服务和数据库即服务。
2.PaaS平台和SaaS层的关系
首先企业内的PaaS平台是一个各业务系统公用的平台,因此PaaS平台本身需要支持多组织和多租户。其次PaaS平台和SaaS没有必然的关系,而是由业务需求决定。基于PaaS平台开发的应用在公有云环境下可能偏SaaS应用,在私有云环境下则不一定是SaaS应用。没有PaaS平台也可以实现SaaS层和IaaS层的直接集成。
3.PaaS平台和SOA集成平台
很多时候我们将SOA集成平台本身作为企业内PaaS平台的一部分。SOA集成平台提供了能力和服务的集成、BPEL流程编排、BPM和规则引擎等基本功能。SOA集成平台不在某个业务系统内部,而是集中化的且只有一套,以供各个业务系统使用并实现集中化管理。
在通过SOA解决基础问题后,过渡到PaaS平台时一定要考虑PaaS平台本身可以通过组合和编排来产生新的服务和能力,这个能力可以在PaaS平台产生并集中化管理,而不是传统的在业务系统产生,SOA只负责集成。
(1)PaaS平台和基础能力
PaaS层平台需要提供基础层平台能力,这些能力是原有的各个业务系统中能力的下沉。即我们常说的统一的组织权限、主数据、统一的流程建模,执行和监控平台全部划入SOA集成平台。通过提供这些基础能力实现真正意义的业务系统,即完全只剩余业务模块和业务组件,使得向业务组件化和组件能力化的构想更进一步。
(2)PaaS平台和开发模式
推行PaaS平台一定要考虑到PaaS平台建设本身就是开发框架和模式的大变革。只有基于标准的开发框架和模式才能够实现自动部署和应用托管。对于这里的开发模式,我们更加强调的是SOA的内化,为了考虑后续NoSQL数据库的使用,我们会弱化关系型数据库的思维,进一步加强领域建模的思路。笔者认为“组件化架构+领域建模”是PaaS平台下的核心开发思维模式。
图1-6为Gartner发布的PaaS平台参考架构,简单理解如下:PaaS整体架构分为两个重要的部分,一个是技术基础设施,另一个是PaaS基础服务提供。其中技术基础设施一般对用户不可见,而PaaS基础服务则是开放的,可供多租户用户(业务系统)使用。

image.png

(3)PaaS技术基础设施
PaaS技术基础设施可以理解为PaaS底层的技术架构,其实现PaaS平台的核心技术并与IaaS层实现集成。在整个PaaS技术架构中又分为性能基础能力、云基础能力和管理平台能力三个重要部分。
性能基础能力包括内存计算(内存数据库,分布式缓存)、网格计算、弹性伸缩和调度技术、SLA服务水平管理、高可用性、安全管理、数据集成、并行计算和处理等。
云基础能力包括共享资源池、多租户、自服务、计费管理、弹性、元数据管理、资源申请和使用。在这里可以看作云计算本身基本技术特征的实现。
对于PaaS管理平台,可以看到这里的核心还是云基础技术能力和云资源池中资源的全生命周期管理、资源本身的监控和动态调整等,以及其他类似的基本管理功能,包括系统管理、权限管理、用户管理、版本管理等。
(4)PaaS平台服务层
PaaS平台服务层直接面对最终的业务系统。真正体现平台级服务的概念即平台由传统的终端朝整个云端的迁移过程。通常平台包括了开发平台、测试平台、运行平台,且这些平台又可以进行细分。平台体现的另外一个重要特征就是“离线+在线”。开发时可以离线或在线,但是在运行态时一定是在PaaS平台的执行托管环境里面。
如图1-7所示,Gartner发布的PaaS服务层对平台进行了进一步的细分,底层是集成的应用开发和全生命周期管理、集成的平台服务管理(体现自服务),包括能力和服务的申请、开通、使用组装和部署的完整生命周期管理。
□应用平台:核心是应该有一套集成的应用开发平台,提供了集成的应用开发框架和环境、集成的PaaS底层技术能力,提供标准的技术附件、服务等。类似于传统开发平台和框架。
□集成平台:这里的核心是SOA,而SOA又包括两个重要的部分,一个是ESB提供服务的集成和服务全生命周期管理能力,另一个就是BPM和BPEL提供业务流程管理能力、服务的编排和流程的整合能力。
□云数据库平台:数据库对用户黑盒,数据库的资源来自于云平台中的资源池,对于企业私有云的数据库,重点还是数据库本身需要支持分布式和集群技术,数据库能力的提供需要通过云数据平台以服务的方式提供。
□用户体验平台:在这里笔者个人理解应该偏向于提供了一整套偏UI和交互层的用户体验框架,这套框架本身就会与底层的所有平台和技术能力进行集成。

image.png

如图1-8所示,整个PaaS平台的演进路线就是需要将原有的应用基础设施服务能力整合为PaaS平台层中的应用平台服务(aPaaS)和集成平台服务(iPaaS),最终再将两个部分整合为一个完整的PaaS平台应用。aPaaS解决的是单个应用如何基于PaaS平台基础设施的问题,而iPaaS解决的是多个应用间如何集成和交互的问题。
iPaaS的核心仍然是如何体现PaaS平台的云能力,包括资源池、弹性扩展、集成等。而其中最重要的就是ESB集成能力、数据库和中间件资源池的建设、自动部署和应用托管。

image.png

1.3.3 SaaS架构

随着信息经济时代的到来,软件及其相关的信息服务产业已成为引导未来经济的核心力量,企业信息化水平则成为衡量软件产业的重要指标。现在企业管理软件已经历了由Mainframe结构、Client/Server结构、B/S多层分布式结构到SOA的演变,变得越来越分散、越来越开放和强调互操作性。软件交付方式也从传统的IT外包转为应用服务提供商(Application Service Provider,ASP)模式,独立软件开发商逐步发展为应用服务联盟。SaaS(Software as a Service)是一种通过Internet提供软件的模式,用户无须购买软件,改为向服务提供商租用基于Web的软件来管理企业经营活动,而服务提供商将全权管理和维护软件。自2003年Salesforce首次推出SaaS概念以来,SaaS取得了很大的发展,已成为当前的研究热点。
在国外,包括Salesforce、Rightnow、Taleo以及Google、Microsoft、SAP等从事SaaS业务的公司,已形成包括支撑平台与网络环境提供商、软件运营服务平台提供商、SaaS软件提供商、SaaS软件集成商、咨询/实施/维护提供商、软件运营商和用户在内的SaaS生态系统,并呈现从中小应用往大型应用过渡的趋势。
在国内,也涌现了包括用友、金蝶、金算盘、800CRM和阿里软件等SaaS服务提供商,SaaS生态系统中的各种角色都已出现,但是角色的分工尚不明晰,总体处于市场发展初期。往后,应用趋势将朝着行业化、个性化、集成化和多功能渗透发展。
SaaS架构应该满足以下三个特点中的一个或多个:
□可扩展性:指能够最大限度提高并行性,以便更高效地利用应用资源。
□可配置性:指每个客户能够用元数据配置应用的外观和行为,同时保证配置的使用简易和零费用。
□多用户高效性:指能够最大化不同用户间的资源共享,但要区分不同用户的数据。
根据是否满足以上三个特点,可以建立SaaS的四级成熟度模型,每一级都比前一级增加了上述三种成熟特性中的一种:
□成熟度Ⅰ:如应用程序提供商(ASP)提供的模式,每一个用户运行一个不同的实例。
□成熟度Ⅱ:所有用户提供相同的实例。但是在这种模式下,实例具有可配置性,用户可以根据自己的需要配置运行的实例。
□成熟度Ⅲ:这种模式具有可配置性及多用户高效性,所有用户运行在同一个实例下。
□成熟度Ⅳ:在这种模式下,供应商在负载平衡的服务器群上为不同顾客提供服务。
一个典型的SaaS系统可以分为表现层、接口层和应用实现层,表现层侧重于管理流和业务流的分离,在接口层必须提供统一的用户远程调用接口,而应用实现层则提供计算能力共享、存储能力共享、个性化配置能力和大容量支持能力。
多租户是SaaS的典型特性,租户可以表现为多种形式,比如一个用户、一个项目组、一家公司、一个部门等。一般由如图1-9所示的5种模式实现多租户。

image.png

1.4 云计算涉及的关键技术

云计算的概念不仅仅局限于计算,实际上直接称为“云”更加合适,云的本质是网络为用户提供按需即取(Service on Demand)的服务,包括提供计算能力、存储能力以及网络能力的各种服务的组合。各种基于云的服务则都需要相应的技术来提供支撑,下面就列举了云计算涉及的一些关键技术。
1.虚拟化技术
在计算机中,虚拟化(Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间不可切割的障碍,使得用户可以使用比原本组态更好的方式来应用这些资源。这些资源的新虚拟部分是不受现有资源的架设方式、地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。
在实际的生产环境中,虚拟化技术主要用来解决高性能物理硬件产能过剩和老旧硬件产能过低的重组和重用,透明化底层物理硬件,从而最大化利用物理硬件。
虚拟化技术与多任务以及超线程技术是完全不同的。多任务是指在一个操作系统中多个程序同时运行,而通过虚拟化技术,则可以同时运行多个操作系统,而且每一个操作系统中都有多个程序运行,每一个操作系统都运行在一个虚拟的CPU或者虚拟主机上;超线程技术只是单CPU模拟双CPU以平衡程序运行性能,这两个模拟出来的CPU是不能分离的,只能协同工作。
2.分布式处理技术
分布式处理和并行处理是为了提高并行处理速度所采用的两种不同的体系架构。
并行处理是利用多个功能部件或多个处理器同时工作来提高系统性能或可靠性的计算机系统,这种系统至少包含指令级或指令级以上的并行。
分布式处理则是将不同地点或具有不同功能,或拥有不同数据的多台计算机通过通信网络连接起来,在控制系统的统一管理控制下,协调完成大规模信息处理任务的计算机系统。
分布式系统是建立在网络之上的软件系统,具有高度的内聚性和透明性。以分布式数据库为例,内聚性是指每一个数据库分布节点高度自治,有本地的数据库管理系统;透明性是指每一个数据库分布节点对用户的应用来说都是透明的,即看不出是本地还是远程。在分布式数据库系统中,用户感觉不到数据是分布的,即用户无须知道关系是否分割、有无副本、数据存放于哪个站点以及事务在哪个站点上执行等。
为了达到互操作性,用户需要一个标准的分布式计算环境,在这个环境里,所有系统和资源都可用。
DCE(分布式计算环境)是OSF(开放系统基金会)开发的分布式计算技术的工业标准
集,提供了保护和控制数据访问的安全服务、名字服务,以及高度可伸缩的模型,主要用于组织极为分散的用户、服务和数据。DCE可在所有主要的计算平台上运行,并设计成支持异型硬件和软件环境下的分布式应用。
CAP理论是由Eric Brewer提出的分布式系统中最为重要的理论之一:
□Consistency:(强)一致性,事务保障,ACID模型。
□Availiablity:(高)可用性,冗余以避免单点,至少做到柔性可用(服务降级)。
□Partitiontolerance:(高)可扩展性(分区容错性),一般要求系统能够自动按需扩展,比如HBase。
CAP三个因素最多只能满足两个,不可能三者兼顾。对于分布式系统来说,分区容错性是基本要求,所以必然要放弃一致性。对于大型网站来说,分区容错性和可用性的要求更高,所以一般都会选择适当放弃一致性。对应CAP理论,NoSQL追求的是AP,而传统数据库追求的是CA,这也是传统数据库的扩展能力有限的原因。
在CAP三者中,“可扩展性”是分布式系统的特有性质。分布式系统的设计初衷就是利用集群多机的能力处理单机无法解决的问题。当需要扩展系统性能时,一种做法是优化系统的性能或者升级硬件(scale-up),另一种做法就是“简单”地增加机器来扩展系统的规模(scale-out)。好的分布式系统总在追求“线性扩展性”,即性能可以随集群数量增长而线性增长。
可用性和可扩展性一般是相关联的,可扩展性好的系统,其可用性一般会比较高,因为有多个服务(数据)节点,不是整体的单点。所以分布式系统的所有问题基本都是在一致性与可用性和可扩展性这两者之间的一个协调和平衡。对于没有状态的系统,不存在一致性问题,根据CAP原理,它们的可用性和分区容错性都是很高的,简单地添加机器就可以实现线性扩展。而对于有状态的系统,则需要根据业务需求和特性在CAP三者中牺牲其中之一。一般来说,交易系统类的业务对一致性的要求比较高,一般会采用ACID模型来保证数据的强一致性,所以其可用性和扩展性就比较差。而其他大多数业务系统一般不需要保证强一致性,只要最终一致就可以了,因此它们一般采用BASE模型,用最终一致性的思想来设计分布式系统,从而使得系统可以达到很高的可用性和扩展性。
3.海量数据存储技术
为了保证高可用、高可靠和经济性,云计算采用分布式存储的方式来存储数据,采用冗余存储的方式来保证存储数据的可靠性,即为同一份数据存储多个副本。
另外,云计算系统需要同时满足大量用户的需求,并行地为大量用户提供服务。因此,云计算的数据存储必须具有高吞吐率和高传输率的特点。
云计算系统中广泛使用的数据存储系统是Google的GFS和Hadoop团队开发的GFS的开源实现HDFS。
GFS即Google文件系统(Google File System),是一个可扩展的分布式文件系统,用于大型的、分布式的对大量数据进行访问的应用。GFS的设计思想不同于传统的文件系统,它是针对大规模数据处理和Google应用特性而设计的。它运行于廉价的普通硬件上,但可以提供容错功能。它可以给大量的用户提供总体性能较高的服务。
GFS由一个Master和大量块服务器构成。Master存放文件系统的所有元数据,包括名字空间、存取控制、文件分块信息、文件块的位置信息等。GFS中的文件被切分为64MB的块进行存储。
GFS采用冗余存储的方式来保证数据的可靠性,每份数据在系统中保存3个以上的备份。为了保证数据的一致性,对于数据的所有修改需要在所有备份上进行,并用版本号的方式来确保所有备份处于一致的状态。
客户端不通过Master读取数据,以免大量读操作使得Master成为系统瓶颈。客户端从Master获取目标数据块的位置信息后,直接与块服务器交互并进行读操作。
GFS将写操作控制信号和数据流分开,即客户端在获取Master的写授权后,将数据传输给所有的数据副本,在所有数据副本都收到修改的数据后,客户端才发出写请求控制信号。在所有数据副本更新完数据后,由主副本向客户端发出写操作完成控制信号。当然,云计算的海量数据存储技术并不是只有GFS,其他IT厂商,包括微软、Hadoop开发团队也在开发相应的数据管理工具。其本质上是通过一种分布式数据存储技术,以及与之相关的虚拟化技术,对上层屏蔽具体的物理存储器的位置、信息等。在快速的数据定位、数据安全性、数据可靠性以及底层设备内存储数据量的均衡等方面仍需要继续研究完善。
Ceph是云计算分布式存储中另一个明星项目,由Sage Weil于2004年发起。Ceph是典型的分布式文件系统,它面向错误设计,假设大规模存储(PB级存储)故障是常见现象而不是例外情况,可轻松扩展到数PB级容量,支持多种工作负载,高性能并且具备高可靠性。
作为分布式文件系统,Ceph能够在维护POSIX兼容性的同时加入复制和容错功能。自2010年3月底开始,用户可以在Linux内核(从2.6.34版本开始)中找到Ceph的身影。作为Linux的文件系统备选之一,Ceph.ko已经集成到Linux内核之中。2016年,Ceph官方认为其已经具备生产环境应用能力。
同时,Ceph也是统一存储系统,支持三种接口:
□Object:有原生的API,而且也兼容Swift和S3的API。
□Block:支持精简配置、快照、克隆。
□File:POSIX接口,支持快照。
目前Inktank公司负责Ceph的开发,但Ceph是开源的,遵循LGPL。Inktank还积极整合Ceph与其他云计算和大数据平台,目前Ceph支持OpenStack、CloudStack、OpenNebula、Hadoop、Docker等。
4.海量数据管理技术
云计算需要对分布的、海量的数据进行处理、分析,因此,数据管理技术必须能够高效地管理大量的数据。云计算系统中的数据管理技术主要是Google的BT(Big Table)数据管理技术和Hadoop团队开发的开源数据管理模块HBase。由于云数据存储管理形式不同于传统的RDBMS数据管理方式,如何在规模巨大的分布式数据中找到特定的数据是云计算数据管理技术所必须解决的问题。同时,由于管理形式的不同,造成传统的SQL数据库接口无法直接移植到云管理系统中来,目前一些研究关注于为云数据管理提供RDBMS和SQL的接口,如基于Hadoop的子项目HBase和Hive等。另外,在云数据管理方面,如何保证数据安全性和数据访问高效性也是研究关注的重点问题之一。
5.编程方式
云计算提供了分布式计算模式,客观上要求必须有分布式编程模式。云计算采用了一种思想简洁的分布式并行编程模型Map-Reduce。Map-Reduce是一种编程模型和任务调度模型,主要用于数据集的并行运算和并行任务的调度处理。在该模式下,用户只需要自行编写Map函数和Reduce函数即可进行并行计算。其中,Map函数中定义各节点上分块数据的处理方法,而Reduce函数定义中间结果的保存方法以及最终结果的归纳方法。
6.云计算平台管理技术
云计算资源规模庞大,服务器数量众多并分布在不同的地点,且同时运行着数百种应用,因此如何有效地管理这些服务器并保证整个系统提供不间断的服务是一个巨大的挑战。云计算系统的平台管理技术能够使大量服务器协同工作并方便地进行业务部署和开通,快速发现和恢复系统故障,通过自动化、智能化手段实现大规模系统的可靠运营。

1.5 小结

当今企业信息化建设正在进入发展阶段的转型关键期,随着云计算在企业的不断深入应用和发展,也使企业信息化建设的理念、模式及评价标准等发生重大变化,因此需要用云的理念和方法来筹划,利用技术推动创新。面对新的变化,面对数字化转型,企业信息化应用不能再沿用原有的发展模式,而是要突破发展惯性和厂商依赖,顺应时代潮流,不断探索和掌握云计算的关键技术,不断创新发展,做到自主可控地融入大的生态,这样才能加快企业信息化的建设,实现可持续发展和基业长青。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

华章出版社

官方博客
官网链接