目前云计算、云存储、云备份等技术可谓是铺天盖地,其中不乏有很多是浑水摸鱼的,本来没有多少云的性质,只是打着云的旗号来炒作而已。
目前市场对一款产品是否是云,没有明显的界定。因为云本来就没有一个标准。
云的是怎么来的
国外在指代一堆设备的时候,一般使用Cluster这个词,而中文翻译一般是“簇”或者“集群”。云这个词来源已不可考,也许是某个人在讲授PPT的时候,顺口说了一句"The Servers in the cloud"的吧,这样Cloud这个词就诞生了。
对云的几种认识
目前人们对云的认识基本就有4种不同的观点:云即设备、云即集群、云即IT系统、云即服务
云即设备:
这是最原始的观点,也就是所谓的云只是指代一堆设备,因为没有设备的支撑,哪来的云。
云即集群:
光有设备还不行,还需要这堆设备有机的联系起来,相互协同,对外呈现为一个集群,这是在“云即设备”上的一次发展。
云即IT系统:
上面说到的集群,也只是一堆服务器放在一起,可以协作,若要进一步发展,需要加上软件作为灵魂,比如某企业的IT系统。
云即服务:
IT系统一般是用来支撑企业的业务的,但是我们能不能通过他来盈利呢?这就涉及到商业模式上面了。主要有如下几种模式:
- 直接卖了:
如果像卖房子一样,受众很小,因为需要购买一整套IT系统的人很少。
- 租出去:
这就如同租房子一样,受众相对于卖房子大很多。但是盈利慢
- 利用IT系统来运营某种业务,用来赚钱:
这种方式受众更大,像邮箱、网页、博客,几乎全民都是客户,所以盈利面很大。这样看来,能提供某种形式IT服务的一整套IT系统都是云。从这个角度,所有的互联网运营商,比如各大网站,都是云运营商。
给云下个定义
那么云目前最主流的定义是啥?
上面提到过,设备组成集群,集群搭上软件称为IT系统,IT系统用来服务,好了我们可以把之前的观点结合起来下个定义:
云是一个可运营的IT系统,
但是这个定义缺少最关键的东西,就是资源迅速灵活地部署和回收。所以云当前最主流的定义为:
云是一个智能IT系统,它是:
可运营的
可以迅速灵活部署
可迅速回收资源的
也就是
云是一个可运营的,迅速灵活部署和回收资源的智能IT系统。
那么云应该具有如下性质:
云提供商拥有一定规模的硬件基础(计算、存储、网络)
作为服务进行交易,而不是实物交易,客户只是租用资源
也就是云其实是一种商业模式,如果认为只有底层使用了硬件集群和虚拟化技术的系统才是云这种观点是非常狭隘的。
谁催生了云
谁催生了云?当然是需求
传统IT的问题
互联网以及智能终端的普及,让信息得到了爆发性的增长,那么对IT基础架构(计算、存储、网络)来说,正在快速被饱和。
我们可以看看传统IT怎么运作的?比如运营商部门分析出网页游戏业务会有20%的增长,所以需要扩容,比如增加Web服务器、数据库服务器、存储系统的数量或容量,然后需要采购设备,遵循一系列的流程,这样周期非常的长,甚至慢于业务的变化周期。
但是另外一个部们的在线视频业务因为业绩不好,利用率不足60%。
当然最原始的想法是将在线视频业务的的40%余量分配给网游部门,不过会存在大量的技术风险。比如两种业务部署在同一个操作系统,会增加业务的粘度,不利于运维,然是如果把业务部署在不同的服务器上,更不利于运维。
加上现在数据中心中存在不同的协议、不同厂商的设备,如果靠手动来部署、管理和回收资源,效率低而且容易错,业务上线的速度也不快。
我们总结一下,传统的IT系统存在三个问题:
业务部署周期长
资源不能充分回收利用,存在孤岛
手动部署无法满足需求。
这就痛点。
云其实是商业模式
不过上面的说法只是云诞生的一部分理由,实际上最初的云,实际是一种商业模式,当商业模式与计算机技术结合之后,才产生了云这个代名词。这也是云没有外在的像技术一样严格的标准的原因。
系统架构变化
要解决之前提到的业务部署周期长,无法实现自动化,资源不能方便的回收和复用等,最容易想到的技术手段自然是虚拟化。
服务器虚拟化,即虚拟机系统,充分利用了资源,再加上Vmotion,DRS(Distrubted Resource Scheduler)等技术,极大的增加了部署灵活性和资源均衡性。
我们来看看部署了虚拟机以后对之前的问题带来的变化。
资源充分利用问题:旧业务余量会自动回收,新业务所需的应用可以直接以虚拟机的形式部署在物理机,因为操作系统各用各的,粘合影响得以避免。
上线业务周期长的问题:部署虚拟机消耗的时间比物理机少了很多,上线速度加快
手动部署问题:使用一种资源自动化分配和回收平台来解决自动化部署问题。
那么所谓虚拟化,其实就是在传统的数据中心上加上一个弹性层,这样整个数据中心就变成了软数据中心了。
如果还能做到部署回收自动化、可度量化、服务化、可运营的数据中心,则就是一个云数据中心了。
综上所述,云系统中重要的角色有:
虚拟化
集群化
自动化:实现资源自动部署、调度、分配、回收的管理者
- 对内可以与其他组件进行通信,管理资源
- 对外可以响应业务部署的需求,并且将这些需求转化为对内的资源调度
这个模块综合起来就是“自动化”。
可度量化:
也就是用户用了什么资源,为期多少时间,耗费多少成本,毛利率几何,报价几合可以精确度量、定价。
纵观云发展的过程中,说不清到底是先有云这种商业模式还是先有云这种技术架构的,两者其实是相互催生、相辅相成。
回顾存储系统的技术发展过程。
最开始的时候,存储系统只需要关心数据存储,只要提供一块空间,怎么管,怎么用,底层是不关心的,
后来,存储系统开始注重数据管理,开发了诸如快照、重删、容灾等功能。
再后来,又到了数据运营阶段,还关心数据怎么用的问题,此时需要更贴近用户的应用,注重业务展现。
公有云和私有云
现在我们已经有了一个云化的数据中心了,那么可以按照数据中心的是对企业内部开放服务还是给任何人开放服务来分为私有云和共有云:
- 私有云:数据中心对企业内部开发,提供云服务,比如存储空间申请、企业应用系统的快速部署等。
- 公有云:对外营业,通过互联网提供各种云服务。
私有云让企业IT部门角色转变
传统的IT部门是一个支撑部门,始终处于业务部门的牵引之下,所有的采购、经费申请必须以业务需求为前提。
那么怎么提升IT部门的地位,只要也得与业务部门处于平等的地位。云中的“服务”两字正好满足了这种需求,比如IT部门可以通过建立规范的资源申请流程,然后建立电子工单审批系统,只有通过审批以后才提供对应的服务。还可以统计某个部门在某段时间内使用了多少IT资源,消耗了多少成本。
这样IT部门成为一个独立的服务角色,其他部门向IT部门申请资源的时候,是以协商的态度而不是强势的牵制的态度,而且因为资源可度量了,IT部门可以做出合理的预测,申请后续经费等资源变得更有说服性。
公有云受制于互联网带宽发展
如今互联网的接入速度还是比较低的,大量用户的速度还是1Mbps,也就是只有100KB/s的吞吐量的接入速度。此时,若给他一个iSCSI协议访问的存储空间是不现实的,最多提供网盘这样的上传下载服务。
常用的SaaS服务(网页、聊天、视频、网盘等)基本上可以基于低速网络,但是IaaS就困难了,比如访问虚拟机的时候,如果不是用xshell这种方式,而是使用虚拟桌面登录,1Mbps非常勉强。而且,如果要安装软件,还得把安装包传上去。
综上所述,云目前最能被广泛推进的地方就是新建数据中心,企业兴建私有云,运营商兴建混合云
云系统架构及组成
下图为云具体的架构:
分为如下几个层次
物理架构层:比如供电、散热等
基础IT架构层:包括网络、存储、服务器等
需要注意的是这些服务器与存储设备不是孤岛,他们会组成集群,上面搭载虚拟化,并进行自动化的管理。
基础架构/集群管理层
有了集群还不够,需要在上面覆盖虚拟化层来增加系统的弹性。
对于服务器就是VMware这样的虚拟机平台。对于存储,就只能分布式文件系统或者分布式卷管理系统才能满足这种需求。
资源部署层:
现在我们已经可以得到一个网络、服务器、存储的集群,还需要一个用来管理和驱动集群的角色。
比如VMware的Vsphere可以进行计算资源的包裹,分布式系统可以进行存储资源的包裹。
利用VSphere提供的Vmotion与DRS可以将虚拟机在集群节点中灵活移动,自动资源动态分配和回收。
中间件层
应用层与资源层需要一个中间层来适配,这就是中间件层
应用引擎层
这一层需要提供一个通用的业务开发平台,可以实现统一发布。
业务展现与运营层
现在数据中心的架构已经具有集群化、虚拟化、自动化的形态了,但是这只是对自己有用,对用户来说,他们不用关心底层用不用集群或者虚拟化,只关心是否能得到快速的服务和响应
所以我们还需要一个业务展现界面,这就是云服务。
那么出租数据中心其实可以在以下几个层次中进行:
基础设施即服务(IaaS)
所谓基础设施指的是云系统中的硬件设施如服务器、网络、存储。所以IaaS只是提供硬件平台,具体的计算任务由用户自行部署。- 如何卖存储空间:
可以有多种方式,比如卖裸空间、文件存储空间等。
裸空间就是最终用户看到的是一块硬盘,所有协议当然首选ISCSI,以便跨越IP网络,这样用户可以通过ISCSI Initiator连接云提供商的ISCSI Target,然后就可以获得多个LUN。对于云中存储系统,精简重删这些特性应该是必须的,可以降低不必要的空间占用,而动态分级可以进一步节省存储成本。
- 如何卖服务器、虚拟机
虚拟机平台需要考虑几种功能:
一是动态迁移,即虚拟机可以在不影响应用系统的情况下在物理机之间进行迁移。二是资源动态分配调度,
三是管理方便。
Amazon在IaaS提供两个产品:弹性计算云(Elastic Compute Cloud , EC2)和简单存储服务(Simple Storage Service ,S3),分别对应了主机计算集群和存储集群
平台即服务
相对于IaaS,PaaS屏蔽而不出租基础架构,转而出租更高一层的软件平台。用户可以通过这个平台制作应用。因为这个平台是一种运行与硬件集群中的软件,用户实际上相当于租用了计算业务。
软件即服务
SaaS是云服务中的最外层,直接出售业务级别的内容。比如Web网页等。
实例说云
下面使用3Tera Applogic的例子来说一下IaaS层
3Tera的IaaS平台名为Applogic,是一不可以实现IaaS功能的软件虚拟化平台。我们可以看一下它的底层架构:
主要分为4大层次:
硬件层:
本层包含服务器、存储、网络设施等。
Applogic不要求底层存储必须是基于SAN的,可以是本地IDE。若干服务器通过千兆以太网连接起来,形成集群。
然后在这个有限且分配不灵活的资源池上,实现一种管理方便、使用方便、资源灵活分配的虚拟化层。
分布式核心虚拟化层(Applogic OS):
- 计算虚拟化:Distributed Virtual Machine Manager(DVM)
本层的核心是虚拟机技术,通过Hypervisor引擎来虚拟化成多个主机,比如说VMware的ESX Server就是实现这个目的的。只不过Applogic使用的是Xen虚拟机平台。
- 存储虚拟化:Global Volume Store(GVS)子层:
Applogic使用的是自研分布式文件系统,在这个文件系统之上虚拟出Volume,而且Volume可以Mirror、Clone、Snapshot等。
每个Volume在多个物理主机上有镜像以解决HA问题,并且可以提升读性能。
而这些Volume对于最终的虚拟机就是裸磁盘,在这个虚拟化层上,每个节点将自己的本地存储空间贡献出来,所有节点的存储被整合起来进行虚拟化。- 网络资源虚拟化:Logical Connection Manager(LCM):将物理网络搞成虚拟网络
一次性基础设施虚拟层
所谓一次性基础设施,其实就是虚拟机可以按需创建。每个应用程序可以分配一个独立基础设施,包括防火墙、负载均衡、Web服务器、数据库服务器等。当要删除应用程序的时候,可以直接把虚拟机删除了。
这些角色可以虚拟成一个个对象,在图形界面使用鼠标拖拽的方式建立对象
上图创建了一个防火墙、负载均衡、2台Web防火墙、数据库服务器,整个网格中的Volume按照Application进行隔离,不同的Application只能看到自己的Volume。
防火墙、负载均衡、WebServer之间互联的IP用户不需要关心,系统自动分配,唯一需要配置的是整体Application的IP地址信息。
网络控制层和应用程序管理层
以Application为单位向用户交付。
Applogic带来的革命是把复杂的底层硬件变得简单,通过拖拽对象来状态自己的基础架构,最终以适合某中Application运行的整体服务器&存储&网络来交付。
云的缺点
在看云的缺点之前先看一下云的优点:
避免资源的浪费:
节能
角色转变
存在的问题:
稳定性和安全性:如何解决两个存储资源互通的问题,如何才能保证完全隔离。
平台迁移
怎么样才能在不影响业务的前提下迁移到云平台上。不兼容的问题:不同云服务商提供的架构不同,接口也不同。
云之后的发展
云的本质
云本质是一种服务,而不是一种物质,正因为此,它必须基于物质才能显示功效,《易经》有云:“形而上者谓之道,形而下者谓之器”。所以下器者,谓之服务器+存储+部署管理软件;上道者,谓之“云”。所以云是一种道,是一种方式和方法,而不是某种设备,某个软件,当然云需要由硬件+软件来承载而已。
所以,云和速度性能没有直接关系。云本身不一定就是一个高速高冗余的东西,而是说底层硬件一般使用并行计算集群和存储集群,在这个基础上,云才能表现出更大的效能。
而且云也不是为了提速而生,它的主要目的是廉价高效的利用资源并降低硬件的应用成本和管理成本。
其实云早就存在了,只有近两年才被炒作起来,互联网服务器就是云服务,所以有人提出IT服务即云,Everything as a service。
其实在40年前,我们还是用集中分时计算,随后到了世纪相交的纪念,用户各自购买基础架构进行计算和存储,然后又逐渐回到了集中计算的时代,实际上这既不是进化,又不是退化,是“分久必合,合久必分。万物皆在轮回中不断发展,到一定程度就回到当初的形态,但是承载它的物质是连续不断的提升的。所轮回的只是其上的那层能量,谓之道。
Micro、Mini、Normal、Huge、Grid弹性数据中心
弹性核或者软数据中心:将若干刀片与高密度的磁盘柜以及微型交换机打包到一个或者几个机柜里面,再覆盖以弹性层,比如虚拟机管理系统以及分布式存储系统,将这样一个微型弹性软核心做为一个可提供IaaS服务的整体交付给用户。
或者再在这个软核上覆盖一层业务展现于管理层,直接交付到SaaS层。一柜或者数柜交付的弹性基础设施,可以称为Micro Cloud