
DevOps团队面临着越来越大的压力,需要快速向客户提供更多的功能。云供应商通过具有出色的CLI和API集成的可扩展平台提供了一个解决方案。不幸的是,云供应商暴露的接口可能是不兼容的。但一些云原生工具可以帮助DevOps团队为任何云供应商建立定制的解决方案。
两个这样的工具是和。了解它们的作用以及它们如何一起工作是获得云环境更大效益的关键。
Vagrant是一个在单一工作流程中构建和管理虚拟机(VM)环境的工具。无论你是建立本地虚拟机与管理程序一起运行,还是仅仅建立云虚拟机,Vagrant都提供了一个一致的配置格式、单一的CLI和共享的配置器来安装软件和改变配置。
docker提供了将软件和支持性配置打包成镜像的能力,可以在多个平台上一致运行。Docker使DevOps团队有信心,软件在本地工作站上的运行方式与在管理云平台上的运行方式基本相同。
尽管Vagrant和Docker的共同目标是创建可重复的环境,但它们以不同但互补的方式进行。本文探讨了Vagrant和Docker如何实现它们的目标。
是一个开发、运输和运行应用程序的开放平台。它允许DevOps团队将定制的软件、支持的应用程序和库,以及配置、 *** 、文件挂载、健康检查和启动脚本的指示打包成一个独立的工件,称为镜像。
然后,镜像在一个被称为容器的轻量级、隔离的环境中执行。与通常保留固定数量的内存和严格限制cpu使用的虚拟机不同,容器的弹性更大,只消耗它们需要的内存和CPU。
这使得许多容器可以有效地并排运行,降低成本并提高规模。然而,容器并不像虚拟机那样被认为是安全的,这意味着容器并不是运行不受信任的代码的理想解决方案。

Docker
DevOps团队通常使用Docker来交付和运行,包括云原生应用,这些应用要么与消息队列集成,要么托管在平台上,响应基于云的触发器和事件。
像kubernetes这样的平台建立在Docker的基础上,允许容器被大规模地协调。此外,每个云提供商都支持在其产品中运行Docker容器的能力。现在很少能找到不支持Docker的PaaS了。
Docker还可以分发和执行基于CLI的工具,所有流行的云原生工具都提供嵌入其CLI的Docker镜像。
Docker解决了传统软件部署过程中面临的一个共同问题,即定制的应用程序在开发人员的本地工作站和生产环境中运行时可能会表现出不同的结果。这些差异往往是由于开发人员运行不同版本的,对支持Web服务器等应用程序的配置不同,或者运行与生产环境完全不同的操作系统。这些差异导致支持问题在团队之间来回跳动,评论是:”它在我的机器上可以工作”。
由于Docker镜像包括自定义应用程序的代码、所有支持的应用程序和库,镜像在容器中执行,无论在哪里运行都能提供更一致的结果。
Docker镜像很容易使用Docker Hub这样的注册表进行分发,使DevOps团队能够在他们之间快速分享镜像,并使用各种托管平台部署镜像。
在需要更复杂的应用堆栈的地方,比如在后端应用旁边部署数据库,或者相关的 *** ,Docker Compose提供了用一个命令创建和连接多个Docker容器的能力。所有容器、相关设置和 *** 配置都在一个YAML文件中定义。然后,Docker Compose读取该文件,将多个容器作为一个整体来创建和管理。
Docker还在主要的云供应商中享有近乎普遍的支持,这意味着DevOps团队在云中执行他们的Docker镜像时有很多选择。
几十年来,虚拟机已被证明是一种可靠和安全的计算资源分区和配置的解决方案。虚拟机仍然是云供应商暴露的更受欢迎的服务,许多商业和开源解决方案的团队都希望在企业内部运行虚拟机。
然而,这种多样性给DevOps团队带来了挑战。每个解决方案都暴露了不同的CLI和API来创建和管理虚拟机,使得本地开发环境和基于云的平台之间难以保持一致。
Vagrant提供了一个解决方案,它抽象了虚拟机平台之间的基本差异,允许DevOps团队用一个CLI和一致的配置语法来配置新的虚拟机。采用Vagrant的团队可以创建一致的虚拟机,无论它们是在企业内部还是在云环境中运行,并且可以在不同的环境中轻松切换。Vagrant有许多不同的用途,包括作为(macos、Apache、MySQL/MariaDB、和PHP、Perl或Python)。

