云计算
一、什么是云计算?
1.1. 云计算定义
美国国家标准与技术研究院 (NIST):云计算是一种模型,它可以实现随时随地,便捷地,随需应变地从可配置计算资源共享池中获取所需的资源(例如,网络、服务器、存储、应用、及服务),资源能够快速供应并释放,使管理资源的工作量和与服务提供商的交互减小到最低限度。
1 | Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. |
1.2. 云计算五大特征
1.2.1. 按需自助服务
消费者不需要或很少需要云服务提供商的协助,就可以单方面按需获取云端的计算资源。
1.2.2. 广泛网络接入
消费者可以随时随地使用云终端设备接入网络并使用云端的计算资源。常见的云终端设备包括手机、平板、笔记本电脑、PDA掌上电脑和台式机等
1.2.3. 资源池化
云端计算资源需要被池化,以便通过多租户形式共享给多个消费者,也只有池化才能根据消费者的需求动态分配或再分配各种物理的和虚拟的资源。消费者通常不知道自己正在使用的计算资源的确切位置,但是在自助申请时允许指定大概的区域范围(比如在哪个国家、哪个省或者哪个数据中心)
1.2.4. 可计量服务
消费者使用云端计算资源是要付费的,付费的计量方法有很多,比如根据某类资源(如存储、CPU、内存、网络带宽等)的使用量和时间长短计费,也可以按照每使用一次来计费。但不管如何计费,对消费者来说,价码要清楚,计量方法要明确,而云服务提供商需要监视和控制资源的使用情况,并及时输出各种资源的使用报表,做到供/需双方费用结清楚明白
1.2.5. 快速弹性伸缩
消费者能方便、快捷地按需获取和释放计算资源,需要时能快速获取资源从而扩展计算能力,不需要时能迅速释放资源,以便降低计算能,从而减少资源的使用费用。对于消费者来说,云端的计算资源是无限的,可以随时申请并获取任何数量的计算资源。
1.3. 四大部署模式
1.3.1. 公有云
云端资源开放给社会公众使用。云端的所有权、日常管理和操作的主体可以是一个商业组织、学术机构、政府部门或者它们其中的几个联合。云端可能部署在本地,也可能部署于其他地方,比如郑州市民公共云的云端可能就建在郑州,也可能建在洛阳。公共云主要为外部客户提供服务的云,它所有的服务是供别人使用,而不是自己用。目前,典型的公共云有微软的Azure、亚马逊 的AWS 以及国内的阿里云、腾讯云等
1.3.2. 私有云
云端资源所有的服务不是供别人使用,而是供自己内部人员或分支机构使用。这是私有云的核心特征。
2020 中国私有云市场 Top 玩家:
1.3.3. 社区云
为特定社区或行业所构建的共享基础设施的云,云端资源专门给固定的几个单位内的用户使用,而这些单位对云端具有相同诉求(如安全要求、云端使命、规章制度、合规性要求等)。云端的所有权、日常管理和操作的主体可能是本社区内的一个或多个单位,也可能是社区外的第三方机构,还可能是二者的联合。云端可能部署在本地,也可能部署于他处。
1.3.4. 混合云
由两个或两个以上不同类型的云(私有云、社区云、公共云)组成,它们各自独立,但用标准的或专有的技术将它们组合起来,而这些技术能实现云之间的数据和应用程序的平滑流转。由私有云和公共云构成的混合云是目前最流行的,当私有云资源短暂性需求过大时,自动租赁公共云资源来平抑私有云资源的需求峰值。
例如,网站在节假日期间点击量巨大,这时就会临时使用公共云资源来应急。
1.4. 云计算三大服务模式
1.4.1. IaaS
Infrastructure as a Service
, 把 IT 系统的基础设施层作为服务出租出去。由云服务提供商把 IT 系统的基础设施建设好,并对计算设备进行池化,然后直接对外出租硬件服务器、虚拟主机、存储或网络设施等。
IaaS 云服务提供商计算租赁费用的因素包括 CPU、内存和存储的数量,一定时间内消耗的网络带宽,公网 IP 地址数量及一些其他需要的增值服务(如监控、自动伸缩等)等。
如:Amazon EC2、弹性云服务器
1.4.2. PaaS
Platform as a Service
,平台即服务为客户开发的应用程序提供可部署的云环境如:Microsoft Azure、数据库服务
1.4.3. SaaS
Software as a Service,云服务提供商把 IT 系统的应用软件层作为服务出租出去,消费者可以使用任何云终端设备接入计算机网络,然后通过网页浏览器或者编程接口使用云端的软件。这进一步降低了租户的技术门槛,应用软件也无须自己安装了,而是直接使用软件如:Office 365、各种云App
1.5. 云计算的组成
云计算的组成通常可以分为6个部分,它们由上至下分别是
- 云客户端
- 云服务
- 云应用
- 云平台
- 云存储
- 云基础设施
云计算可以使我们像使用水电煤一样使用IT服务。
1.6. 云计算就在身边
在日常生活中,我们会有意或者无意的使用很多云计算产品,如百度网盘、支付宝和微信小程序、钉钉等。
百度网盘为用户提供 IaaS 服务(存储资源服务),用户可在百度云端存储图片、视频等。IaaS提供 IT 硬件,而用户通过网络使用类似电脑主机这样的硬件服务。
支付宝和微信小程序平台为开发者提供了 PaaS 服务,第三方开发者可在微信和支付宝开发各种小程序;PaaS 服务就是提供基于IT硬件的开发平台,开发人员只需要通过网络使用开发平台并调用相应的接口就可以进行软件开发。
钉钉为企业提供在线办公软件服务,企业和员工可以在线使用软件进行日常业务活动;这就是SaaS提供的软件服务,与用户平时使用的电脑软件和手机软件类似,只不过软件后台运行在遥远的云端服务器。
二、云计算的发展
云计算1.0 | 计算虚拟化(Hyper-v. XEN. KVM. Vmware EXS),虚拟化为了更好的利用率 | 以虚拟化为核心 |
---|---|---|
云计算2.0 | 软件定义与整合 (Openstack、 Vmware、 AWS),基础设施云化、资源服务标准化、自动化 | 以资源为核心 |
云计算3.0 | 云原生与重构业务 (Docker、 CoreOS、Cloud Foundry),应用云化、敏捷应用开发与生命周期管理 | 以应用为核心 |
三、传统IT建设&云计算IT建设
3.1. 企业 IT 的烟囱架构
- 不开放硬件平台、软件与硬件捆绑。
- 烟囱式系统建设,IT 成本高(硬件/能耗/管理)。
- 建设周期长,无法快速提供与部署。
- 每个系统按峰值规模建设,资源利用率低。
3.2. 云计算IT架构的水平化架构
- 开放硬件平台、软件与硬件解耦。
- 分布式设计、软件定义存储。
- IT 建设由传统的IOE架构逐步转向互联网架构。
- 集中资源池的共享、虚拟化、分时共享。
- 动态调配、弹性伸缩、低成本、标准化硬件。
- 芯片、新介质取得突破,以及CPU、硬盘、网络性能大幅提升为 IT 架构的水平化演进提供了技术支撑。
四、云计算的关键技术
作为众多 IT 服务的集合,云计算的底层需要众多关键技术的支撑,而且还不断的有新的技术被产品化/服务化,扩展云服务的范围与边界。
4.1. 虚拟化技术
虚拟化是一种计算机资源管理技术,将各种「实体资源抽象、转换成另一种形式的技术都是虚拟化。虚拟化是资源的逻辑表示,其不受物理限制的约束。(一个物理主机只能运行一个操作系统,虚拟化可以运行多个操作系统。
虚拟化就是通过软件与硬件解耦,实现资源池化与弹性扩展。主流虚拟化技术有 KVM,Xen,VMware,Hyper-V 等。目前 KVM 是最受欢迎的虚拟化技术,AWS、阿里云、华为云、腾讯云目前也都从 Xen 转向了KVM。
除了软件虚拟化,还有硬件辅助虚拟化(如 Intel-VT 或 ADM-V),比如通过引入新的指令和运行模式,来解决软件无法实现完全虚拟化的问题,同时也能进一步提升虚拟化的性能与处理能力。
4.2. 分布式技术
分布式就是把同一个任务分布到多个网络互连的物理节点上并发执行,最后再汇总结果。分布式系统的扩展性,性能、容量、吞吐量等可以随着节点增加而线性增长,非常适合云计算这种大规模的系统。在云上主要应用的有分布式存储、分布式数据库、分布式缓存,分布式消息队列等。
将数据存储在不同的物理设备中。这种模式不仅摆脱了硬件设备的限制,同时扩展性更好,能够快速响应用户需求的变化(整合存储资源提供动态可伸缩资源池的分布式存储技术)
4.3. 数据中心联网
东西向流量增长并行计算业务(如:搜索)需要服务器集群协同运算,产生大量横向交互流量虚拟机的自由部署和动态迁移,虚机间需要实时同步大量的数据。
4.4. 并行编程技术
在并行编程模式下,并发处理、容错、数据分布、负载均衡等细节都被抽象到一个函数库中,通过统一接口,用户大尺度的计算任务被自动并发和分布执行,即将一个任务自动分成多个子任务,并行地处理海量数据。
4.5. 体系结构
云计算是一个非常复杂的系统,对整个云平台进行敏捷高效的管控运维非常重要。云管理通常涉及四个层面
- 租户端管理,让用户能有效管理使用基本的云服务
- 运营管理,涉及云服务运营策略,如资源管理、计量计费,消息通知
- 运维管理:涉及云平台的可用性与可靠性保障,如自动化运维,监控告警、运维排障等。
- 多云纳管,当前对于很多企业混合云是一个趋势,私有云+公有云,或者引入和均衡多个云厂商。所以需要提供能够统一纳管多种云,以及传统IT环境的管理平台
4.6. 云原生技术
容器、微服务和 DevOps 号称云原生三驾马车,是实现技术中台的重要组件。容器是非常轻量秒级部署的虚拟化技术,主要理念就是一次封装,到处运行。通过Linux命名空间、Cgroups 与 rootfs 构建进程隔离环境,将应用软件及其运行所依赖的资源与配置打包封装,提供独立可移植的应用运行环境。
五、云计算&虚拟化
云计算使用的核心技术是虚拟化(软硬解耦)。虚拟化其实主要提供了 laaS 模式的服务,而云计算其他模式的服务几乎都是在 laaS 的基础上发展起来的。
作为云计算的核心技术之一,服务器虚拟化凭借其大幅降低IT成本、提高业务部署灵活性、降低运维成本等优势己经得到越来越多的认可和部署。虚拟化是云计算中承上启下的核心技术,没有虚拟化技术 laas 层的聚合将无从谈起。
虚拟化是一种将硬件转变为软件(—种形式的资源抽象成另一种形式)的技术。是资源的逻辑表示,其不受物理限制的约束。虚拟化创建了一层隔离层,把硬件和上层应用分离开来,允许在一个硬件资源上运行多个逻辑应用。常见虚拟化:服务器虛拟化、网络虚拟化、存储虚拟化、桌面虚拟化等。
5.1. 服务器虛拟化
服务器虚拟化是指将服务器物理资源抽象成逻辑资源,让一台服务器变成几台甚至上百台相互隔离的虚拟服务器,不再受限于物理上的界限,而是让CPU、内存、磁盘、I/O等硬件变成可以动态管理的“资源池”,从而提高资源的利用率,简化系统管理,实现服务器整合,让IT对业务的变化更具适应力。
5.1.1. 基本概念
- Guest OS:虚拟机操作系统
- Guest Machine:虚拟出来的虚拟机
- Hypervisor:虚拟化软件层/虚拟机监控机 (Virtual Machine Monitor, VMM)
- Host OS:运行在物理机之上的OS
- Host Machine:物理机
5.1.2. Hypervisor
虚拟化通过在现有平台(裸机或操作系统)上增加一个虚拟层来实现,该虚拟层一般称为 VMM 或 Hypervisor,VMM 可以维护多个高效的、隔离的程序环境,它管理计算机系统的真实资源,为虚拟机提供接口。
- 创造并运行虚拟机的软件、固件、或者硬件。
- 以软件的方式,实现一套和物理主机环境完全一样的虚拟环境,物理主机有的所有资源,包括CPU、内存、网络1O、设备IO等,它都有。
- 相当于对物理主机的资源进行划分和隔离,供上层使用(共享硬件)
Hypervisor 是虚拟化技术的核心、虚拟化层的具体实现,市场主要厂商及产品:VMware vSphere、微软 Hyper-V、Citrix XenServer 、IBM PowerVM、Red Hat Enterprise Virtulization、Huawei FusionSphere、开源的 KVM、Xen 等。
VMM 需要实现三点:
CPU虚拟化
内存虚拟化
I/O虚拟化
5.2. 网络虚拟化
网络虚拟化是在物理网络拓扑基础之上建立的虚拟网络,它不依赖底层物理连接,能够实现网络拓扑的动态变化,并且提供多租户隔离。底层是真实的网络拓扑,而在这个网络拓扑之上虚拟出独立租户的虚拟网络。最终,虚拟网络的使用者可以自己定义网络,而无须感知物理网络。
当我们在公有云中使用 VPC 服务的时候,我们只需要定义自己的网段信息,而无须关心这个网段是否与数据中心内其他网段有冲突。定义自己的路由规则,管理自己的流量转发,这一切都依赖于网络虚拟化的实现。
5.3. 存储虚拟化
存储虚拟化使存储设备能够转换为逻辑数据存储。数据存储是类似于文件系统的逻辑容器。它隐藏了每个存储设备的特性,形成一个统一的模型,
5.4. 桌面虚拟化
桌面虚拟化是指将计算机的终端系统进行虚拟化,以达到桌面使用的安全性和灵活性。可以通过任何设备,在任何地点,任何时间通过网络访问属于我们个人的桌面系统。