1、背景
物理机时代
一个物理机上安装操作系统,然后直接运行我们的软件。也就是说你电脑上直接跑了一个软件,并没有开虚拟机什么的,资源极其浪费。
缺点
-
部署慢
-
成本高
虚拟机都不开,直接上物理机部署应用,那成本能不高嘛
-
资源浪费
硬件资源没有合理利用
-
不易迁移和增加机器
每次迁移都要重新安装一模一样的运行环境等
-
受限于硬件
虚拟机时代
一个物理机上虚拟化出来多个虚拟机,每个虚拟机上进行安装操作系统,然后在虚拟机上直接运行我们的软件。比如阿里云、腾讯云等云服务器都是虚拟机。
特点
-
多部署
一个物理机上创建多个虚拟机,每个虚拟机的ip都不同,一个软件可以在不同虚拟机上进行部署。
-
资源隔离
每个虚拟机都由独立分配的内存磁盘等硬件资源,通过Hypervisor分配。
-
易扩展
随时随地都能在一个物理机上开出新的虚拟机。成本也低。
-
成本相对较低
缺点
-
虚拟机需要安装操作系统
假设我们的应用程序只有几KB,或者几十MB,但是却要在虚拟机上安装一个几百兆的操作系统来跑。
容器化时代
虚拟化技术是物理硬件的隔离,容器化技术是app层面的隔离,两者不冲突。往往容器化时代都是基于虚拟机基础之上做的资源隔离。它可以基于虚拟机的操作系统部署多服务,不再需要额外安装操作系统。
特点
-
标准