高级软件工程 云计算与平台即服务_第1页
高级软件工程 云计算与平台即服务_第2页
高级软件工程 云计算与平台即服务_第3页
高级软件工程 云计算与平台即服务_第4页
高级软件工程 云计算与平台即服务_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

高级软件工程云计算与平台即服务主要内容第一部分:云计算第二部分:SASE——云时代的软件工程第三部分:SASEP——SASE的一个具体实现第一部分云计算JustAJoke一个大学生勤工兼学,办了个路边摊卖东西,因为数学基础好,不带计算器,习惯动作抬头望天,用心算计算钱数。顾客纷纷掏出计算器验证,发现这个大学生从来没出过错,顾客们都大为惊讶,于是他们也抬头望天,惊恐地问到:“莫非这是传说中的云计算?”什么是云计算云计算是一个崭新的互联网概念云计算是一次互联网应用的革新云计算代表了互联网发展的趋势云计算综合使用了大量的现有技术云计算体现了IT服务化的思想云计算是一个崭新的概念云计算目前还没有得到公认的明确的定义Berkeley的观点:CloudComputingreferstoboththeapplicationsdeliveredasservicesovertheInternetandthehardwareandsystemssoftwareinthedatacentersthatprovidethoseservices.不同组织对云计算的定义Wiki云计算是一种基于互联网的计算方式,通过互联网上异构、自治的服务为个人和企业用户提供按需即取的计算。云计算的资源是动态易扩展而且虚拟化的,终端用户不需要了解云中基础设施的细节,只关注自己需要什么样的资源以及如何得到相应的服务。不同组织对云计算的定义IBM云计算是一种计算形式,其基础是用公有或私有网络实现服务、软件及处理能力的交付。云计算本身也是一种实现基础设施共享的方式,云服务使用者看到的只有服务的本身,而不用关心相关基础设施的具体实现。不同组织对云计算的定义NIST(美国国家标准及技术研究所,信息技术实验室)云计算是一个模型,这个模型可以方便地按需访问一个可配置的计算资源(例如,网络、服务器、存储设备、应用程序以及服务)的公共集。这些资源可以被迅速提供并发布,同时最小化管理成本或服务提供商的干涉。云模型由五个特征、三个服务模型和四个发布模型组成,如此使以上成为可能。NIST:云计算的基本特征按需自助服务。随时随地的网络访问。资源共享。快速的可伸缩性。可度量的服务。NIST:服务模型和发布模型服务模型:软件即服务(SaaS)平台即服务(PaaS)架构即服务(IaaS发布模型:私有云社区云公有云混合云云计算的关键特征基于互联网面向服务按需配置和共享资源动态可扩展实现细节透明化云计算的主要特点资源高度集中大量的硬件、大量的软件、大量的数据以在线形式向用户提供服务资源利用率高用户使用方便接入简单(本地用最小化的设施,浏览器)数目处于不断变化之中要求服务质量高云计算是互联网应用的革新信息技术的四次革新计算机商用化(IBM360系列)个人计算机移动通信和互联网云计算的兴起云计算代表了互联网发展的趋势云计算的优势更加低廉的用户设备开销更高的性能更少的维护性能更低的软件成本实时的软件更新强大的运算能力无限的存储空间增强的数据安全方便的共享与协作不依赖于特定的设备制约云计算发展的因素需要持久的因特网连接低速连接会降低用户体验功能有可能受限获取用户的信任需要长时间的努力云计算能得到想象中的发展吗互联网接入方式的多样性提高了云计算网络连接的持久性问题吉比特以太网逐渐成为主流光纤接入的范围不断扩大继3G移动网络之后,基于LTE的4G网络登上了历史舞台街头巷尾开始出现大量的wifi热点智能移动设备的出货量超过了个人计算机客户端服务器合作模式的发展逐步减少了基于云的服务的功能局限性RIA(RichInternetApplication)大幅度提高了WEB应用的用户体验Flash(Flex)SlivaLightiOSAppStore、GooleAppStoreHTML5互联网接入速度的提高保证了云计算的用户体验吉比特以太网:100MB/s3G、3.5G移动网络:1-2MB/s4GLTE移动网络:50MB/sWifi:60MB/s(802.11n)云计算一定能够获得用户的信任我的数据安全吗?安全,存储在云供应商服务器上的数据,就像存在银行里的钱一样安全。云计算能节省我的成本吗?能,IT设施的使用有规模效益。我能够随时随地享受云计算的服务吗?只要你能够随时随地地访问互联网,在这个移动通信高速发展的时代,这似乎并不困难。云计算综合使用了大量的现有技术分布式存储和计算规模更大,密度更高,能力更强硬件虚拟化层次更丰富,效率更高资源隔离粒度更细,扩展性更强服务驱动以面向服务的思想为基础,扩展了SaaS,在其基础上发展出了XaaS云计算体现了IT服务化的思想云计算的三种基本服务模式IaaS:InfrastructureasaService,基础设施即服务。服务的提供者将计算机基础设施作为计量服务提供给用户。PaaS:PlatformasaService,平台即服务。服务的提供者将软件应用的开发环境、运行环境等作为计量服务提供给用户。SaaS:SoftwareasaService,软件即服务。服务的提供者将应用软件部署在服务器上,用户根据需求通过互联网访问应用并获得服务。基础设施即服务服务的提供者将IT设基础设施资源的利用作为服务提供给用户,这些资源通常包括处理器资源、存储资源、网络带宽等。用户可以在这些基础设施上部署和运行软件,包括操作系统和应用软件。Amazon的EC2是一个典型的IaaS,通过互联网访问,向用户提供按需计费的计算能力和存储空间。Amazon的AWS是一个新的IaaS,可以直接向用户提供基于VMware的虚拟机,支持windows和Linux等操作系统。平台即服务服务的提供者把应用程序的开发和运行环境作为一种服务提供给用户,用户在平台的基础上开发或者部署自己的应用程序,并借助平台的服务器通过互联网交付给应用程序的最终用户。PaaS可以给企业或个人提供研发的中间件平台如数据库、应用服务器等资源。典型的PaaS平台有GAE、F等。GoogleAppEngineGoogleAppEngine提供了一个集成的应用开发环境,提供对Java和Python的支持。利用Google提供的开发工具,可以构建易于构建、易于维护、易于扩展的应用。Google

AppEngine的环境具有以下特征:动态的Web服务。具有查询、分类和实物存储的持久存储能力。自动扩展和自动负载平衡基于GoogleAPI的单点登录机制Force.ComSalesForce为Force.Com平台提供了一套完整的API和开发工具集,以登录次数为单位进行计费。Force.Com提供了AppExchange机制,AppExchange是一个以Web为基础的应用的目录,提供应用软件的分享、授权和销售接口。软件即服务软件即服务是最普遍的一类服务模式。服务的提供者将软件应用部署在服务器上,通过互联网分发给最终用户。用户往往不再为“拥有”软件支付费用,而是为“使用”软件支付费用。服务的提供者所服务的每一个个人或者组织被称之为“租户”,这种配置模式被称为多租户架构。服务的提供者的资源被虚拟地划分为多个部分,使得每个租户都可以利用定制的实例进行工作。对于最终用户来说,使用SaaS无需前期的服务器或者软件许可投资。对于应用的开发者来说,只需要为多个客户端维护一个应用。典型的SaaS无处不在第二部分SASE

——云时代的软件工程软件工程能否从云计算中获益?本地开发的软件需要部署到云中部署的困难能否直接在云中开发开发工具也是软件将开发工具部署到云里会怎么样代码直接在云里服务支持的软件开发方法

面向构件的

软件开发方法

服务化的软件

面向行业领域的软件

支持软件开发的工具软件软件开发方法

发展

面向对象的

软件开发方法

面向过程的

软件开发方法

面向服务的软件开发

面向服务的软件开发方法服务支持的软件开发方法服务提供者角色的分化平台的提供者

——工具服务收集与管理通过使用各种类型的优化技术,为大量的、数目不断变化的用户提供高质量的服务,并提高平台中硬件、数据、能源等各类资源的利用率服务的监测与分析、决策与控制是核心研究内容与进程的调度是传统操作系统的核心相类似审核与部署、挖掘及推荐是软件服务管理平台特有的研究内容与传统操作系统不同,服务运营平台不仅需要掌握资源的动态信息,还要记录服务的访问历史信息(例如,什么时候、被什么用户访问过,效果如何,对系统资源的消耗如何,等等),并掌握关于用户总体甚至特定用户的大量信息,以提供优质的、个性化的服务服务的开发者

——软件开发与演化过程开发符合云平台规范的工具支持用户直接使用支持程序调用挖掘用户使用习惯完善工具新工具参与云平台的高层管理服务的消费者

——组合、构造适合自己的WEBIDEIDE不再“千人一面”集成不同功能的工具支持完整的软件生命周期管理集成多个类似功能的工具提高服务的质量集成服务化的工具与本地工具合理地利用服务SASE的优势服务化带来的一般性优势不用本地安装维护、升级简单编程协同:Bepsin制导:大量习惯用法、利用其它人的编程技巧编译云中收集大量的程序库工具的配置开发人员比较方便地配置自己的开发环境工具的测试使用过程是最好的测试永远处于测试中!工具的演化服务运行平台可以很方便地为服务化的软件收集到运行相关的信息对于后续维护、升级等演化活动非常有价值SASE发展面临的挑战技术挑战:不是简单的工具web化!SASE特有的:新的协作方式更高起点:开发环境与运行环境的接近协同编程:项目成员间更密切的显式合作深度复用:项目之间更丰富的隐式合作远程调试:资源不在本地受限测试:有喜有忧细致部署:侧重点的转移SaaS共有的:集中的管理与挖掘静态分析:老技术、新需求动态监测:日趋重要优化控制:好说难做挖掘推荐:潜力无限浏览器图形图像处理能力的局限性FlexHTML5更高起点:开发平台与运行平台接近创建项目时得到更多的支持面向领域(数据模型、领域模型)更明确的引导更丰富的代码框架因为IDE掌握运行平台细节传统分发的模式IDE开发者难以详细地假定应用开发者、系统实际运行的环境协同编程:项目成员间更密切的合作项目级并发SVN:同时编辑同一项目中的不同文件任务分配、进展监控文件级并发协同编辑:同时编辑同一文件中的不同方法极限编程:异地结对进行?项目组内更多的实时协作组内成员的活动深度复用:项目之间的隐式合作复用编码习惯推荐使用公共类中某些方法推荐联合使用公共类库复用缺陷模式避免常见的不当用法基于编程动作挖掘传统方法收集困难云环境中收集方便远程调试:设施不在本地大量的交互够快吗?陌生的平台能多深入?底层改动不了?涉及硬件信息?潜在的风险是否会有残留信息到上线?协同的调试如何共享项目组其他成员的信息?受限测试:有喜有忧永远处于测试用户体验错误发送开发者不能过分影响其它服务的运行不能对服务系统进行压力测试避免影响上线后的系统开发环境与部署环境的接近消费者有时需要支付服务费用,有时不能做全程测试?可以通过服务的方式获取待测对象的历史运行数据,以判断待测对象是否与自己的需求相匹配提供更完备的代码框架作为更高的编程起点促进文件级并发编程超越SVN开发环境与运行环境的接近项目组成员之间逻辑距离更近项目之间更多的复用在线测试信息收集方便挖掘、推荐编程风格收集、整理领域知识挖掘缺陷模式提示演化方向工具软件服务化框架生成编程调试静态分析测试维护细致部署:侧重点的转移RightScale:拓扑结构、调优、规划部署环境与开发环境非常接近比传统本地开发然后部署到服务器上的方法快相近的应用服务可以共享公共库节省存储在哪里运行?物理节点、虚拟机多少个实例?提高服务质量如何动态调整?热升级热迁移静态分析:老技术、新需求Safety:避免不必要的资源占用内存泄漏死循环Security安全漏洞保护用户私密数据资源占用:支持合理部署、调度服务预计CPU占用预计内存占用预计磁盘占用预计网络带宽占用动态监测:日趋重要资源使用信息服务信息是否存活?运行正常?响应时间?资源占用?访问安全?图形化显示QianxiangWang,JinShao,FangDeng,YonggangLiu,MinLi,JunHan,andHongMei,AnOnlineMonitoringApproachforWebServiceRequirements,IEEETransactionsonServicesComputing,No.3(Oct-Dec),2009.优化控制:好说难做修改配置停止启动升级迁移JeffereyKephart,DavidChess,TheVisionofAutonomicComputing,IEEEComputer,Jan.2003挖掘推荐:潜力无限服务、用户、资源自动获取某段时间内最受欢迎的服务访问次数最多成功提供服务的次数最多自动获得用户的使用偏好信息地区、时间编码习惯自动获得大量的出错信息为维护、演化提供支持GuangtaiLiang,LingWu,QianWu,QianxiangWang,TaoXie,HongMei,AutomaticConstructionofanEffectiveTrainingSetforPrioritizingStaticAnalysisWarnings,toappearinInternationalConferenceonAutomatedSoftwareEngineering(ASE)2010面向服务特征的运行管理进程调度、内存管理等资源状况CPU内存IO……提高资源利用率方便用户使用服务部署、配置、迁移等提高资源利用率提高用户满意度资源状况可用程度忙闲程度带宽可靠性……静态分析动态监测服务特征服务间关系运行时间健壮性用户量……其它问题工具服务的形式用户通过web页面使用程序通过服务接口调用用户的习惯云与端结合?与本地代码的同步?应用挑战软件开发者对于代码放在云里放心吗?如何让用户平滑过渡过来?云安全:谁为可能出现的问题负责?更多的角色层次:云平台管理者、工具管理者、项目管理者、编程人员找谁处理?实践现状你已经在使用大量的云了网络搜索:googlesearch电子邮件:gmail查病毒:自动更新病毒库云输入:自动更新常用输入你甚至可能已经有过“云开发”的经历了CVS、SVNIssueTracker谁在探索MicrosoftIBMOnlineIDEMozilaBespinZohoCreatorECCODelftUniversity:Adinda……VMWare+Salefore:VMforce中国移动:我们的实践WebIDE:WebIDE软件工程服务平台:SASEP第三部分:SASEP

——SASE的一个具体实现SASEP——ByMASS.PKUSASEP概述软件的开发、维护离不开工具软件的支持,例如建模工具、编辑工具、静态分析工具、测试工具等。传统上,这些工具都安装在使用者的本地。随着SaaS逐步为人们所接受,许多开发人员正努力让自己的工具支持基于

web的使用方式。SASEP将大量的服务化软件工具汇聚到一个平台上,为最终的开发人员提供服务化的工具支持。SASEP将软件工程活动作为支持领域,是一个“服务支持的软件工程”(ServiceAidedSoftwareEngineering)的平台。SASEP的总体架构SASEP中对服务的分类SASEP按照服务之间的调用关系将服务分为原子服务与组合服务。原子服务是指不需要调用其他服务就可以独立运行的服务。目前SASEP运行了很多的原子服务,比如代码静态分析类服务中的PMD,Findbugs等。组合服务不能独立运行,需要通过对一种或多种其他服务进行调用,并结合自身的业务逻辑来实现某种功能的服务。例如,目前

SASEP上部署的CODAS是SASEP上的一个典型的组合服务实例,它以PMD、Findbugs、JLint等静态分析工具的分析结果为基础,对报出的警告信息进行排序。管理服务的相关信息开发者信息,部署信息,版本信息,组合信息,分类信息等等实现服务部署的半自动化部署前检查、审核,制定部署策略,部署后的升级监测服务的运行状态实时的发现问题并报警动态为服务分配资源利用云的优势将资源利用最大化收集服务的使用情况发现使用者的使用习惯,为开发者提供反馈意见SASEP的管理功能SASEP中的角色SASEP中的角色、模块和实体SASEP中服务的管理对服务的生命周期与活动进行分析原始静态服务调整后的静态服务服务实例建立一个服务管理的框架协助用户部署服务自动寻找符合要求的节点支持用户对服务的管理行为在SASEP中实现框架SASEP服务管理的行为分析用户主导的服务管理框架服务管理系统的体系结构DSAgentDSAgentASAgentASAgentWSAgentWebServerDatabseServerApplicationServerManagerFrontend对Server的管理通过Agent来实施Manager统一调度,指导Agent进行操作系统的前端UI层服务的部署部署策略服务对于资源的占用情况服务对于资源包与服务的依赖情况服务的部署与升级分发服务依赖的相关文件控制请求的转发配置服务的相关配置分析冲突配置替换配置文件服务包代码:war文件=>ApplicationServer数据:sql文件=>DatabaseServer执行sql文件,导入数据规范:数据访问部署前数据库信息(如ip等)是未知的强制要求使用Hibernate或JPA框架由部署程序修改hibernate.cfg.xml和persistent.xml等如果直接使用JDBC,必须从database.xml读取数据库信息Sql文件只允许进行表结构的CRUD以及数据记录的CRUD文件访问:通过定制的sdk进行,不允许直接访问(防止危害系统安全)禁止通过代码调用本地命令禁止通过代码开放端口步骤上传服务包(war+sql):保存在一个统一的仓库中检查服务包(静态分析)规范检查:是否满足规范(数据库、文件、端口等)安全性检查:是否具有恶意代码(死循环、压力测试等)代码依赖完整性检查:是否将使用到的全部第三方lib上传服务特征分析:I/O密集还是计算密集分配DatabaseServer根据负载均衡等策略,选择一个Databaseserver,通知Agent配置数据库(创建用户、创建数据库、导入sql文件)扩展点:数据库集群分配ApplicationServer根据数据库的分配结果,修改数据库配置文件根据负载均衡等策略,选择一个或多个(组成集群)ApplicationServer,通知Agent部署服务代码修改WebServer配置,开放访问服务的URL服务的部署过程DSAgentDSAgentASAgentASAgentWSAgentManagerUploaderwarsqlsqlwar服务包Servicestorage服务的升级基于Web的应用更新频繁一直是Beta版升级中断服务不中断服务(如Google):良好的用户体验理想情况:新版本的服务部署好后,立即停止老版本的服务,所有请求都使用新版本服务制约:部署新版本服务需要一定时间;新版本服务部署好后,老版本服务上保存着之前的请求信息(Session等),需要将这些信息复制到新服务上。实现机制比较复杂用户体验不够平滑次优方案“延迟”升级包含一个过渡期新、老版本服务同时运行老请求使用老服务;新请求使用新服务所有老请求完成后,终止老服务,完成升级技术ApplicationServer的FilterApplicationServer的Session监控目前只涉及服务代码的升级扩展点:数据库升级服务的升级过程ApplicationServerApplicationServerWebServerrule:forwadtooldOldversionserviceUpgradeFilterS2SessionS1AgentAgentManagerrequest1request2NewversionserviceUpgradeBroweserEnablerequest3S3RemoveConfigWebServerrule:forwadtonewrequest4Agent服务的控制运行控制提供服务的运行控制界面以监测为基础的服务运行状态控制访问控制提供文件访问接口通过静态分析发现非法代码通过在线监测捕获非法操作服务的智能调整Agent对服务的运行情况进行监测根据监测结果进行调整服务不可用:重新部署服务空闲:减少资源服务烦忙:增加资源服务异常:删除服务主要工作服务的监测:参数(CPU/内存/IO等)、策略(频度/统计策略等)服务的调整规则和策略:阈值的设定挑战平台上的服务来自不同的提供者,大量服务共享同一个运行环境解决方案部署前的静态分析发现潜在的代码缺陷定义安全策略:比如,不允许使用某些类的某些方法运行时的动态监测监视可疑行为和操作平台的安全性保障服务的静态分析对服务的源代码进行全面的静态分析,并给出详细的分析报告,防止有缺陷的代码被部署到平台上,保护服务的公共运行环境代码违禁调用分析安全类缺陷分析代码低效调用分析资源泄漏分析将在后面的课程中由梁广泰学长展开来讲服务的在线监测提供多角度的监测视图,掌握系统状态系统管理员视图服务提供者视图用户视图通过监测提高系统的可用性和可靠性监测记录帮助调整部署策略监测系统及时发现系统故障对监测信息的挖掘形成推荐信息帮助用户找到感兴趣的服务帮助服务的提供者改进和演化服务将在后面的课程中由邵津学姐展开来讲目前平台概况30多个服务用户自由使用服务注册用户使用服务程序调用服务覆盖软件的各个生命周期阶段分析设计编码测试目前服务的主要贡献者北京大学信息学院软件工程研究所王千

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论