高级软件工程-欢迎访问北京大学信息学院软工所

上传人:xmg****18 文档编号:112588873 上传时间:2019-11-06 格式:PPT 页数:86 大小:2.63MB
返回 下载 相关 举报
高级软件工程-欢迎访问北京大学信息学院软工所_第1页
第1页 / 共86页
高级软件工程-欢迎访问北京大学信息学院软工所_第2页
第2页 / 共86页
高级软件工程-欢迎访问北京大学信息学院软工所_第3页
第3页 / 共86页
高级软件工程-欢迎访问北京大学信息学院软工所_第4页
第4页 / 共86页
高级软件工程-欢迎访问北京大学信息学院软工所_第5页
第5页 / 共86页
点击查看更多>>
资源描述

《高级软件工程-欢迎访问北京大学信息学院软工所》由会员分享,可在线阅读,更多相关《高级软件工程-欢迎访问北京大学信息学院软工所(86页珍藏版)》请在金锄头文库上搜索。

1、高级软件工程,云计算与平台即服务,北京大学软件研究所 魏豪,主要内容,第一部分 :云计算 第二部分:SASE云时代的软件工程 第三部分:SASEPSASE的一个具体实现,第一部分 云计算,Just A Joke,一个大学生勤工兼学,办了个路边摊卖东西,因为数学基础好,不带计算器,习惯动作抬头望天,用心算计算钱数。顾客纷纷掏出计算器验证,发现这个大学生从来没出过错,顾客们都大为惊讶,于是他们也抬头望天,惊恐地问到:“莫非这是传说中的云计算?”,什么是云计算,云计算是一个崭新的互联网概念 云计算是一次互联网应用的革新 云计算代表了互联网发展的趋势 云计算综合使用了大量的现有技术 云计算体现了IT服

2、务化的思想,云计算是一个崭新的概念,云计算目前还没有得到公认的明确的定义 Berkeley的观点:Cloud Computing refers to both the applications delivered as services over the Internet and the hardware and systems software in the datacenters that provide those services.,不同组织对云计算的定义,Wiki 云计算是一种基于互联网的计算方式,通过互联网上异构、自治的服务为个人和企业用户提供按需即取的计算。云计算的资源是动态易扩

3、展而且虚拟化的,终端用户不需要了解云中基础设施的细节,只关注自己需要什么样的资源以及如何得到相应的服务。,不同组织对云计算的定义,IBM 云计算是一种计算形式,其基础是用公有或私有网络实现服务、软件及处理能力的交付。云计算本身也是一种实现基础设施共享的方式,云服务使用者看到的只有服务的本身,而不用关心相关基础设施的具体实现。,不同组织对云计算的定义,NIST(美国国家标准及技术研究所,信息技术实验室 ) 云计算是一个模型,这个模型可以方便地按需访问一个可配置的计算资源(例如,网络、服务器、存储设备、应用程序以及服务)的公共集。这些资源可以被迅速提供并发布,同时最小化管理成本或服务提供商的干涉。

