云时代【1】—— 云时代的前夜:虚拟化
我们常常能听到 虚拟化、云计算、云原生 这三个词,这三者几乎总是一起出现。那么这三者是什么关系呢?当下最火的“容器”技术跟前三者又是什么关系呢?为什么我们能在各种前沿文章中看到“云原生”这个词呢?希望这篇文章能够理清一些东西。
一、云时代的前夜:虚拟化
或许更多人听过的是:容器 和 容器化,但容器化其实是虚拟化的一种。我们先从虚拟化介绍起,一步步了解事情的全貌吧。
(一)虚拟化的背景
进入21世纪后,大量企业进入以数据中心为业务运营平台的信息服务模式。然而,随着业务增长,数据中心变得越来越复杂,许多挑战接踵而来。
- 如何通过数据中心快速地创建服务并高效管理业务?
- 如何更加灵活、高效、安全地使用 和 管理各种资源,以降低运营成本?
- 如何共享已有的计算平台,而不是重复创建自己的数据中心
这些企业痛点推动了虚拟化技术的高速发展
(二)虚拟化的实现方式
为了解决上述现实问题,我们使用了虚拟化技术。首先我们看看下面这个简单的软件分层图,通过下面的图我们将能看到:不同虚拟化技术实现的作用位置是不同的。
1. 物理机
对应的是“真实的硬件层”,是提供真实的硬件环境的服务器或者计算机,有时也称为“寄主”,“宿主”。此时没有使用任何的虚拟化技术。
2. 虚拟机
虚拟机是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。
是存在于“硬件层”和“操作系统层”间的虚拟化技术 ,虚拟机能够“伪造”一个硬件抽象接口, 将一个操作系统以及操作系统层以上的层嫁接到硬件上,实现和真实物理机几乎一样的功能。 每一台逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响。
相当于小区里的楼(虚拟化物理机、逻辑物理机),每一栋都是建在小区用地(真实物理机)上。
3. 容器
是存在于“操作系统层”和“函数库层”之间的虚拟化技术。容器能够“伪造”操作系统的接口, 将函数库层以上的功能置于操作系统上。
是**操作系统层虚拟化 (OS Levelvirtualization) **技术。这种技术将 操作系统内核虚拟化,可以允许用户空间软件实例(Instances)被分割或几个独立的单元,在内核中运行,而不是只有一个单一实例运行。这个软件实例,也被称为是一个容器(containers)。