#1.概念:
云计算(cloud computing),分布式计算技术的一种,其最基本的概念,是透过网络将庞大的计算处理程序自动分拆成无数个较小的子程序,再交由多部服务器所组成的庞大系统经搜寻、计算分析之后将处理结果回传给用户。
#2.特点
(1) 超大规模
“云”具有相当的规模,Google云计算已经拥有100多万台服务器, Amazon、IBM、微软、Yahoo等的“云”均拥有几十万台服务器。企业私有云一般拥有数百上千台服务器。“云”能赋予用户前所未有的计算能力。
(2) 虚拟化
云计算支持用户在任意位置、使用各种终端获取应用服务。所请求的资源来自“云”,而不是固定的有形的实体。应用在“云”中某处运行,但实际上用户无需了解、也不用担心应用运行的具体位置。只需要一台笔记本或者一个手机,就可以通过网络服务来实现我们需要的一切,甚至包括超级计算这样的任务。
(3) 高可靠性
“云”使用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性,使用云计算比使用本地计算机可靠。
(4) 通用性
云计算不针对特定的应用,在“云”的支撑下可以构造出千变万化的应用,同一个“云”可以同时支撑不同的应用运行。
(5) 高可扩展性
“云”的规模可以动态伸缩,满足应用和用户规模增长的需要。
(6) 按需服务
“云”是一个庞大的资源池,你按需购买;云可以像自来水,电,煤气那样计费。
(7) 极其廉价
由于“云”的特殊容错措施可以采用极其廉价的节点来构成云,“云”的自动化集中式管理使大量企业无需负担日益高昂的数据中心管理成本,“云”的通用性使资源的利用率较之传统系统大幅提升,因此用户可以充分享受“云”的低成本优势,经常只要花费几百美元、几天时间就能完成以前需要数万美元、数月时间才能完成的任务。云计算可以彻底改变人们未来的生活,但同时也要重视环境问题,这样才能真正为人类进步做贡献,而不是简单的技术提升。
(8) 潜在的危险性
云计算服务除了提供计算服务外,还必然提供了存储服务。但是云计算服务当前垄断在私人机构(企业)手中,而他们仅仅能够提供商业信用。对于政府机构、商业机构(特别像银行这样持有敏感数据的商业机构)对于选择云计算服务应保持足够的警惕。
#3.云计算基本原理
通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据中心的运行将更与互联网相似。这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统。
透过这项技术,网络服务提供者可以在数秒之内,达成处理数以千万计甚至亿计的信息,达到和“超级计算机”同样强大效能的网络服务。
最简单的云计算技术在网络服务中已经随处可见,例如搜寻引擎、网络信箱等,使用者只要输入简单指令即能得到大量信息。
未来如手机、GPS等行动装置都可以透过云计算技术,发展出更多的应用服务。
进一步的云计算不仅只做资料搜寻、分析的功能,未来如分析DNA结构、基因图谱定序、解析癌症细胞等,都可以透过这项技术轻易达成。
k8s、docker、openstack、VM、KVM、Hypervisor、VMware、Mesos等
#1.互联网(internet):小型网络变成了大型网络
#2.IDC(internet data center):互联网数据中心
#3.云计算(Cloud Computing):当越来越多的计算机资源和应用服务(Application,例如看网页,下电影)被集中起来
#4.云端:无数的大型机房
云计算图解:
2.我们把计算机资源,放在云端。这个计算机资源,实际上,分为好几种层次
#第一层次,是最底层的硬件资源,主要包括CPU(计算资源),硬盘(存储资源),还有网卡(网络资源)等。
#第二层次,不是直接使用CPU、硬盘、网卡等,而是使用操作系统(如windows,linux)已装好,把数据库软件装好,我再来使用
#第三层次,直接使用服务:有操作系统,应用软件
这三种层次分别对应的Iaas、Paas、Saas
saas:software -as-a -service(软件即服务)
pass:platform-as-a-service(平台即服务)
iaas:infrastucture-as-a-service(基础设施即服务)
目前主流的云计算服务提供商,例如亚马逊AWS、阿里云、华为云,说白了,都是为大家提供以上三个层次的云资源。
对应多样化多层次的云计算服务,阿里、华为又是怎么提供的呢?
于是就有了各种软件和平台,负责对资源进行调用和管理
#1.如果要对物理资源进行管理,第一步,就是“虚拟化”;虚拟化是云计算的基础。
#2.虚拟化就是在一台物理服务器上,进行多台“虚拟服务器”,而这种虚拟服务器就叫做虚拟机。
#3.从表面上看,这些虚拟机都是独立的服务器,但实际上,他们共享物理服务器的CPU、内存、硬盘、网卡等资源
#4.物理机,通常称为“宿主机(Host)”。虚拟机,则称为“客户机(Guest)”
#5.谁来完成物理资源虚拟化的工作呢?
Hypervisor(超级监督者),也叫VMM(Virtual machine monitor 虚拟机监视器),他不是一款具体的软件,而是一类软件的统称。
Hypervisor又分为两类:
第一类:直接运行在物理机上
第二类:运行在操作系统上
像VMware、KVM、Xen、Virtual Box,都属于Hypervisor。
KVM(kernel-based virtual machine),基于Linux内核的虚拟机
云管理平台:比如openstack,它有点像商店,负责管理商品(计算资源,存储,网络资源),卖给用户,本身不具备制造商品的能力,他的商品来自于KVM.
请记住,上面所说的几个概念,包括VM、KVM、OpenStack等,都主要属于IaaS(基础设施即服务)
容器的由来:
容器、docker、K8S是什么呢?
不同的用户,有时候只是希望运行各自的一些简单程序,跑一个小进程。为了不相互影响,就要建立虚拟机,如果键虚拟机,就会浪费,而且操作比较复杂,花费也会比较长。
而且有的时候,想要迁移自己的服务程序,就要迁移整个虚拟机,有没有办法比较灵活快速一些呢?
有,这就引入了“容器(container)”的概念
容器的认识
容器也是虚拟化,但是属于“轻量级”的虚拟化,他的目的和虚拟机一样,都是为了创造“隔离环境”。但是它又和虚拟机有很大的不同--虚拟机是操作系统级别的资源隔离,而容器本质上时进程级别的资源隔离。
而大家常听说的Docker,就是创建容器的工具,是应用容器引擎 。
Docker的中文意思,就是码头工人。而它的LOGO,就是一只鲸鱼背着很多货柜箱。
相比于传统的虚拟机,docker的优势很明显:
启动时间很快,是秒级,而且对资源的利用率很高(一台主机可以同时运行几千个docker容器)。此外他占用的空间很小,虚拟机一般要几GB到几十GB,而容器只需要MB甚至KB级
虚拟机和容器对比:
除了Docker对容器进行创建之外,我们还需要一个工具,对容器进行编排。
这个工具就是K8S( Kubernetes )
K8S是一个容器集群管理系统,主要职责是:容器编排即启动容器,自动化部署、扩展和管理容器应用,还有回收容器;
简单来说,K8S有点像容器的保姆,它负责管理容器在哪个机器上运行,监控容器是否存在问题,控制容器和外界的通信,等等
K8S和容器之间的关系 :
Docker和K8S,关注的不再是基础设施和物理资源,而是应用层,所以,就属于PaaS
云计算是一种服务;虚拟化和分布式系统都是用来实现云计算的关键技术之一。
目前来讲虚拟化主要常用两个核心技术:服务器虚拟化,与应用虚拟化
目前来讲分布式系统主要用到的两个核心技术:分布式存储,与分布式计算
云计算可以理解为一种租借式的服务,即你可以对IT系统内部的原理什么都不懂,也不需要买到手,但是随时可以使用公共的IT资源为自己服务,比如baidu,比如QQ,比如163邮箱
我认为对虚拟化技术最好的定义就是可以让IT系统的物理拓扑图与逻辑拓扑图无关,即解耦
我们暂时以商用虚拟化系统vmware举例
为了实现拓扑解耦,它做的第一点就是让一台机器可以同时跑多个操作系统,即虚拟机,而且虚拟机还可以在物理机间来回转移,高可用,这样我们的操作系统就从物理机上彻底解放出来了,你可以把同一个虚拟机随时放到其他物理机上,实现了对硬件的高效资源利用,和系统的高度灵活,解除了大量人工劳动,便于实现大规模系统的方便管理,这种就是服务器虚拟化(vSphere)。
光系统分开还不行,你有时还需要各种方式访问虚拟机系统,于是你就会是用远程桌面等方式去访问这些后台的虚拟机,这种就是应用虚拟化(view)。
当然还有网络虚拟化,存储虚拟化等各种其他虚拟化技术正在慢慢成长,不过相对于前两者无论是商用还是开源,都还不太成熟,暂不讨论。
我认为对分布式系统比较合适的定义是把所有IT资源看成为一个整体来使用,而不是去独立的看某个机器某个系统,即资源池
我们暂时以开源Hadoop为例
为实现将IT资源变成整体,它要做到的第一点就是将一个巨大的文件拆开放在多个地方,你可以用一大堆很普通的计算机用网络连在用来存放这一个巨型文件,这样即使很多很小硬盘的机器也可以通过连在一起当成一个很大的存储空间来用,这种就是分布式存储(HDFS)。
光文件存放合在一起不行,计算能力也要合在一起,所以它还要满足一个任务分给多个物理机来处理,这样即便一堆老破电脑,通过这种方式连在一起,只要足够多,也能当超级计算机用,这种就使分布式计算(MapReduce)。
当然Hbase等其他的技术也在逐渐成熟,总的来讲都是为了解决建立巨型资源池需要的技术。
由此可以看出虚拟化主要是把大块拆成小块儿,分布式系统主要是把小块组合成大块儿,IT资源经过这样的揉碎再组合,变成了一个十分灵活的系统,在这几个基本技术的基础上,在通过某种调度和经营,就可以实现云计算的服务模式了。
原文:https://www.cnblogs.com/blackzhou/p/14127264.html