虚拟化和云计算有什么区别?什么是容器?企业云上常见架构介绍

本文介绍了云计算的基本概念,包括云计算的起源,以及SAAS、PAAS、IAAS服务模型。重点讲解了虚拟化技术(如Hypervisor和OpenStack),容器(如Docker和Kubernetes)以及分布式存储和计算在云计算中的应用。
摘要由CSDN通过智能技术生成

什么是云计算

在没有网络的时代,每台电脑就是一个单机,包括CPU、内存、硬盘、显卡等硬件,安装上操作系统和应用软件,就可以完成工作。后来网络诞生,它将单机关联起来,单机之间可以交换信息,协同工作。再后来,单机性能越来越强,就有了服务器,人们将多台服务器集中起来放在机房里,用户通过网络访问和使用机房里的计算机资源。再之后,小型网络变成了大型网络,就有了互联网。小型机房也变成了大型机房,就有了IDC互联网数据中心。当越来越多的计算机资源和应用服务被集中起来,就形成了——云计算。无数的IDC大型机房,就成了“云端”。

云计算说白了就是将计算机资源集中起来放在网络上。那么云计算如何实现呢?

云计算有三种服务方式,分别是SAAS(软件即服务)、PAAS(平台即服务)、IAAS(基础设施即服务)。

那这三种服务方式具体是把哪些计算机资源放在云端呢?下图看得更直观:

什么是虚拟化

当对物理资源进行管理的第一步,就是“虚拟化”。虚拟化是一种技术,云计算是一种使用模式。虚拟化可以理解为一台物理服务器上运行多台虚拟服务器,这种虚拟服务器,也叫虚拟机(VM,Virtual Machine)。虚拟机共享物理服务器的CPU、硬盘、内存、网卡等资源。一台物理机上可以同时运行多台虚拟机。谁来完成物理资源虚拟化的工作呢?

Hypervisor 也叫做VMM(Virtual Machine Monitor,虚拟机监视器),它不是一款具体的软件,而是一类软件的统称。像VMware、KVM(kernel-based virtual machine,基于Linux内核的虚拟机)、Xen、Virtual Box,都属于Hypervisor。

为了更好的管理虚拟机,便有了OpenStack这样的云管理平台。OpenStack对资源进行管理,并且以服务的形式提供给上层应用或者用户去使用。有点像个商店负责管理商品(计算资源、存储资源、网络资源等),卖给用户,但它本身不制造商品(不具备虚拟化能力),它的商品,来自于KVM或者其它Hypervisor。

OpenStack的管理界面

以上的几个概念包括VM、KVM、OpenStack等,都主要属于IaaS(基础设施即服务)。

什么是容器

容器是“轻量级”的虚拟化,它的目的和虚拟机一样都是为了创造“隔离环境”,不同点在于——虚拟机是操作系统级别的资源隔离,而容器本质上是进程级的资源隔离。像是Docker就是创建容器的工具,即应用容器的引擎。相比于传统的虚拟机,Docker的优势很明显,它启动时间很快,是秒级,而且对资源的利用率很高(一台主机可以同时运行几千个Docker容器)。此外,它占的空间很小,虚拟机一般要几GB到几十GB,而容器只需要MB级甚至KB级。

有了容器,我们还需要一个容器编排工具——Kubernetes(K8S)。K8S是一个容器集群管理系统,比如启动容器,自动化部署、扩展和管理容器应用,以及回收容器。

K8S系统架构

 

除了K8S之外,还有很多种容器管理平台,例如ComposeMarathonSwarmMesos等。Docker和K8S,关注的不再是基础设施和物理资源,而是应用层,所以属于PaaS。

什么是分布式存储和分布式计算

分布式系统比较合适的定义是把所有IT资源看成为一个整体来使用,而不是去独立的看某个机器某个系统,即资源池。以开源Hadoop为例,为实现将IT资源变成整体,要做到的第一点就是将一个巨大的文件拆开放在多个地方,我们可以用一大堆计算机通过网络连接来存放这个巨大的文件,这样即使很多很小硬盘的机器也可以通过连在一起当成一个很大的存储空间来用,这种就是分布式存储(HDFS)

光是文件存放合在一起还不够,计算能力也要合在一起,所以它还要满足一个任务分给多个物理机来处理。这样即便单机性能不足,通过这种方式连在一起,只要足够多,也能当超级计算机用,这种就是分布式计算(MapReduce)

由此可见虚拟化主要是把大块拆成小块,分布式系统主要是把小块组合成大块,IT资源经过这样的揉碎再组合,就变成了一个十分灵活的系统。

企业云上常见架构

All in one部署:当企业的IT系统没有很复杂,业务需求没有很高的时候,可以将所有的服务部署在一台云服务器上。比如将应用和数据库部署在一台ECS上。

应用与数据分离:将应用部署在ECS上,将数据库单独使用云上的数据库服务RDS,提升系统服务能力。

应用集群部署:为缓解前端访问的压力,使用SLB负载均衡服务统一接口处理用户请求;后端通过部署多台云服务器去处理用户的请求。

动静资源分离:为缓解系统存储压力,将静态资源(图片、音视频等非结构化数据)单独放到云上OSS文件存储,实现动静资源分离。

 

参考:

https://www.zhihu.com/question/22793847

https://developer.aliyun.com/article/256469

 

稀有物种女程序猿,日更python、网络、算法等相关知识。日拱一卒。欢迎各位催更扯淡一条龙!

 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值