基于SLA的面向服务的基础设施✴
2011-06-28何剑虹白晓颖李润玲崔智社
何剑虹,白晓颖,李润玲,崔智社
(1.清华大学计算机科学与技术系,北京100085;2.解放军驻232厂军事代表室,北京100081;3.空军装备研究院通信所,北京100085)
基于SLA的面向服务的基础设施✴
何剑虹1,3,白晓颖1,李润玲2,崔智社3
(1.清华大学计算机科学与技术系,北京100085;2.解放军驻232厂军事代表室,北京100081;3.空军装备研究院通信所,北京100085)
SOI/IaaS是指以服务的方式来提供基础设施的供给模型,它是云计算服务的重要基础,而SLA协议成为了SOI发展的助推器。介绍了SLA@SOI小组的研究工作,主要是SLA@SOI小组中SLA协议的基本思想和该小组提出的基于SLA的SOI框架,并总结了在该框架下管理基础设施的基本原理和基本过程。最后分析了该领域的未来发展方向。这项研究对云计算有着极为重要的意义。
云计算;服务级别协议;面向服务的基础设施;基础设施即服务;供给模型
1 引言
在云计算的体系中,面向服务的基础设施(SOI/IaaS)起着至关重要的基础作用[1]。基础设施从广义上讲包括各种可配置的基础设施资源,比如计算资源、存储资源和支持应用程序运行的网络硬件和软件。
在基于服务的复杂系统中,服务水平有着重要的意义。服务水平可能关系到数据错误与丢失、传输延迟甚至整个系统的崩溃,会造成难以估量的影响。服务水平协议(Service Level Agreement,SLA)是服务提供商和用户之间经过磋商的用来陈述服务的质量、优先级和责权的文档,它将保障在SLA合同书中对客户承诺的QoS服务质量,它能简化服务使用者与服务提供商之间的协商过程。SLA引入到SOI中符合发展的趋势,已有人提出了基于SLA对复杂组合服务进行监控的方法[2]。
SLA@SOI是欧盟的一个联合项目[3,4],主要研究在规范的SLA的基础上如何管理面向服务的基础设施。项目主要针对3个方面:首先是要让服务的质量变得更加可靠和可预测,这里指的是服务的质量特征在运行时是可预测的;其次是要实现语义清晰的SLA管理框架,当前的SLA协议通常都是用自然语言描述的,因此不能保证在IT服务框架的各个层次都能被准确解读;第三是实现自动协商,即在SLA的基础上自动协商出最合适的服务方案。当前的SLA只能通过人工协商来解决,效率低下。SLA@SOI的预期目标是提出一致的、多层的开放SLA管理框架[5],并设计出基于SLA的SOI架构和服务管理架构[6]。
2 IT服务体系架构
SLA@SOI认为[7],IT服务架构中有服务客户、服务提供者、软件提供者和基础设施提供者4个主要角色,它们之间的关系如图1所示。
图1 新的IT服务体系架构Fig.1 The new IT service architecture
在新的IT服务架构中,对基于SLA的基础设施服务提供商的研究是一个较新的课题。事实上,基于SLA的基础设施服务提供商、软件服务提供商以及服务(传统意义上的,与前两者区分开来)提供商三者没有本质上的区别,可以实现相似或者一致的管理[8]。
3 服务水平协议(SLA)
SLA是关于网络服务供应商和客户间的一份合同,其中定义了服务类型、服务质量和客户付款等术语。它能识别用户的需求,提供了易于理解的框架,减少了冲突,并简化了繁杂的过程,是客户与服务提供者之间提供信赖和协商的纽带。SLA@SOI项目组在传统用于网络通信质量管理的SLA的基础上提出了新的概念模型。
SLA@SOI认为,SLA管理的基本过程包括SLA定义、SLA协商、SLA供应、SLA监测、SLA执行。
3.1 SLA定义
SLA@SOI项目组提出的服务级别协议高层关系模型[9]如图2所示。其中涉及到的主要实体有Consumer(客户使用服务并对服务的质量提出需求)、Provider(服务提供方)、Service(承载于服务提供商的某种功能)、SLA、SLA Template(服务水平协议模板)、Protocol(用来描述服务的相关操作及其关系)。
图2 SLA概念模型Fig.2 SLA conceptmodel
从图2中可以看出各个实体之间的关系。一个SLA协议模板可以用来描述一个或多个不同的SLA;一个SLA只能附在一份协议中,从而描述一个服务;一份服务描述模板包括了一个或多个协议,这些协议用来描述服务中包括的操作;一个服务中可以包含一个或多个操作;一个服务描述模板可用来描述多个服务;一个服务提供商可以提供多个服务,而多个服务提供商可能提供相同的服务;一个客户可以调用多个服务提供商的服务,一个提供商向多个客户提供服务。
SLA模板是SLA协商的起点,包括了服务的内容和对服务质量的保证条款,它由服务提供者提供并发布在SLA模板注册中心,供用户方便地查找到各种服务所对应的SLA模板。
SLA的一个主要作用是用来描述对服务质量等参数的约束及其惩罚措施。SLA约束条款有很多种,包括保证条款、商业价值、服务约束、监测策略等。如何设计规范的约束条款是个热点话题。
3.2 协商
协商是指通过一组代理达成让服务需求者和提供者双方共同接受的协议的过程。现有的SLA管理都是基于人工的协商,效率低下。SLA@SOI的目的之一就是提出一种自动协商的方法。
协商策略是在若干代理之间就协议进行协商的方法和依据。SLA的协商策略[10]会受到3个方面的影响:协商协议、协商目标和代理决策模型。协商协议具备固有的复杂性,参与者的模型具有多样性,参与者的数量是不定的。参与协商的有1(C)-1(P)、1(C)-N(P)、M(C)-1(P)、M(C)-N(P)4种情形。M(C)-N(P)情形涉及到多层次的协商,在目前的SLA@SOI模型中尚未讨论。协商目标也是非常复杂的。协商目标一般是指协议中必须满足的参数集(或保证条款),不同的SLA模板所包括的保证条款可能是不一样的。协商目标一般是通过分析与客户对从服务的QoS属性的要求来得到的。代理决策模型包括了参与各方用来决定是否接受或者拒绝协议的决策过程。整个协商过程由若干个协商代理完成。由于可能存在不同层次的SLA,不同的代理模块之间会递归调用。
3.3 供应
在SLA管理框架中,供应模块负责服务的提供和配置活动。不同的服务之间存在依赖关系,那么在部署时间方面也就会存在差异。例如,B服务依赖于A服务,如果B服务在A服务之前部署完毕,就可能出现调用A服务出错的情况,因为A服务可能没有部署成功。在各个服务提供商的服务注册中心或者SLA注册中心中会保存着服务的启动时间(比如软件的启动时间、硬件的配置时间等)。
在协商成功之后,供应模块查询相应注册中心以获得服务的启动时间信息,然后依据SLA中的信息为各个服务设置激活时间,统一调度,依次激活和配置。在供应过程完成后,监测过程就开始了。
3.4 监测
SLA@SOI认为理想的监测器的设计需要满足3个条件[9]。首先,SLA监测应该是基于事件的。基于事件的监测是依赖于基础的事件,比如服务操作调用和返回,这可以被服务执行环境捕捉。这种方式能够很好地满足SLA@SOI的要求——SLA管理框架与提供给客户的解决方案中的服务是完全解耦的。SLA监视框架与捕捉事件服务的分离使运行环境事件对SLA监视框架更加通用。其次,监测模块与SLA框架中的其它模块是解耦的。为了达成这个目标,可以引入事件总线,用来在不同模块之间交换信息,比如监测相关事件信息。最后,内部架构应该是可扩展的,以方便集成新的监测器。服务系统一般会提供多个监测器,用于监测不同的方面,比如功能属性、执行相关属性、响应时间或者服务执行的前置和后置条件。
3.5 响应
响应是对监测过程中发生的事件的处理。在监测过程中,监测器应该能及时发现SLA违例,此时需要足够详细的信息来做出最恰当的行动。这种决策需要从软件层和基础设施层来得到足够详细的信息,以便做出合适的响应。反应模块的能力,其本质上是避免SLA违例和保障合适的客户体验。
为了能够做出适当响应,所需要的消息来源有SLA违例和SLA警告(即将发生SLA违例)两种。
图3 基于SLA的面向服务的基础设施Fig.3 Service oriented infrastructure based on SLA
4 基于SLA的基础设施管理
SLA@SOI提出了基于SLA的基础设施的结构[11,12],如图3所示。
基于SLA的面向服务的基础设施主要分为3个功能模块:基础设施协商和供应模块、资源分配和管理模块以及基础设施通告模块。
基础设施协商和供应管理模块包括SLA转换模块和基础设施部署规划模块两个子功能模块,前者将供给请求转换成抽象的基础设施框架描述,能够潜在支持多种格式的SLA请求。
资源分配和管理模块包括5个子功能模块:基础设施镜像、自动管理(优化)模块、供应管理模块、运行时预测模块、内部提供者。运行时预测服务模块被基础设施部署计划模块调用,用以基于历史和其它可用信息预测实际需要的资源,该模块在面向服务的基础设施中具有非常重要的作用[13]。
基础设施通告模块中只包含唯一一个子功能模块——监测模块。监测模块通过消息总线从内部或外部的资源提供商收到事件,并标准化将其存储到历史仓库,或者传递给订阅该事件的模块。
此外,基础设施中还包含若干信息数据库,比如运行时信息库、历史信息库、商业规则库、策略库、基础设施提供商信息库等。
4.1 协商
在SLA@SOI框架中,基础设施资源是以服务的形式向外提供的。用户与SOI提供商之间通过SLA来协商以获得服务。如图3和图4所示,接收到基础设施管理层提供的SLA后,首先通过SLA转换模块将其转换成iSLA(基础设施层的SLA协议),发送到基础设施部署规划模块,然后后者调用运行时预测服务模块进行预测,如果具备提供能力则接受SLA协议,反之拒绝该SLA协议。
图4 协商过程Fig.4 Agreement process
4.2 供给
在协商成功以后,基础设施供应过程被调用。如图5所示,供应的基本过程是查询、保留、实例化、销毁。首先,基于协商成功的SLA查询基础设施镜像模块,找到对应的虚拟基础设施资源以后,将其标记保留,然后通知供应管理器部署该虚拟基础设施资源,供应管理器通过消息总线分配物理资源,分配结束后,供应管理器在基础设施镜像中更新对应的虚拟基础设施资源。由于这种独特的消息总线的设计,外部的基础设施提供商可以很轻松地插装进来。
图5 供给过程Fig.5 Provision process
4.3 监测
有研究者提出了由SLA驱动的对基于服务的系统进行分层次和递归的监控方法[14],并提出了评估监控能力的方法[15]。从SLA的角度看,监测系统关注客户和基础设施服务提供商两个方面,客户只关心SLA,而服务提供商则关注基于SLA对于基础设施的优化利用。
在基于SLA的基础设施中,监测模块分为3个层次,从低到高分别为数据搜集层(L0)、事件评估层(L1)和服务层(L2),如图6所示。
图6 基于SLA的多层监测架构Fig.6 Multi-levelmonitoring structure based on SLA
数据搜集层主要搜集原始的数据,高层的代理也会选择性地查询数据收集器中的指标数据,这一层还包括基本的过滤和预处理操作,已达成减轻网络传输负载等目标。事件评估层是一个分布式代理的动态网络,在每一个基础设施节点上都会部署这些代理。代理都被联系到单一配置的信道,在这个信道上,服务层监测器发布监测请求。每一个L1层监测器都能核实它是否支持请求规则的确认以及它是否有足够的资源来接受额外的监测。服务层的监测器用来接收用户的监测请求,各个监测器的活动会按照客户的需求而组合起来。每一个L2层监测器包含L1监测器的特定配置,这些配置是动态的。服务层监测器的调用者可能是基础设施层提供商,也可能是服务层提供商,甚至是要求得到协议违例的即时通知的服务客户。服务层一般完成的任务有审核任务、统计任务、自动重构、通知任务、历史信息日志等。
4.4 响应——调整和重新部署
针对监测模块得到事件信息,对应的相应模块会做出相应的行动。在SLA@SOI架构中,如图3所示,响应消息是通过内部或者外部的消息总线传递给相应的响应模块的。在监测到SLA违例或者SLA警告时,需要进行调整和重现部署。这种调整和重新供给的类型随着使用的基础设施和应用程序或服务架构的不同而不同。典型的场景是:保存虚拟机的镜像并在另一台可能的虚拟机上重新运行,也可能在不同的硬件上运行;动态调整虚拟机上的CPU时间片分配。在这个过程中的,一种完美的设计是实时迁移,它要求虚拟机能从一个物理机转移到另一个,却不会停止服务,因此它对客户而言没有停止时间。然而实时迁移并非毫无代价,它可能在迁移过程中临时减少宿主服务的执行。而且实时迁移的时间可能是巨大的,这取决于虚拟机的大小和网络的带宽。
5 未来的研究方向
在SLA@SOI的研究中,提出了很多有价值的新概念。SLA@SOI提出了基于SLA的SOI架构、基于SLA的SOA架构等,还提出了独立的监测模块的思想,提出了运行时预测的框架和思想。然而,研究中还存在一些问题有待解决。
5.1 SLA转换
所谓SLA转换就是将一个层次的SLA转换成另一个层次的SLA的过程。SLA转换通常存在于面向服务的多层体系架构中,它在整个SLA驱动的IT
服务体系架构管理中有着核心作用。
在面向服务的多层体系架构中,不同的层次都有着各自的识别和理解的SLA,SLA需要在不同的层次之间进行转换。比如用户向服务提供商要求一项计算服务,与服务提供商协商一份SLA。这份SLA中的约束条款在服务层可能意味着响应时间,在软件服务层就意味着软件的算法复杂度,在基础设施服务层也许就意味着几个虚拟CPU核。最容易理解的是高层的SLA转换成底层的SLA。
在实际应用中还要复杂得多,比如可能需要底层的SLA来转换成上层的SLA,这种情况一般多用于设计时或运行时的分析预测。对于SLA转换的研究工作还面临很大的挑战[16]。
5.2 基于SLA的协商代理决策模型
在SLA协商阶段,协商代理决策模型帮助相应的代理方做出协商的相关决定,完成自动协商过程。它能辅助决定接受或是拒绝SLA,也能向其它代理自动发起SLA供应或者请求动作,在智能(自动)协商方面具有非常重要的作用。
代理决策模型的实现也存在一些难点[9],比如,如何为协商目标定义可接受的范围约束,如何基于范围约束自动生成SLA供给和请求,如何制定反应策略等。Constantinos Kotsokalis等人提出[17]了用二叉决策树来对SLA建模,以辅助协商决策,取得了一些成果。
5.3 与其它云框架之间的交互
由于云计算的理论远未成熟,各个机构都推出了自己的云计算框架,其中较为突出的有Amazon EC2、IBM的RESERVOIR等。如何在不同的云框架之间建立良好的交互是一个很新且具有实际价值和理论意义的研究课题。
SLA@SOI框架具有良好的可靠性、可预测性和可伸缩性。Thijs Metsch等[18]提出了一种让SLA@SOI框架与RESERVOIR交互的理论方法。如图7所示,在SLA@SOI框架中的供应模块和RESERVOIR框架的虚拟运行环境管理层的外部封装一层OCCI(开放云计算接口)的标准接口。iSLA管理层还发挥着中介的作用,既能访问SLA@SOI中的供应模块,也能访问RESERVOIR中封装了OCCI接口的虚拟运行环境管理层的基础设施资源。同时,监测也能通过OCCI的接口来完成。这样,两种云框架就实现了成功交互。
图7 SLA@SOI与RESERVOIR之间的交互Fig.7 Interaction between SLA@SOIand RESERVOIR
新的架构带来一些其它的新课题,比如如何在高可伸缩、动态重构的环境中进行系统测试等,这些都有待于进一步的研究。
[1]Kevin Jackson.A Tactical Cloud Computing Ontology[EB/OL].2009-04-14[20011-03-10].http://cloudcomputing.sys-con.com/node/892868.
[2]Momm C,Gebhart M,Abeck S.A Model-Driven Approach for Monitoring Business Performance inWeb Service Compositions[C]//Proceedings of the Fourth International Conference on Internet and Web Applications and Services.Venice/Mestre,Italy:IEEE,2009:343-350.
[3]SLA@SOI.Deliverable D.B9a ProjectWeb Site[EB/OL]. 2008-06-30[20011-03-10].http://sla-at-soi.eu/wp-content/uploads/2009/07/db9a-project-website.pdf.
[4]SLA@SOI.D.B9b Dissemination Plan[EB/OL].2008-11-30[20011-03-10].http://sla-at-soi.eu/wpcontent/uploads/2009/07/db9b-dissemination-plan.pdf.
[5]Theilmann W,Baresi L.Multi-level SLAs for Harmonized Management in the Future Internet[M].Amsterdam,Netherlands:IOSPress,2009:193.
[6]SLA@SOI.D.A3a-M12 SLA-aware Service Management[EB/OL].2009-05-31[20011-03-10].http://slaat-soi.eu/wp-content/uploads/2009/10/D.A3a-M12-SLA-aware-Service-Management.pdf.
[7]SLA@SOI.D.A1a M12 Framework Architecture[EB/OL]2009-05-31[20011-03-10].http://sla-at-soi.eu/wp-content/uploads/2009/07/D.A1a-M12-Framework-Architecture.pdf.
[8]Theilmann W,Yahyapour R,Butler J.Multi-level SLA Management for Service-Oriented Infrastructures[J].Towards a Service-Based Internet,2008,5377:324-335.
[9]SLA@SOI.D.A5a M12 SLA Foundations and Management[EB/OL].2009-05-31[20011-03-10].http://slaat-soi.eu/wp-content/uploads/2009/10/D.A5a-M12-SLA-Foundations-and-Management.pdf.
[10]Jennings N R,Faratin P,Lomuscio A R,et al.Automated negotiation:prospects,methods and challenges[J].Group Decision and Negotiation,2001,10(2):199-215.
[11]Yih Leong Sun,et al.SLA-aware Resource Management[R/OL].2009-10-13[2011-03-10].http://slaat-soi.eu/wp-content/uploads/2008/12/SLA-aware-Resource-Management-Presentation.pdf.
[12]SLA@SOI.D.A4a M12 SLA Aware Infrastructure Management[R/OL].2009-07-31[2011-03-10].http://sla-at-soi.eu/wp-content/uploads/2009/07/D.A4a-M26-SLAAwareInfrastructureManagement.pdf.
[13]SLA@SOI.Deliverable D.A6a Predictable/Manageable Service Engineering Methodology and Prediction Services[R/OL].2009-07-31[2011-03-10].http://slaat-soi.eu/wp-content/uploads/2009/07/D.A6a-M26 -PredictableServiceEngineeringMethodology.pdf.
[14]ComuzziM,SpanoudakisG.A framework for hierarchicaland recursivemonitoring of service based systems[C]//Proceedings of2009 Fourth International Conference on Internetand Web Applications and Services.Venice/Mestre,Italy:IEEE,2009:383-388.
[15]ComuzziM,Spanoudakis G.Describing and Verifying Monitoring Capabilities for SLA-Driven Service Based Systems[C]//Proceedingsof the Forum at the CAiSE.Amsterdam,The Netherlands:IEEE,2009.
[16]Hui Li.Challenges in SLA Translation[R/OL].2009-12 -01[2011-03-10].http://sla-at-soi.eu/wpcontent/uploads/2009/12/ChallengesInSLATranslation.pdf.
[17]Kotsokalis C,Yahyapour R,Rojas Gonzalez M A.Modeling Service Level Agreements with Binary Decision Diagrams[C]//Proceedings of the 7th International Joint Conference on Service-Oriented Computing.Stockholm,Sweden:IEEE,2009:190-204.
[18]Thijs Metsch,Andy Edmonds.Using Cloud Standards for Interoperability of Cloud Frameworks[R/OL].2010-04-10[2011-03-10].http://sla-at-soi.eu/wp-content/uploads/2010/04/RESERVOIR-SLA@SOI-interop -techReport.pdf.
HE Jian-hong was born in Hubei Province,in 1985.He is now an assistant engineer and also a graduate student.His research concerns software engineering.
Email:hejh031985@gmail.com
白晓颖(1973—),女,辽宁人,清华大学计算机科学与技术系副教授,主要研究方向为软件工程、软件测试和面向服务的结构;
BAIXiao-ying was born in Liaoning Province,in 1973.He is now an associate professor.Her research interests include software engineering,software testing,and service oriented architecture.
李润玲(1972—),女,陕西人,硕士,工程师,主要从事航空仪表和自动飞行控制方面的研究;
LIRun-ling was born in Shaanxi Province,in 1972.She is now an engineer with the M.S.degree.Her research concerns aircraft instrumentation and automatic flight control.
崔智社(1966—),男,陕西人,博士,高级工程师,主要研究方向为指挥信息系统、数据链等。
CUIZhi-she was born in Shaanxi Province,in 1966.He is now a senior engineerwith the Ph.D.degree.His research concerns command information system and data link.
Service Oriented Infrastructures Based on SLA
HE Jian-hong1,3,BAIXiao-ying1,LIRun-ling2,CUIZhi-she3
(1.Department of Computer Science and Technology,Tsinghua University,Beijing 100084,China;2.Military Representative Office for 232 Factory,Beijing 100081,China;3.Communication,Navigation and Command Automation Institute,Equipment Academy of Air Force,Beijing 100081,China)
SOI/IaaS refers to the provision model of service oriented infrastructure(SOI),which is an important foundation for cloud services,while service level agreement(SLA)has become a booster of SOI.This paper introduces the research of SLA@SOIgroup with emphasis on the idea of SLA and the framework of SOIbased on SLA,then summarizes the basic principles and processes of SOImanagementbased on SLA.Finally,itanalyses the future development of SLA@SOI.The study of SLA@SOIgroup has important significance on cloud computing.
cloud computing;service level agreement;service oriented infrastructure;IaaS;provisionmodel
TP3
A
10.3969/j.issn.1001-893x.2011.09.021
何剑虹(1985—),男,湖北人,助理工程师,清华大学计算机科学与技术系硕士研究生,主要研究方向为软件工程;
1001-893X(2011)09-0100-06
2011-05-06;
2011-06-07