每一次技术革新,每一个新技术的出现,都是为了解决先前遇到的问题和不足,为了解决一些痛点问题。同样,容器技术的诞生,也有着类似的情况。

容器技术,已经出现了许多年了,我们不去追究具体的历史,但是必须要了解其解决的痛点问题,以及它的优势所在。

首先,我们来了解几个应用部署的方式:传统的部署方式,虚拟机虚拟化部署方式,容器化部署方式,下面我们来进一步了解各部署方式的特点。

第一、 传统部署方式

传统部署方式就是“农耕时代”。

效率低下、部署慢:需要采购硬件物理服务器,然后上架,安装系统,部署环境等等,周期长,耗时;

成本高、资源浪费:硬件服务器动辄几万,加上各种路由交换设备,成本很高;

扩展迁移不方便,灵活性差:应用部署在物理机OS之上,环境部署好后,环境和OS耦合度高,复用性差,造成资源浪费,迁移时需要重新安装系统,部署环境,即使借助克隆软件,整机克隆,也很不方便,不够灵活;

可能会被限制硬件厂商:某些系统和软件、尤其时存储软件和硬件厂商绑定,迁移扩展不方便。

第二、 虚拟机虚拟化部署方式

虚拟机虚拟化是“半自动化”时代。

虚拟机虚拟化技术图示
  • 技术实现:一般是通过hypervisor层来实现硬件的虚拟化。

  • 优势:

    资源池概念:一个物理机的资源分配到了不同的虚拟机;

    容易扩展:物理机资源充足时,很容易扩展虚拟机;

    容易云化:比如私有云,AWS、阿里云等公有云的实现。

  • 局限性:

    每一个虚拟机guest OS都是一个完整的操作系统,当虚拟机数量增多时,操作系统本身消耗的资源势必增多,因此,vm 虚拟化“太重”,容易造成资源浪费,灵活性还不够好,因为都是os级别的操作。

第三、 容器虚拟化部署方式

容器技术是真正的“自动化”时代。

容器虚拟化技术图示
  • 什么是容器

    容器可以形象地理解为是一种集装箱技术,是一种 封装标准,可以将app打包,进行统一的封装。

    因此,

    1)容器是对软件和其依赖的标准化打包;

    2)容器实现了应用之间的相互隔离;

    3)不同容器之间共享同一个OS kernel;

    4)可以运行在很多主流的操作系统之上。

  • 容器可以解决的问题

    1)解决了开发和运维之间的矛盾;

    2)在DEV和OPS之间搭建了一座桥梁,是实现devops的最佳解决方案。

附 虚拟机和容器虚拟化混合使用场景示例图:

举报/反馈

运维技术分享

1041获赞 16粉丝
分享美食,享受快乐时光
关注
0
0
收藏
分享