简单介绍云计算的关键技术

  • 体系结构(Architecture)
  • 数据存储(Data Storage)
  • 计算模型(Computation Model)
  • 资源调度(Resource Scheduling)
  • 虚拟化(Virtualization)
体系结构(Architecture)

云计算的体系结构通常分为三层:

  • 核心服务层
  • 服务管理层
  • 用户访问接口层

在这里插入图片描述
(图片居中的方式:直接在连接尾部加上#pic_center

核心服务层
将硬件基础设施、软件运行环境、应用程序抽象成服务,这些服务具有可靠性强、可用性高、规模可伸缩等特点,满足多样化的应用需求。基础设施一般就是底层的基础设施,包括硬件设施,对硬件设施的抽象和管理。从上图可以看出核心服务层又分成了三个子层:IaaS (Infrastructure-as-a-Service)基础设施即服务层,PaaS (Platform-as-a-Service)平台即服务层,SaaS (Software-as-a-Service)软件即服务层。

  • IaaS提供硬件基础设施部署服务,为用户按需提供实体或虚拟的计算、存储和网络等资源。
  • PaaS是云计算应用程序运行环境,提供应用程序部署与管理服务。PaaS层提供软件工具和编程语言。
  • SaaS 是基于云计算基础平台所开发的应用程序。

虽然上面的翻译都是…即服务层,不过我觉得这样会更好理解些:IaaS,是提供基础设施服务的子层,可以将其理解为基础设施的服务。PaaS,在基础设施上层构建的子层,它包含了软件的成分,提供了运行环境,是的基础设施能够作为一个服务平台开放出了,可以将其理解为平台级的服务层。而后,SaaS就是软件级的服务层。

服务管理层
顾名思义,是管理核心服务层的。为核心服务提供支持,进一步确保了核心服务的可靠性、可用性与安全性。

用户访问接口层
提供了客户端访问云服务的接口,使得用户不需要关系底层实现,只需要通过接口调用服务即可。方便了使用,屏蔽了底层的复杂性。

数据存储(Data Storage)

云环境下的数据存储不同于传统的数据存储,传统的数据存储可能都只是涉及到一台服务器,当跨入到云环境时,就用使用到分布式系统,为保证分布式系统的有效工作,就会出现各种各样的问题。不管是传统存储还是分布式存储,都要满足下面的特性:
ACID

  • 原子性(Atomicity)
  • 一致性(Consistency)
  • 隔离性(Isolation)
  • 持久性(Durability)

BASE

  • 基本可用(Basically Available)
  • 柔性状态(Soft State)
  • 最终一致性(Eventually Consistency)

例如谷歌的数据存储模型:Big Table

数据中心: 数据中心是由大量的廉价的存储设备组成,通过上层的分布式文件系统整合为可靠的,可扩展的整体。

分布式文件系统(Distributed File System): DFS是云存储的核心,一般作为云计算的数据存储系统。案例比如:谷歌的分布式文件系统GFS(Google File System)

计算模型(Computation Model)

云计算的计算模型是指可编程的并行计算框架,需要高扩展性和容错性的支持。在多核的今天,并行是提高计算性能的必由之路。典型的案例有MapReduce和Dryad。
MapReduce是谷歌的并行计算编程框架,运行在GFS上,设计思想:将问题分而治之,主要的功能由Map函数和Reduce函数来实现。Dryad是基于有向无环图的并行计算模型,图中的每个结点处理各自的任务,Git的版本管理也是基于有向无环图来实现的

资源调度(Resource Scheduling)

云计算平台的资源调度包括:异构资源管理、资源合理调度与分配。 在普通的系统中,资源合理的调度和分配是很常见的,由于云平台是基于分布式系统的,因此不同的系统之间可能就会出现结构不同的问题,云平台的资源调度就必须具备异构资源管理的功能。

虚拟化(Virtualization)

通过虚拟化技术可以将物理上的单台服务器虚拟成逻辑上的多台服务器。每台服务器可以被单独的作为一个服务器使用,比如Colab提供的服务。通过这种分割,将闲置的处于底峰的服务器紧凑地使用起来,数据中心为云计算提供了大规模资源,通过虚拟化技术实现这些基础设施服务的按需分配。分为虚拟机快速部署和在线迁移两类技术。

从上图可以看出虚拟化技术是IaaS层的重要组成部分。虚拟化技术主要有以下特点:

  • 资源共享:物理机从逻辑上被虚拟为很多台小型机器,这些虚拟机之间可以很方便的共享该物理机上的资源。
  • 资源定制:用户利用虚拟化技术,配置私有的服务器,指定所需的CPU 数目、内存容量、磁盘空间,实现资源的按需分配。
  • 细粒度资源管理:通过虚拟化技术可以将物理机从逻辑上拆分成很多台更小的机器,通过对这些小型机器进行准确的管理,来实现了细粒度的管理。
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