Vagrant
有可能通过手动安装软件和编辑配置文件来启动虚拟机并手动配置操作系统。这并不理想,因为这个过程是不可重复的,这意味着必须为不同的操作系统和供应商手动重新创建虚拟机。这也使得以后几乎不可能了解一个虚拟机是如何配置的。
一个更好的做法是将配置虚拟机的过程自动化。Vagrant提供了一个单一的工具,用于自动为许多供应商构建虚拟机的过程。Vagrant还在上提供了大量高质量的虚拟机选择,DevOps团队可以用它来开始他们自己的虚拟机。
利用Vagrant的DevOps团队有一个单一的工具可以学习,无论他们是为企业内部平台、云平台或两者构建虚拟机。你可以轻松地调整Vagrant的配置文件,并在以后重新运行或审查这些文件,以了解虚拟机是如何构建的。
Vagrant还允许DevOps团队迁移到云端或在供应商之间迁移,而不需要重新设计他们用来构建虚拟机的过程。
Vagrant创建的虚拟机提供了高水平的隔离,通常利用现代CPU内置的专业虚拟化支持。这使得虚拟机和创建它们的工具,如Vagrant,成为安全和隔离是高度优先的更佳选择。
许多,如和,也提供官方的Vagrant盒子,DevOps团队可以在上面构建。这减少了构建自定义虚拟机的时间。
Vagrant和Docker都通过自动构建、分发和运行软件应用程序,使DevOps团队更加高效。
Docker通过镜像形式的自定义打包格式和通过容器的轻量级执行环境实现了这一目标。容器在不同的平台之间执行一致,使DevOps团队对他们的软件按预期运行更有信心。Docker得到了PaaS和FaaS云平台的良好支持,使DevOps团队可以根据自己的需要选择更佳平台。
许多容器可以在一台主机上共存,主要是–但不是完全–相互隔离,同时共享同一个资源池。这使得容器能够有效地扩展。
Vagrant通过提供一个一致的 *** 来构建现有供应商的虚拟机来实现这一目标。对于已经在虚拟机上投资的团队来说,这是一个理想的选择,因为他们依靠的是高度的隔离、安全、控制和定制。
在运行可信的代码时,Docker也提供了更好的解决方案,同时更大限度地降低了计算成本。容器之间是合理隔离的,但产生的开销却非常小。这意味着许多容器可以在一个共享的操作系统上同时运行。当团队需要高水平的隔离和安全,或者需要并排运行许多不同的操作系统时,虚拟机提供了更好的解决方案,Vagrant为以自动化和可重复的方式构建虚拟机提供了一个方便的解决方案。
Vagrant和Docker并不是相互排斥的技术,两种工具可以并肩使用。例如,DevOps团队可以使用Docker来开发和运行应用程序,同时使用Vagrant来重新创建专门的环境来再现问题。Docker甚至可以在Vagrant创建的虚拟机内运行,也许是为了测试Docker的新版本,或者在一个隔离的环境中测试作为Docker镜像分发的工具。
DevOps团队在构建、分发和运行应用程序时有很多选择。
Docker提供了一个定制的镜像格式和容器执行环境,允许大规模和有效地使用资源,并支持跨PaaS和FaaS平台。
虚拟机提供了来自许多云和企业内部虚拟机供应商的安全和隔离的执行环境,Vagrant抽象了许多差异,提供了一个单一的CLI和一致的配置语法来跨供应商实例化虚拟机。
扫描二维码推送至手机访问。
版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。
宝塔面板现在已经成为国内许多站长必备的服务器管理必备工具。相比直接使用SSH+FTP来管理服务器,宝塔面板可以提供可视化管理,包括文件管理、数据库管理、数据备份、SSL配置等等。 如果你希望更简单高效地管理您的网站及服务器,宝塔面板是不错的选择。下面是一些宝塔面板安装及常见问题:...
本章节主要是对宝塔面板的主界面的各个版本进行一个简单的说明。 宝塔面板主界面主要包括:服务器操作系统、服务器状态、站点信息、软件管理及网络流量几个部分。 Windows面板有部分功能未实现,其余部分与Linux面板同步。 系统操作...
宝塔面板中的网站管理是非常重要的一部分,也是站长经常需要使用到的功能模块。网站管理,主要用于管理和创建WEB站点。如果您是宝塔面板的使用用户,应该对此模块有充分的了解,以便于您更高效地管理网站。 宝塔面板网站管理模块包括:添加新网站、修改默认页、设置默认站点、站点列表、站点的运行与停止、备份站点、...
宝塔面板设置主要涉及的是宝塔控制后台自身的参数,包括诸如面板的开关、自动更新及SSL、面板端口设置等。虽然这部分不涉及服务器自身的管理,但对宝塔面板的设置也有其重要。 特别是面板端口、安全入口及面板密码等涉及安全的参数设置。 启动和关闭面板 如果你长时间无需使用到宝塔面板,可以考虑...
宝塔面板提供丰富的软件以一键安装,这让服务器环境搭建提供不少的便利性,站长可以根据实际需求快速编译安装以实现不同的功能需求。 软件管理,主要是宝塔提供的一些面板扩展插件。 Nginx Nginx是一个高性能的HTTP和反向代理服务器,具有轻量级、占用内存小,并发能力强等优势。 w...
JavaScript是世界上最流行的编程语言之一。今天,它为数百万个网站提供支持,并吸引了成群的开发人员和设计人员为Web构建功能。如果您是编程新手,那么 JavaScript很容易成为之一。 在最初的20年里,JavaScript主要用于客户端脚本。由于JavaScript只能在<scr...