容器技术

一、什么是容器技术

有效的将单个操作系统的资源划分到孤立的组中,以便更好的在孤立的组之间平衡有冲突的资源使用需求,这种技术就是容器技术。

二、什么是容器

容器是一种沙盒技术,主要目的是为了将应用运行在其中,与外界隔离;及方便这个沙盒可以被转移到其它宿主机器。本质上,它是一个特殊的进程。通过名称空间(Namespace)、控制组(Control groups)、切根(chroot)技术把资源、文件、设备、状态和配置划分到一个独立的空间。

通俗来讲,就是一个装应用软件的箱子,箱子里面有软件运行所需的依赖库和配置。开发人员可以把这个箱子搬到任何机器上,且不影响里面软件的运行。

三、容器与虚拟机

虚拟机(VM)是用来模拟计算机系统的软件,让使用者可以在一台计算机上运行看似多台计算机的设备。在一些需要不同类型的硬件或操作系统上运行软件的需求,虚拟机是一个好帮手,这样就无需使用其他的硬件了。

自从虚拟化技术和云计算服务出现以来,大大小小的 IT 公司都将虚拟机作为降低成本和提高效率的一种方式。但是,虚拟机会占用大量系统资源。每个虚拟机不仅要运行一个完整的操作系统,还需要运行操作系统要运行的所有虚拟硬件。这样就会消耗大量的内存和CPU资源。与运行单独的物理计算机相比,这样是比较经济的;但对于某些应用程序而言却是很浪费的。

这种情况下,就促进了容器的发展。

容器(Container)是一种更轻量级,更灵活的虚拟化处理方式,它将一个应用程序所需的一切打包在一起。容器包括所有代码,各种依赖甚至操作系统,这让应用程序几乎在任何地方都可以运行。因此它的诞生,解决了一个重要问题:如何确保应用程序从一个环境移动到另一个环境的正确运行。它只是虚拟了操作系统,而不像虚拟机一样去虚拟底层计算机。

虚拟机与容器

虚拟机和容器的特点对比

四、容器技术与DevOps

DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

2014 年 11 月,Docker 作为有潜在趋势的容器技术进入了 DevOps 的世界。它通过简单的包装和应用程序运输加快了持续部署的能力,进而得到了普及。Docker 作为一项开源工具,可以将应用程序及其依赖(如配置文件等)打包到容器中,就可以在任何 Linux 服务器上运行该容器,而不会出现任何兼容性问题。

容器化是一个相当古老的概念,但 Docker 带来了一些新的东西,早期的技术却没有。

  • Docker 旨在整合大多数最近时期常用的 DevOps 工具,如 Puppet,Ansible,Jenkins等。
  • 有了 Docker ,开发人员可以轻松地将其生产环境复制为可立即运行的容器应用程序,让工作更有效率。
  • Docker 允许应用程序在笔记本电脑,内部服务器,公共云或私有云等上运行,从而实现灵活性和可移植性。管理和部署应用程序要容易得多。
  • Docker 实现了一个高级 API ,以提供单独运行进程的轻量级容器。

如今,Docker 主要由开发人员和系统管理员用于与 DevOps 相关联地构建和运行分布式应用程序。

五、容器技术与微服务

微服务(Microservice)就是把一个大型的单个应用程序和服务拆分为数十个小型的服务。一个微服务的策略可以让工作变得更为简便,它最大的一个优点是可以比传统的应用程序更有效地利用计算资源。

大多数服务都有不同的资源要求。无论是网络、磁盘、CPU还是内存,某个资源会比其他资源使用得更多。虽然云供应商可以提供针对内存、磁盘 IO 或 CPU 的不同设置,但系统仍然会留下大量的冗余资源。

资源冗余

有了微服务,混合具有不同资源分配配置文件的服务可以提供最佳利用率。

微服务提供最佳利用率

由于微服务类似于小型应用程序,因此我们必须将微服务部署到自己的虚拟机实例。可以想象,将整个虚拟机专门用于部署应用程序的一小部分并不是最有效的选择。但是,使用容器技术,可以降低性能开销并在同一台服务器部署上千个微服务,因为容器比虚拟机需要的计算资源要少得多。微服务进行容器化是很有必要的。它可以提高利用率和可用性,降低成本。

—— 完 ——
相关推荐
评论

立 为 非 似

中 谁 昨 此

宵 风 夜 星

。 露 , 辰

文章点击榜

细 无 轻 自

如 边 似 在

愁 丝 梦 飞

。 雨 , 花