VMware与Docker容器性能分析:50页案例总结免费领取

2025-03-01
来源:网络整理

“ 50页性能分析案例的摘要”

长按QR码免费获取

01

本质差异

VM()创建一个虚拟层,虚拟化操作系统以及基于主机计算机和主机计算机操作系统的虚拟化仓库,然后安装应用程序;

(容器),在主机和主机机器操作系统上创建引擎,然后根据引擎安装应用程序。

因此,问题是,没有操作系统,如何运行程序?

02

使用差异

尺寸

01

在主机机器的操作系统上创建引擎,并直接在主机的操作系统上调用硬件资源,而不是虚拟化操作系统和硬件资源,因此操作速度很快。

这实际上是一台虚拟机,可以安装虚拟机并拔出镜像文件。运行后您会知道的。差异很明显。打开虚拟机大约需要2分钟,但只需2秒钟。

02

首先,它可以使您可以以“容器化”方式部署应用程序非常容易和方便。它就像一个容器一样,包装所有依赖关系,然后将它们部署在其他服务器上很容易,因此更改服务器后将找不到各种配置文件,这解决了编译时依赖关系和运行时依赖关系的问题。

其次,隔离使应用程序在运行时感觉就像在沙箱中一样。每个应用程序认为自己是系统中唯一运行的程序。就像现在的示例一样,A取决于2.7,而A也取决于B,但B取决于3。通过这种方式,我们可以基于2.7和基于系统中3的容器部署一个容器,以便我们可以在系统中轻松部署系统中的多个不同环境来解决依赖关系复杂性问题。这里的一些朋友可能会说虚拟机也可以解决此类问题。诚然,虚拟化可以做到这一点,但这需要硬件支持虚拟化并启用BIOS中与虚拟化相关的功能。同时,需要两个操作系统才能在系统中安装。虚拟机的出现解决了操作系统和物理机器之间的强耦合问题。但这很轻巧。它仅需要内核支持,也不需要硬件和BIOS的强制性要求。它可以轻松,快速地在系统上部署多个不同的容器环境。容器的出现解决了应用程序和操作系统之间强耦合的问题。

正是因为以申请为中心,应用程序和应用程序所需的环境都包装在镜像中,并且一次构建并在任何地方运行。此功能完美地解决了在传统模式下应用程序迁移所面临的环境不一致问题。同时,无论是如何启动内部应用程序,我们都将或运行作为统一标准。这样,应用程序启动是标准化的,并且无需根据不同的应用程序记住大量不同的启动命令。

基于特征,使用连续集成的常见过程如下:

它的基本拓扑如图1所示

熟悉它的朋友知道这家初创公司非常快,可以说要在几秒钟内开始。在上述五个步骤中,1和5较短,整个连续集成主要在中间采取三个步骤,即推动和拉力仍然无法达到最终的平滑性要求。让我们分析推动和拉动的时间和解决方案:

03

出于众所周知的原因,在中国建造时,互联网的官方镜子是一个很大的瓶颈,甚至某些公司的环境也是如此。

在这种情况下,建议使用国内镜像来源或自己建造私人仓库,保存项目所需的基本镜子,并在施工过程中控制网络传输到国内或,以便无需考虑网络问题。

该文件旨在消除该过程中不必要的文件和目录,目的是使此过程尽可能快,高效,并在没有不必要的“垃圾”的情况下构建。

最小化镜像的数量可以加快容器的启动,但是在这里我们还需要权衡另一个问题:可读性。您可以编写一个非常复杂的镜子,以创建最少数量的图层,但同时您的可读性也会降低。因此,我们必须在镜层的数量和可读性之间做出妥协。

04

升级到V2后,添加了许多与安全有关的检查。 V2中镜子的存储格式变成了GZIP,在压缩过程中,镜子还占用了很多时间。让我们简要分解推动过程。

要磁盘,请将该层的文件系统压缩为本地的临时文件;

计算镜像并将其上传到重复3-5。

这样的设计将导致推动非常慢。如果使用它,则需要考虑本节中提到的网络影响。公共镜像库还需要考虑安全因素。

