云计算应用的五种技术

一、web技术

1. Web应用的3层模型

  • 表示层:用于表现用户界面。分为客户端和服务器端。
  • 应用层:用于实现应用逻辑。
  • 数据层:有持久性数据存储构成。

2. 基于插件的Web呈现技术

  • Flash
  • Silverlight
  • JavaFX

3. 基于浏览器的Web呈现技术

  • HTML5:实现网页结构与内容描述的扩展,满足功能需求,满足离线使用需求
  • CSS3:页面显示特效,更接近客户端效果
  • Ajax:部分、异步交互数据,避免页面重载导致的不连贯

 云计算呈现技术并不等同于Web技术,也不是实现云服务交付的必需手段,而只是针对SaaS这种交付模型的。

二、多租户技术

1. 目标

使多个用户(租户)在逻辑上同时访问同一个应用。

2. 基本思想

多用户的环境下共用相同的系统或者程序组件,并且确保各个用户数据和操作的隔离性。

3. 多租户技术的7个特点(要求)

(1)使用隔离(usage isolation):一个租户的使用行为不会影响到该应用对其他租户的可用性和性能。

(2)数据安全(data security):租户不能访问其他租户的数据。

(3)可恢复性(recovery):每个租户的数据备份和恢复过程都是分别执行的。

(4)应用升级(application upgrade):共享软件构件的同步升级不会对租户造成负面影响。

(5)可扩展性(scalability):根据现有租户增长的使用需求或租户数量的增加来扩展应用。

(6)使用计费(metered usage):根据租户实际使用的应用处理和功能来收费。

(7)数据层隔离(data tier isolation):租户拥有独立的且与其他租户隔离的数据库、表格和模式。

三、服务技术

1. SOA模型

(1)SOA不太关注如何对应用程序进行模块化构建,更多的是关注如何通过分布式、单独维护和部署的软件组件的集成来组成应用程序。这些通过技术和标准来实现,通过技术和标准使得组件能够更容易地通过网络(尤其是IP网络)进行通信和协作。

(2)3种角色:

  • 服务提供者(Service Provider)
  • 服务请求者(Service Requester/Consumer)
  • 服务代理(Service Registry/Broker/Repository)

(3)1种媒介:服务总线(Service Bus)

(4)3种操作:

  • 发布(Publish)
  • 查找(Discover)
  • 绑定(Bind)

2. 微服务架构(Microservices Architecture)

(1)是一种软件架构风格,通过将传统的单块架构(Monolithic Architecture)的应用拆分成一组细粒度的微服务。

(2)每个微服务运行在独立的进程中,可以单独部署,采用不同的编程语言, 通过语言无关的轻量级的通信机制进行相互调用,实现软件系统的松耦合。

(3)基础框架和组件:

  • 注册中心
  • 服务网关
  • 断路器(容错的保护,服务失效的应急措施)

(4)特性:资源复制、弹性扩展(很好地扩展、组合了各种功能)

(5)微服务技术对云计算的弹性、高可用性等特性的支撑作用:

微服务技术对云计算的弹性的支撑作用:云计算的弹性是一种能力,是指云根据运行时条件或云用户或云提供者事先确定的要求,自动透明地拓展 IT 资源。使用微服务架构,可以将每种服务对应的各个小逻辑和其所需的数据封装起来,这样封装之后每个小的服务模块都可以独立部署和运行,因此可以弹性地扩展每一个小模块,同时还可以弹性组合各个模块的功能,由此说明了微服务技术对云计算的弹性的支撑作用。

微服务技术对云计算的高可用性的支撑作用:高可用性通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。在微服务技术中,每一个微服务都会部署多个服务实例来为客户端提供服务,保证了服务高可用,说明了微服务技术对云计算的高可用性的支撑作用。

四、云数据处理关键技术

1. 分布式协同管理

(1)通过同步机制控制并发操作,避免数据不一致

(2)常用的并发控制方法

  • 基于锁的并发控制:两阶段锁协议、多副本的锁机制
  • 基于时间戳的并发控制:基于全局唯一的时间戳
  • 乐观并发控制机制:尽管可能有多个写操作同时试图写同一个日志位置,但只会有1个成功
  • 基于版本的并发控制

2. Google Chubby并发控制

(1)分布式锁服务,通过文件操作实现锁操作:文件代表锁

(2)主要目标

  • 高可用性、高可靠性
  • 性能、吞吐和空间占用不关心

(3)基本架构:客户端和服务器端,两者通过远程过程调用(RPC)来连接。

客户端每个客户应用程序都有一个Chubby程序库,所有应用都是通过调用这个库中的相关函数来完成。

服务器端又称Chubby单元,一般由五个称为副本(Replica)服务器组成,它们配置上完全一致,且系统开始时处于对等地位。

3. 集群和平台管理

(1)集群的自动化部署:安装配置OS、DFS、分布式计算程序、作业管理软件、系统管理软件等。

(2)集群作业调度:

  • 基于资源管理器调度作业的运行节点和时间
  • Google Work Queue:调度管理MapReduce任务

