微信二维码网站建设企业管理软件销售工程师

当前位置: 首页 > news >正文

微信二维码网站建设,企业管理软件销售工程师,中国建设银行网站色彩,网站开发需要哪些能力容器技术的发展 近年来#xff0c;随着计算机硬件、网络以及云计算等技术的迅速发展#xff0c;云原生的概念也越来越受到业界人士的广泛关注#xff0c;越来越多的应用场景开始拥抱云原生#xff0c;其中容器技术的发展起着至关重要的作用。本章将介绍容器技术的基础知识…容器技术的发展 近年来随着计算机硬件、网络以及云计算等技术的迅速发展云原生的概念也越来越受到业界人士的广泛关注越来越多的应用场景开始拥抱云原生其中容器技术的发展起着至关重要的作用。本章将介绍容器技术的基础知识为后续章节的学习做好基础铺垫。 本章主要涉及到的知识点有 什么是容器了解容器技术与虚拟技术的区别。为什么需要容器介绍容器技术解决的问题。容器技术的发展历程了解容器技术的发展历史。容器是如何工作的了解容器技术的工作原理。 1.1  什么是容器 容器作为一种先进的虚拟化技术已然成为了云原生时代软件开发和运维的标准基础设施。在了解容器技术之前我们先来了解一下虚拟化技术。 什么是虚拟化技术 计算机历史上首个虚拟化技术实现于1961年IBM709计算机首次将CPU占用切分为多个极短1/100sec的时间片每一个时间片都用来执行不同的任务。通过对这些时间片的轮询这样就可以将一个CPU虚拟化或者伪装成为多个CPU并且让每一颗虚拟CPU看起来都是在同时运行的。这就是虚拟机的雏形。 计算机系统对于大部分软件开发者来说可以分为以下层级结构如图1-1所示自底向上分为硬件层、操作系统层、函数库层、应用程序层每一层都向上层提供接口同时每一层也只需要知道下一层的接口即可调用底层功能来实现上层操作而不需要详细了解下一层的具体运作机制。 图1-1  计算机层级结构示意 简单地说所谓虚拟化是将计算机的各种硬件资源例如CPU、内存、磁盘以及网络等都看作是一种资源池系统管理员可以将这些资源池进行重新分配提供给其他的虚拟计算机使用。对于管理员来说底层物理硬件完全是透明的即完全不用考虑不同的物理架构在需要各种硬件资源的时候只要从这个资源池中划出一部分即可。 虚拟化是使用逻辑来表示资源从而摆脱物理限制的约束提高物理资源的利用率。虚拟化就是在上下两层之间创造出一个新的抽象层使得上层软件可以直接运行在新的虚拟环境上。简单来说虚拟化就是通过模访下层原有的功能模块创造接口来服务于上层从而达到跨平台开发的目的。如图1-2所示虚拟机可以理解为存在于硬件层和操作系统层间的虚拟化技术硬件抽象层JVM是存在于函数库层和应用程序之间的虚拟化技术。 图1-2  计算机层级间的抽象 从上面的描述可以得知虚拟化技术至少给计算机行业带来两个巨大的改变其一就是解决了当前高性能的计算机硬件的产能过剩的问题其二是可以把老旧的计算机硬件重新组合起来作为一个整体的资源来重新使用。 此前市场上面主流的虚拟化产品有Linux平台上面的KVM、Xen、VMWare以及VirualBox等运行在Windows平台上面的虚拟化产品主要有Hyper V、VMWare以及VirtualBox等。对于这些产品来说其支持的宿主操作系统是非常广泛的可以包括Linux、OpenBSD、FreeBSD以及各种Windows等。 在传统的虚拟化技术中虚拟化系统会虚拟出一套完整的硬件基础设施包括CPU、内存、显卡、磁盘以及主板等。因此所有的虚拟机之间是相互隔离的每个虚拟机都不会受到其他虚拟机的影响如同多台物理计算机一样。 尽管传统的虚拟化技术通过虚拟出一套完整的计算机硬件实现了各个虚拟机之间的完全隔离从而给用户带来了极大的灵活性并降低了硬件成本。但是越来越多的用户发现这种技术方案实际上同时也给自己制造了许多麻烦。例如在这种环境中每个虚拟机实例都需要运行客户端操作系统的完整副本以及其中包含的大量应用程序。从实际运行的角度来说由此产生的沉重负载将会影响其工作效率及性能表现。 容器技术的出现为虚拟化技术带来了新的生机和革命性的变化。它既拥有虚拟化技术的灵活性又避免了传统的虚拟化技术的上述缺点。 所谓容器是一种轻量级的操作系统级虚拟化可以让用户在一个资源隔离的进程中运行应用及其依赖项。运行应用程序所必需的组件都将打包成一个镜像并可以复用。执行镜像时它运行在一个隔离环境中并且不会共享宿主机的内存、CPU以及磁盘这就保证了容器内进程不能监控容器外的任何进程。图1-3显示了容器的基本架构。 图1-3  容器架构 容器的功能其实和虚拟机类似无论容器还是虚拟机其实都是在计算机不同的层面进行虚拟化即使用逻辑来表示资源从而摆脱物理限制的约束提高物理资源的利用率。容器技术已经引起了业内的广泛关注。通过应用容器技术可以大大地提升应用开发、测试和部署的工作效率。 1.2  为什么需要容器 虚拟化技术已经成为一种被大家广泛认可的服务器硬件资源共享方式。实际上与传统的虚拟机相比容器有着明显的区别。 虚拟机管理系统通常需要为虚拟机虚拟出一套完整的硬件环境此外在虚拟机中通常包含整个操作系统及其应用程序。从这些特点来看虚拟机与真实的物理计算机非常相似。因为虚拟机包含完整的操作系统所以虚拟机所占磁盘容量一般都比较大一般为几个GB。如果安装的软件比较多则可以占用几十甚至上百GB的磁盘空间。虚拟机的启动相对也比较慢一般为数分钟。 图1-4  虚拟机 容器作为一种轻量级的虚拟化方案其所占磁盘空间一般为几个MB字节。在性能方面与虚拟机相比容器表现得更加出色并且其启动速度非常快一般为几秒。 图1-5  容器 图1-4和图1-5显示了虚拟机和容器之间的区别。从图1-4可以看出客户机和宿主机之间有个虚拟机管理器来管理虚拟机。每个虚拟机都有操作系统应用程序运行在客户机操作系统中。从图1-5可以看出宿主机和容器之间为容器引擎容器并不包含操作系统应用程序运行在容器中。 容器的产生为虚拟化技术带来革命性的变化。然而许多人并不理解容器的出现到底解决了什么问题 在虚拟化系统中大多数问题都是在应用系统的运行环境改变时才突显出来。例如开发者在Windows操作系统里面编写应用代码但是实际生产环境却是Linux系统。在这种情况下应用系统的某些功能就极有可能出现问题。也就是说当配套软件环境不一样的时候应用系统出现故障的几率就会大大增加。 Docker创始人Solomon Hykes曾经说过“如果测试环境使用Python 2.7但是生产环境使用Python 3那么一些奇怪的使用就会发生。或者你依赖某个特定版本的SSL库但是却安装了另外一个版本。或者在Debian上面运行测试环境但是生产环境使用Red Hat那么任何奇怪的事情都可能发生。” 除了运行环境之外发生改变的还有可能是网络或者其他方面。例如测试环境和生产环境的网络拓扑可能不同安全策略和存储也有可能不同。用户开发的应用系统需要在这些基础设施上面运行。 当用户将应用系统部署在容器中之后它们的迁移变得非常容易。容器的初衷也就是将各种应用程序和它们所依赖的运行环境打包成标准的镜像文件进而发布到不同的平台上运行。这一点与现实生活中货物的运行非常相似。为了解决各种型号、规格、尺寸的货物在各种运输工具上进行运输的问题我们发明了集装箱。把货物放进集装箱之后物流公司只负责集装箱的运输就可以了而不用再去关心集装箱里面的货物到底该如何包装、以及提供多大规格的包装箱。他们面对的就是一个个简单的集装箱。而应用容器之后部署人员面对的不再是具体的应用系统不用再关心如何为应用系统准备运行环境及其依赖的其他组件他们面对的就是一个个镜像只要把镜像部署好就可以了。 从上面的描述可以得知容器主要的特性之一就是进程隔离容器非常适合于在当前的云环境快速迁移和部署应用系统。 —————————————————- 本文节选自《Docker快速入门》 本次内容发布获得作者和出版社授权供读者个人非商业目的使用。