4、云模型由五个特征、三个服务模型和四个发布模型组成,如此使以上成为可能。,NIST:云计算的基本特征,按需自助服务。 随时随地的网络访问。 资源共享。 快速的可伸缩性。 可度量的服务。,NIST:服务模型和发布模型,服务模型: 软件即服务 (SaaS) 平台即服务 (PaaS) 架构即服务 (IaaS 发布模型: 私有云 社区云 公有云 混合云,云计算的关键特征,基于互联网 面向服务 按需配置和共享资源 动态可扩展 实现细节透明化,云计算的主要特点,资源高度集中 大量的硬件、大量的软件、大量的数据 以在线形式向用户提供服务 资源利用率高 用户使用方便 接入简单(本地用最小化的设施,浏览器) 数目

5、处于不断变化之中 要求服务质量高,云计算是互联网应用的革新,信息技术的四次革新 计算机商用化(IBM360系列) 个人计算机 移动通信和互联网 云计算的兴起,云计算代表了互联网发展的趋势,云计算的优势 更加低廉的用户设备开销 更高的性能 更少的维护性能 更低的软件成本 实时的软件更新 强大的运算能力 无限的存储空间 增强的数据安全 方便的共享与协作 不依赖于特定的设备,制约云计算发展的因素 需要持久的因特网连接 低速连接会降低用户体验 功能有可能受限 获取用户的信任需要长时间的努力,云计算能得到想象中的发展吗,互联网接入方式的多样性提高了云计算网络连接的持久性问题 吉比特以太网逐渐成为主流 光

6、纤接入的范围不断扩大 继3G移动网络之后,基于LTE的4G网络登上了历史舞台 街头巷尾开始出现大量的wifi热点 智能移动设备的出货量超过了个人计算机,客户端服务器合作模式的发展逐步减少了基于云的服务的功能局限性 RIA(Rich Internet Application)大幅度提高了WEB应用的用户体验 Flash(Flex) SlivaLight iOS App Store、Goole App Store HTML5,互联网接入速度的提高保证了云计算的用户体验 吉比特以太网:100MB/s 3G、3.5G移动网络:1-2MB/s 4G LTE移动网络:50MB/s Wifi:60MB/s(

7、802.11n),云计算一定能够获得用户的信任 我的数据安全吗? 安全,存储在云供应商服务器上的数据,就像存在银行里的钱一样安全。 云计算能节省我的成本吗? 能,IT设施的使用有规模效益。 我能够随时随地享受云计算的服务吗? 只要你能够随时随地地访问互联网,在这个移动通信高速发展的时代,这似乎并不困难。,云计算综合使用了大量的现有技术,分布式存储和计算 规模更大,密度更高,能力更强 硬件虚拟化 层次更丰富,效率更高 资源隔离 粒度更细,扩展性更强 服务驱动 以面向服务的思想为基础,扩展了SaaS,在其基础上发展出了XaaS,云计算体现了IT服务化的思想,云计算的三种基本服务模式 IaaS:In

8、frastructure as a Service,基础设施即服务。服务的提供者将计算机基础设施作为计量服务提供给用户。 PaaS:Platform as a Service,平台即服务。服务的提供者将软件应用的开发环境、运行环境等作为计量服务提供给用户。 SaaS:Software as a Service,软件即服务。服务的提供者将应用软件部署在服务器上,用户根据需求通过互联网访问应用并获得服务。,基础设施即服务,服务的提供者将IT设基础设施资源的利用作为服务提供给用户,这些资源通常包括处理器资源、存储资源、网络带宽等。用户可以在这些基础设施上部署和运行软件,包括操作系统和应用软件。 Am

9、azon的EC2是一个典型的IaaS,通过互联网访问,向用户提供按需计费的计算能力和存储空间。 Amazon的AWS是一个新的IaaS,可以直接向用户提供基于VMware的虚拟机,支持windows和Linux等操作系统。,平台即服务,服务的提供者把应用程序的开发和运行环境作为一种服务提供给用户,用户在平台的基础上开发或者部署自己的应用程序,并借助平台的服务器通过互联网交付给应用程序的最终用户。PaaS可以给企业或个人提供研发的中间件平台如数据库、应用服务器等资源。 典型的PaaS平台有GAE、F等。,Google App Engine,Google App Engine提供了一个集成的应用开

10、发环境,提供对Java和Python的支持。利用Google提供的开发工具,可以构建易于构建、易于维护、易于扩展的应用。 Google App Engine的环境具有以下特征: 动态的Web服务。 具有查询、分类和实物存储的持久存储能力。 自动扩展和自动负载平衡 基于Google API的单点登录机制,Force.Com,SalesForce为Force.Com平台提供了一套完整的API和开发工具集,以登录次数为单位进行计费。 Force.Com提供了AppExchange机制,AppExchange是一个以Web为基础的应用的目录,提供应用软件的分享、授权和销售接口。,软件即服务,软件即服务

11、是最普遍的一类服务模式。服务的提供者将软件应用部署在服务器上,通过互联网分发给最终用户。用户往往不再为“拥有”软件支付费用,而是为“使用”软件支付费用。 服务的提供者所服务的每一个个人或者组织被称之为“租户”,这种配置模式被称为多租户架构。服务的提供者的资源被虚拟地划分为多个部分,使得每个租户都可以利用定制的实例进行工作。 对于最终用户来说,使用SaaS无需前期的服务器或者软件许可投资。对于应用的开发者来说,只需要为多个客户端维护一个应用。,典型的SaaS无处不在,第二部分 SASE 云时代的软件工程,软件工程能否从云计算中获益?,本地开发的软件需要部署到云中 部署的困难 能否直接在云中开发

12、开发工具也是软件 将开发工具部署到云里会怎么样 代码直接在云里,服务支持的软件开发方法,面向构件的,软件开发方法,服务化的软件,面向行业领域的软件,支持软件开发的工具软件,软件开发方法,发展,面向对象的,软件开发方法,面向过程的,软件开发方法,面向服务的软件开发,面向服务的软件开发方法,服务支持的软件开发方法,服务提供者角色的分化,平台的提供者 工具服务收集与管理,通过使用各种类型的优化技术,为大量的、数目不断变化的用户提供高质量的服务,并提高平台中硬件、数据、能源等各类资源的利用率 服务的监测与分析、决策与控制是核心研究内容 与进程的调度是传统操作系统的核心相类似 审核与部署、挖掘及推荐是软

13、件服务管理平台特有的研究内容 与传统操作系统不同,服务运营平台不仅需要掌握资源的动态信息,还要记录服务的访问历史信息(例如,什么时候、被什么用户访问过,效果如何,对系统资源的消耗如何,等等),并掌握关于用户总体甚至特定用户的大量信息,以提供优质的、个性化的服务,服务的开发者 软件开发与演化过程,开发符合云平台规范的工具 支持用户直接使用 支持程序调用 挖掘用户使用习惯 完善工具 新工具 参与云平台的高层管理,服务的消费者 组合、构造适合自己的WEB IDE,IDE不再“千人一面” 集成不同功能的工具 支持完整的软件生命周期管理 集成多个类似功能的工具 提高服务的质量 集成服务化的工具与本地工具

14、 合理地利用服务,SASE的优势,服务化带来的一般性优势 不用本地安装 维护、升级简单 编程 协同: Bepsin 制导:大量习惯用法、利用其它人的编程技巧 编译 云中收集大量的程序库,工具的配置 开发人员比较方便地配置自己的开发环境 工具的测试 使用过程是最好的测试 永远处于测试中! 工具的演化 服务运行平台可以很方便地为服务化的软件收集到运行相关的信息 对于后续维护、升级等演化活动非常有价值,SASE发展面临的挑战,技术挑战:不是简单的工具 web 化! SASE特有的: 新的协作方式 更高起点:开发环境与运行环境的接近 协同编程:项目成员间更密切的显式合作 深度复用:项目之间更丰富的隐式

15、合作 远程调试:资源不在本地 受限测试: 有喜有忧 细致部署:侧重点的转移,SaaS共有的:集中的管理与挖掘 静态分析:老技术、新需求 动态监测:日趋重要 优化控制:好说难做 挖掘推荐:潜力无限 浏览器图形图像处理能力的局限性 Flex HTML5,更高起点:开发平台与运行平台接近,创建项目时得到更多的支持 面向领域(数据模型、领域模型) 更明确的引导 更丰富的代码框架 因为IDE掌握运行平台细节 传统分发的模式 IDE 开发者难以详细地假定应用开发者、系统实际运行的环境,协同编程:项目成员间更密切的合作,项目级并发 SVN:同时编辑同一项目中的不同文件 任务分配、进展监控 文件级并发 协同编

16、辑:同时编辑同一文件中的不同方法 极限编程:异地结对进行? 项目组内更多的实时协作 组内成员的活动,深度复用:项目之间的隐式合作,复用编码习惯 推荐使用公共类中某些方法 推荐联合使用公共类库 复用缺陷模式 避免常见的不当用法 基于编程动作挖掘 传统方法收集困难 云环境中收集方便,远程调试:设施不在本地,大量的交互 够快吗? 陌生的平台 能多深入?底层改动不了?涉及硬件信息? 潜在的风险 是否会有残留信息到上线? 协同的调试 如何共享项目组其他成员的信息?,受限测试:有喜有忧,永远处于测试 用户体验 错误发送 开发者 不能过分影响其它服务的运行 不能对服务系统进行压力测试 避免影响上线后的系统 开发环境与部署环境的接近 消费者 有时需要支付服务费用,有时不能做全程测试? 可以通过服务的方式获取待测对象的历史运行数据,以判断待测对象是否与自己的需求相匹配,提供 更完备的代码框架 作为 更高的编程起点,促进 文件级并发编程 超越 SVN,开发环境与 运行环境的接近,项目组成员之

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号