以前电脑刚发明的时候,个头还很大,而且也没有网络,每台电脑(PC)都是单机运行。后来网络发展起来了,多台电脑就依靠着网络进行通讯,协同工作。而云计算经常提到的一些“资源”术语,带到我们个人PC来比划的话,CPU、内存就是我们的“计算资源”;硬盘就是我们的“存储资源”;宽带联网就是我们的“网络资源”。
人们就把NB的PC称为“服务器”。企业只要把大量服务器集中起来,放在机房里,然后让用户通过网络,去访问和使用机房里的计算机资源,我们就把它称为“数据中心”。互联网发展初期,都是一台物理服务器装一个操作系统,这样就会引出两个问题:
虚拟化是云计算的基础。简单来说,虚拟化就是在一台物理服务器上,运行多台“虚拟服务器”。这种虚拟服务器,也叫虚拟机(VM,Virtual Machine)。从表面来看,这些虚拟机都是独立的服务器,但实际上,它们共享物理服务器的CPU、内存、硬件、网卡等资源。时间灵活性:通过虚拟化平台(Hypervisor
如VMware、KVM、Virtual Box等)虚拟出多台电脑,十分钟左右即可完成空间灵活性:把服务器的物理CPU、内存、硬盘都虚拟出一小块来,再由运维工程师根据用户实际的需求进行合理分配(人工调度)。
云计算的本质:把各类独立的资源(计算资源、网络资源、存储资源)集中起来,通过平台进行统一的管理及分配,可以说只要你付费申请,云计算就可以根据你的需求进行自动调配,自动把所需资源提供给你。(就像我们使用水电煤气一样,我们从来不会想着去建水厂,也不关心水厂在哪里,只要扭开水龙头,水就来了)。
当用户将应用部署到云端后,即无需关注硬件和软件问题,它们会由云服务提供商(公有云)的专业团队去解决(企业的私有云需要自行组建团队运维)。
什么是弹性?云计算的特点就是资源能够被灵活调用。当用户使用资源时,云平台就可以根据用户的需求,动态增加和删减资源,不用中断用户的使用,更无需重新申请。这就是“弹性”。
例如云盘,如果说全国每个用户都分配2T空间的话,那百度再有钱它都支撑不住。那百度怎么处理的呢?
,如果你不使用,那这2T空间还不是真正属于你的。但随着你上传的文件越来越多,百度云才会将这2T空间逐步分配给你,直到你用满了2T,这个过程是动态扩容的,是有“弹性”的。当云盘后台监控到全平台的总体存储空间到达阈值的时候,企业就会通过采购流程采购更多服务器,扩充存储资源,在这个过程中用户是无感知的。只会觉得,只要有钱买云盘空间,买VIP,那我的空间Kaiyun平台 开云体育官方入口就会取之不尽用之不竭。
一个完整的云计算环境由云端、网络和终端三部分组成。云端就是指云计算资源,负责完成软件的计算;终端是指我们用来完成请求的设备;网络负责把云端和终端连接起来,完成信息传输(将终端的请求传输至云端,由云端把执行结果反馈到终端)。
云计算的模型主要有三种。分别为IaaS(基础设施即服务Infrastructure-as-a-Servic)、PaaS(平台即服务Platform-as-a-Service)、SaaS(软件即服务Software-as-a-Service),深蓝色是用户决定的,蓝色是云计算服务商决定的。SaaS 模式下用户没有任何自主权,只能使用云计算服务器提供的应用程序;PaaS 模式下可以自己安装应用程序,但是不能定制操作系统;IaaS 模式下则是云服务商提供(虚拟的)硬件,从操作系统开始都可以自己选择和定制。
,就可以自行决定应该安装什么操作系统,应该安装什么类型的数据库,应该要多大存储空间等等,这样就可以直接省略掉机房的搭建与维护。例子:
(2)企业B不想买地,于是选择一个园区,租用一栋或多栋办公楼,自己来做内部的改造和装修。
OpenStack将计算、存储、网络资源打包起来,并通过API接口(应用程序接口)的方式提供给用户调用。以前一个服务器上线,可能需要协调网络组调网络、平台组装系统、安全组搞安全,整个流程下来理想情况10小时搞定(主要是协调时间久),传统的服务并不满足云计算的要求,因为云的要求是,申请一个服务器,那我马上可以就可以使用了。
现在租用了云计算的laaS服务后,我只需要在云的前端(web页面)申请(要什么操作系统,要多大的存储空间,只需要傻瓜式点点点即可),把请求下发到OpenStack,那就可以通过自动化脚本自动产生配置,自动把服务器,OS,网络,安全都搞定。用户根本就不必关心服务器要怎么采购,交换机应该怎么配,负载均衡怎么做,操作系统应该怎么装。用户只需要购买IaaS服务即可在平台实现需求。
PaaS是平台即服务,顾名思义就是云端把用户需要的软件平台(操作系统、数据库、中间件、运行库等等)都搭建好,用户只需要租用PaaS服务,就可以在平台上下载及安装自己所需的软件即可。就好比租用商场店面,物业(PaaS供应商)只是提供店面给你,至于租用后你怎么装修都是你自己的事了。
不需要人工安装,PaaS平台提供自动化工具(Ansible、容器等。用自动化脚本在实际环境中部署安装可能会产生不一样的问题,但是容器可以把应用封装起来,以实现应用的标准化,后面会介绍到)。用户只需要结合自动化工具把自己的配置信息以及应用软件融入到自动化安装过程中即可,这样就可以实现应用层面的“弹性”。
注意:PaaS并不是所有依赖软件都支持,只支持通用的,例如Oracle、MySQL这些,如果名气较小的数据库可能就没法了。正是因为PaaS层所支持的通用软件有限,所以有特殊需求的用户基本上都是选择“半PaaS服务”。
---PaaS层云管理平台,主要用于管理容器。与laas层的OpenStack是相互独立的云平台管理技术,管理的对象不一样(各管各的),它们之间并不存在依存关系或上下级关系。
SaaS是软件即服务,在这个层面,云端已经把操作系统、数据库、中间件、软件应用等等都给你部署好了。连应用软件都不用装,用户登录之后直接就可以使用了,用户层面只需要管理自己使用软件所产生的数据即可。相当于去网吧玩游戏,网吧老板(SaaS服务商)都帮你把Windows、游戏、浏览器、播放器都给你装好了,你只需要租用一台电脑,你就可以愉快地玩耍了。