2.7 KiB
2.7 KiB
互联网业务部署大致分为三个时代
- 传统部署时代(托管时代):早期将业务程序直接部署在物理服务器中,这种部署方式的优点是部署和运维都很简单。同样缺点也很致命, 如:每个应用程序都运行在不同的物理服务器上, 但可能会因为部分应用程序资源利用率不足而浪费资源。为了提高资源利用率,在同一台物理服务器上运行多个应用程序, 则可能会出现一个应用程序占用大部分资源的情况,从而导致其他应用程序的性能下降。在这个时代里服务器租赁、托管业务快速发展。
- 虚拟化部署时代(云时代):为解决托管时代服务器利用率问题,IBM研发出虚拟化技术,虚拟化技术允许用户在一台物理服务器中同时运行多台虚拟服务器,每台虚拟服务器都有自己独立的操作系统,且操作系统内的应用程序互不干扰。虚拟化技术提升了服务器资源利用率及进程安全性,但也存在一定的缺点,如业务程序难部署、启动速度慢、操作系统占用空间等。在这个时代里云厂商业务快速发展。
- 容器部署时代(云原生时代):为了解决难部署、操作系统占用空间等问题、docker公司研发了容器技术。容器相较于云服务器具有更宽松的隔离特性,多容器共享主机的操作系统、内核等。目前互联网即处于云原生时代,各个互联网巨头业务已经容器化。
Kubernetes 就是目前主流的容器管理平台。(曾经还存在过很多容器管理平台,但是最后还是被谷歌的K8S打败了)
容器和虚拟机对比
- VM之间共享硬件,而容器之间共享硬件和内核,启动容器就相当于启动一个进程,速度更快。
- VM需要安装操作系统镜像及依赖等,占用GB级别磁盘空间,而容器不需要,通常为MB
- 单机支持几千个容器,几十个VM
虚拟机 容器 重量级 轻量级 性能有限 本机性能 每个VM都在自己的OS中运行 所有容器共享主机操作系统 硬件级别虚拟化 操作系统虚拟化 启动时间(分钟级别) 启动时间(秒级别) 分配操作系统需要的内存 分配较少的内存 完全隔离,更安全 进程级别隔离,安全性相对较差