4. 分布式文件系统

(1)基本特征:容量大、高可靠、高可扩展、适于顺序读

(2)基本需求:数据冗余、异构性、一致性、高效性、安全性

(3)基本架构:

  • 多层次容错
  • 原子操作保证一致性
  • 自动复制
  • 按块存储,并行读取,效率高

(4)HDFS(Hadoop Distributed File System)

  • 容量大
  • 高可靠性、快速访问、高扩展性
  • 针对MapReduce设计:数据尽可能根据其本地局部性进行访问和计算
  • 采用主-从结构(Master/Slave)。NameNode维护集群内的元数据,对外提供创建、打开、删除和重命名文件或目录的功能。DataNode存储数据,并提负责处理数据的读写请求。DataNode定期向NameNode 上报心跳,NameNode通过响应心跳来控制DataNode。

5. 去中心化存储

(1)应用于文件、对象等数据类型

(2)基于一致性哈希的原数据管理:数据ID哈希→节点ID

(3)特点:扩展性好,访问效率高,但路由成本高。

6. 分布式数据库(NoSQL)

(1)NoSQL类型

  • Key-value(K-V数据库):使用键值(key-value)存储的数据库,其数据按照键值对的形式进行组织、索引和存储。
  • Document-based(文档数据库):旨在将半结构化数据存储为文档的一种数据库,通常以JSON或XML格式存储数据。
  • Column-based(列式数据库):以列相关存储架构进行数据存储的数据库,主要适合于批量数据处理和即时查询。
  • Graph-based(图形数据库):应用图像理论存储实体之间的关系信息,解决关系型数据库存储和处理复杂关系型数据功能较弱的问题。
  • (2)优点:
  • 非关系型,不需要表
  • 数据被复制到多个节点,可以进行分区
  • 可水平扩展
  • 成本低,易于实施
  • 适于海量数据写入
  • 快速键值访问

(3)缺点:

  • 不完全支持关系型特征,e.g. join, group by
  • 没有声明式查询语言,e.g. SQL
  • 事务库事务功能的缺失,e.g. ACID
  • 不易于与其他支持SQL的应用软件集成

(4)NoSQL数据库与传统的关系数据库之间的关系:

  • 关系数据库读写慢,处理海量数据效率低下。而NoSQL处理数据快,适合于云计算中处理大量数据,支持海量数据的分布式存储。
  • 关系数据库支持SQL而NoSQL不支持。
  • NoSQL不是关系型数据库管理系统,它支持处理非结构化的数据,主要用于云计算上。而传统的关系数据库则很难处理大量的非结构化数据。
  • 关系数据库成本高,NoSQL数据库成本低廉。
  • 关系数据库很难实现扩展,通常是纵向扩展,但到达一定程度时只能横向扩展。而NoSQL很容易实现可伸缩性,包括向上扩展与水平扩展。

五、MapReduce技术

(1)基本思想:“分而治之、映射和归约",即将一个需要处理海量数据的大任务分解成若干个处理数量级更低的数据的小任务,并通过分配到不同的计算设备上,高性能地并行解析、计算,最后再归并汇总计算,得到结果。

(2)用于大数据处理的合理性:对比起普通的数据串行处理,海量的数据处理会花费大量的时间,效率低下;而MapReduce技术通过将大数据划分为很多个数据块,自动调度计算节点来并行处理相应的数据块,使得一个大任务可以分配到多个节点运行;而中间结果数据会进行合并,使得数据通信开销减少,最后再归并汇总成所要的结果,提升了整个任务处理的效率和设备的利用率,降低了运行时间和传输开销,使得计算性能得到优化。同时,MapReduce还支持出错检测和恢复,通过监控一个节点的运行状态和时间来判断其是否正常,提高了技术的可靠性。

(3)程序组成:

  • Mapper用于将文件中的大数据筛选并以键值对的形式输入到系统中。
  • Combiner用于将Mapper读取的数据按照键进行简单的汇总。
  • Partitioner用于按照给定的划分规则划分分区,将数据分别传输到不同的Reducer中。
  • Reducer分成多个,每个Reducer将接收到的数据进行统计和求值,以键值对的方式输出需要的数据。
  • Driver接收从多个Reducer中得到的数据并汇总,生成文件。

(4)MapReduce 计算模式与一般的分布式计算、并行计算的异同:

  • 同:把一个大问题分解成许多子问题,利用多个计算节点/CPU 核心分别进行处理,以缩短解决整个问题的时间。
  • 异:并行计算是相对于串行计算而言的,它通常关注单个节点上的多个 CPU 核心之间的并行协作,而不是节点间的通信。 MapReduce 和分布式计算通常将任务分发到网络中的多个节点,分别处理后再汇总结果。 MapReduce 对一次计算过程的 Map 和 Reduce 阶段做了明显的定义和区分,而一般的分布式计算根据任务的不同有可能具有其他形式的阶段性特征。

  • 20
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值