云计算涉及到的关键技术有哪些?

1. 分布式海量数据存储

由于技术的发展,各行各业都产生了大量的数据,然而庞大的数据量使得传统的数据库存储已经无法满足存储和分析需求,所以主要面临的问题有以下4个:

 

面临的问题:

(1) 数据库容量有限:

关系型数据库并不是为海量数据而设计,为了继续支撑系统,不得不进行服务器升级和扩容,但是成本十分高昂。

 

(2) 并行取数困难

除了分区表可以并行取数外,其他情况都要对数据进行检索才能将数据分块,所以并行读数效果不明显,甚至增加了数据检索的消耗。

 

(3) 对J2EE(Java 2 平台企业版)应用来说,JDBC(Java数据库连接)的访问效率太低

由于Java的对象机制,读取的数据都需要序列化,导致读数速度很慢。

 

(4) 数据库并发访问数太多

由于数据库并发访问数太多:

  • 导致产生I/O瓶颈
  • 数据库的计算负担太重

两个问题,甚至出现内存溢出、崩溃等现象。但数据库扩容成本太高。

 

解决上面问题的方法

在技术架构上,可以分为:

  • 解决企业数据存储和分析使用的大数据技术
  • 解决用户数据云端存储的对象存储技术
  • 满足云端操作系统实例的块存储技术

 

大数据技术

对于大数据技术,理想的解决方案是把大数据存储到分布式文件系统中。

 

在云计算系统中,广泛使用的数据存储系统是Google的GFS和Hadoop团队开发的HDFS。

⚠️: 大数据技术目前在处理交易系统的时候,与传统的数据库存储方式相比,TPS(每秒交易量)表现还不好,所以大数据多用于分析系统,而在线实时交易,还是采用数据库方式。

 


对象存储(Object-based Storage)

背景:DAS、SAN和NAS

讲对象存储之前,要知道在很长的一段时间里,DAS、SAN和NAS三种架构,几乎统治了数据存储市场。所有行业用户的数据存储需求,都是在这三种技术中进行选择。

 

然而,随着时代的发展,一种新的数据存储形态诞生,开始挑战前面三者的垄断地位。就是云计算时代,存储技术的新网红:对象存储。

 

对象存储,也称为“面向对象的存储”(Object-based Storage)

不同的云厂商对它有不同的英文缩写命名。例如阿里云把自家的对象存储服务叫做OSS,华为云叫OBS,腾讯云叫COS,百度叫BOS……五花八门,但是都是一个技术。

注意,DAS和SAN是基于物理块的存储方式,而NAS是基于文件的存储方式。

 

原因:在DAS和SAN中,存储资源就像一块一块的硬盘,直接挂载在主机上,所以称之为块存储。而在NAS中,呈现出来的是一个基于文件系统的目录架构,有目录、子目录、孙目录、文件,所以称之为文件存储。

 

 

20世纪末,随着互联网的爆发,数据存储需求发生了两个重大的变化:

        第一,就是数据量爆炸式增长。

        第二,是非结构化数据的占比显著增加。

 

面对这两大趋势,因为本身技术和架构的限制,DAS、SAN和NAS无法进行有效应对。于是,就出现了对象存储。

 


历史

 

对象储存的历史主要就是:在2006年,美国Amazon公司发布AWS S3(Simple Storage Service)服务,正式将对象存储作为一项云存储服务,引入云计算领域,从此开启了对象存储的黄金时代。所以,S3几乎成为对象存储的事实标准。各厂家基本上都会兼容S3。

 

 

对象存储和块存储、文件存储的区别

对象存储的底层硬件介质,依然是硬盘,和块存储、文件存储没有区别。而对象存储架构在底层硬件之上的系统,和两者完全不同。

对象存储,主要操作对象是对象(Object)。存储协议是S3、Swift等。以 S3 为例,主要接口命令有 PUT/GET/DELETE 等。接口命令非常简洁,没有那种目录树的概念。

在对象存储系统里,你不能直接打开/修改文件,只能先下载、修改,再上传文件。

 

 

对象存储中的数据组成

对象存储呈现出来的是一个“桶”(bucket),你可以往“桶”里面放“对象(Object)”。这个对象包括三个部分:Key、Data、Metadata。

  • Key:可以理解为文件名,是该对象的全局唯一标识符(UID)。Key是用于检索对象。
  • Data:也就是用户数据本体。
  • Metadata:元数据。

 

 

应用

对于对象存储,大家非常熟悉的云盘就是基于这项技术实现的。

云盘里上传等操作的界面,最终都是通过Webservice与后台的对象存储系统打交道。

 

对象存储的主要特点

(1) 所有的存储对象都有自身的元数据和一个URL。这些对象在尽可能唯一的区域复制3次,而这些区域可以被定义为一组驱动器、一个节点、一个机架等。

 

(2) 开发者通过一个Restful HTTP API与对象存储系统相互作用。