同时,已经建立了太多的安全预防措施(例如双向证书身份验证等),主要是为了防止在公共云环境中进行伪造和过度镜像。但是在值得信赖的环境中,如果您自己控制推动过程,许多措施将是多余的。

05

拉镜的速度对于服务启动速度至关重要。幸运的是,您可以在V2之后并行拉动,这大大提高了速度。但是仍然有一些次要问题影响启动速度:

下载和解压缩图像是串行的;

连续减压。由于V2都是被解压缩的GZIP,因此即使并并行下载,它仍会串行解压缩。减压时间比中的网络传输更长。

通信,在拉动过程中,未提供下载内容,而仅提供下载URL和身份验证。该部分延长了网络传输,并且仍然需要从后端存储中检索一些,并且仍然有一些延迟。

通过现在的分析,您可以看到,推动和拉动实际上是网络传输(主要)和安全预防措施(稍微)的主要时间,整个传输过程甚至超过了所有其他步骤。这样,我们可以利用便利来构建本地企业级的镜像仓库,以将网络传输传输到,同时,我们完全控制了推动和拉力的过程,从而提高了效率并解决了安全问题。可以说,我们用一块石头杀死了两只鸟。

在此的帮助下,我们距离最终追求丝滑的连续整合目标只有一步。我们解决了依赖性和环境问题,并解决了安全和快速图像传输的问题。接下来是容器的部署和管理。

已经实现了基本技术的创新,其出现已经使开发人员与系统纠缠不清,但是阻碍企业使用的问题是大规模部署,容器的管理问题以及缺乏企业级容器工具和系统。

创建图像后,需要将其发布到测试和生产环境中。由于其资源使用少,在单个服务器上部署数百或数千个容器也就不足为奇了。如何在此阶段更合理地使用它也是一个困难。开发团队需要考虑如何创建可扩展和可扩展的分销环境。

提供一个用户友好的Web管理接口,丰富的文件格式和完整的API接口,并通过实现复杂的应用程序结构的非常简单的文件描述来更轻松地部署。此外,它还提供了一个丰富的企业应用程序商店,使创建一键式服务成为可能。这可以快速构建应用程序方案,而开发人员只需要注意开发本身即可。

打开了最后一个链接后,整个连续集成平台体系结构将演变为图2所示的以下内容。

03

特征

用户只需几分钟即可“重新修复”自己的程序。依靠“复制”模型,应用程序修改也非常快,可以说它已经达到了“随心所欲,代码更改”的状态。

然后,您可以创建一个容器来运行应用程序。大多数容器的启动时间不到1秒。由于管理程序的开销,容器具有高性能,并且可以在同一主机中运行更多的容器,从而使用户能够尽可能充分利用系统资源。

使用此功能,开发人员只需要关心在容器中运行的应用程序,而操作人员只需要关心如何管理容器即可。设计的目的是增强开发人员编写代码和应部署应用程序的生产环境的开发环境的一致性。这减少了“在开发过程中一切正常,必须是操作和维护问题(测试环境正常,并且在启动问题之后,这将是操作和维护问题的问题)”

目标之一是从开发,测试,部署和在线操作中缩短代码周期,以便您的应用程序可移植,易于构建且易于协作。 (用外行的话来说,这就像一个可以容纳许多物体的盒子。如果需要这些对象,则可以直接将大盒子拿走而无需从盒子中逐一拿走。)

还鼓励以服务为导向的建筑和微服务架构。建议一个单个容器仅运行一个构成分布式应用程序模型的应用程序或过程。在此模型下,应用程序或服务可以表示为一系列内部互连的容器,使部署应用程序,扩展或调试应用程序以分布式方式非常简单,还可以改善该程序的内省。 (当然,可以在一个容器中运行多个应用程序)

学习安排!

我给你一些信息

“ 50页性能分析案例的摘要”

扫描下面的QR码以免费获取

以上内容不是出于商业目的。如果存在知识产权问题,请在权利持有人的后端留言,我们将立即处理。

“看”有点

分享