补充:表述性状态传递(REST = Representational State Transfer)。遵循 REST 架构约束的 Web API 被称为 RESTful API。REST经常 与 SOAP (之前讲的)放在一起,但是他俩有着根本区别:SOAP 是一种协议,而 REST 是一种架构模式。

 

(3) 对象数据可以放置在集群的任何地方。

 

(4) 在不影响性能的情况下,集群通过增加外部节点进行扩展。

 

(5) 数据无须迁移到一个全新的存储系统。

 

(6) 集群可无宕机,增加新的节点。

 

(7) 故障节点和磁盘可无宕机调换。

 

(8) 在标准硬件上运行,普通的x86服务器(目前主流的服务器架构),即可接入。

总结:存储方式

刚才主要介绍了对象存储的技术。总的来说,存储方式主要被分成了对象存储,块存储和文件存储。

 

块存储

块存储是最简单的数据存储技术形式,用于存储数据库、应用程序等结构化数据。

我们比较常见的块存储形式是我们的Windows硬盘或手机存储空间,数据是按字节来存储和访问的。DAS、SAN这两种存储设备属于块存储类型,

文件存储

为了克服文件无法共享的问题,所以有了文件存储。


 

 

2. 虚拟化技术

虚拟化技术是云计算系统的核心组成部分之一。是把各种计算和存储资源,充分整合和高效利用的关键技术。云计算的虚拟化技术是涵盖整个 IT架构的,包括资源、网络、应用和桌面在内的全系统虚拟化。

 

虚拟化技术的特点:

(1) 资源分享:通过虚拟机封装用户各自的运行环境,有效实现多用户分享数据中心资源。

(2) 资源定制:用户利用虚拟化技术配置私有的服务器,指定所需的CPU数目、内存容量、磁盘空间,实现资源的按需分配。

(3) 细粒度资源管理:把物理服务器拆分成若干虚拟机,可以提高服务器的资源利用率。

基于这些特点,虚拟化技术成为实现云计算资源池化和按需服务的基础。

 


 

3. 云管理平台技术

需要云管理平台的原因就是:

云计算资源规模庞大,服务器数量众多且分布在不同的地点,同时运行着数百种应用。所以需要有效地管理这些服务器。

 

云平台技术:能可以使大量的服务器协同工作,方便地进行业务部署,快速发现和恢复系统故障,通过自动化、智能化的手段实现大规模系统的可靠运营。

云平台的主要特点是用户不必关心云平台底层的实现。用户使用云平台发布第三方应用,只需要调用平台提供的接口,就可以在云平台中完成自己的工作。

云平台服务的对象除了个人以外,大部分都是企业级用户。

 


 

4. 并行编程技术

使用范围最广的并行编程模型有:共享内存模型,多线程模型,分布式内存/消息传递模型,数据并行模型。这文主要介绍的就是消息传递模型和数据并行模型。

⚠️:没有最好的编程模型,模型的效果如何很大程度上取决于实际的问题。

        数据并行编程模型的编程级别比较高。编程相对简单,但它仅适用于数据并行问题。

        消息传递编程模型的编程级别相对较低。但消息传递编程模型有更广泛的应用范围。

 

数据并行编程模型

数据并行编程模型(Parallel programming model):数据并行是最简单的并行形式之一。在这个模型中,有多个任务需要操作同一个数据结构,但每一个任务操作的是数据的不同部分。

总的来说,数据并行的表达是相对简单和简洁的。但是对于非数据并行类的问题,如果通过数据并行的方式来解决,一般难以取得较高的效率。

 

消息传递

消息传递模型通常在分布式内存系统(每一个处理器都有独立的内存空间)中应用。

消息传递模型允许多个进程在不相互连接的情况下读取和写入数据到消息队列。

消息传递为编程者提供了更灵活的控制手段和表达并行的方法。一些用数据并行方法很难表达的并行算法,都可以用消息传递模型来实现。

目前,大量的并行程序设计仍然采用消息传递编程模型。

 


 

 

5. 数据管理技术

因为云计算系统要对大数据集进行处理、分析。所以,需要数据管理技术来高效地管理大数据集。

应用于云计算的最常见的数据管理技术是Google的Bigtable数据管理技术。

 

Bigtable是一个为管理大规模结构化数据而设计的分布式存储系统,可以扩展到PB级数据和上千台服务器。很多google的项目使用Bigtable存储数据。

基于Bigtable 模型实现的 Hadoop HBase也在越来越多的应用中发挥作用。

 

Bigtable可以支持很多种类型的数据,比如:

  • 时间序列数据,例如多个服务器随时间变化的 CPU 和内存使用情况。
  • 营销数据,例如购买历史和客户偏好。
  • 财务数据,例如交易历史、股票价格和货币汇率。
  • 物联网数据,例如电表和家用电器的使用报告。
  • 图形数据,例如有关用户如何相互连接的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值