为什么Docker、Vagrant、Ansible 这样的工具会如此受欢迎?

简介: 本文讲的是为什么Docker、Vagrant、Ansible 这样的工具会如此受欢迎,【编者的话】本文就目前应用系统包含越来越多的组件,复杂性越来越高,运维越来越难,以“会话”的角度来解释了Docker、Vagrant和Ansible这类工具流行的原因。
本文讲的是为什么Docker、Vagrant、Ansible 这样的工具会如此受欢迎 【编者的话】本文就目前应用系统包含越来越多的组件,复杂性越来越高,运维越来越难,以“会话”的角度来解释了Docker、Vagrant和Ansible这类工具流行的原因。诚然,现在的系统已经不再是单一平台就能解决;多平台,多组件已经是常态,Docker、Vagrant和Ansible这类工具的出现,让我们部署、管理以及维护系统变得更加轻松。

应用栈的复杂性一直都在增长,其复杂性也越来越高。虽说应用栈一直都很复杂,但是从来没有像现在这样:这么多的服务,这么多的工具,这么多高性能计算机可用,这么多的新技术需要尝试,并且人们更迫切需要用更新、更酷、更简洁的方法来处理问题。就好比有很多玩具可以玩,而且玩具的数量还在不断增加,以至于玩具盒都装不下它们了。

如果你不熟悉 stackshare.io ,那就去看一看。那里有很棒的资源,你可以从这个网站看到很多公司是怎么用应用栈开发他们应用的。它们不仅实用,还相当有意思。

花几分钟看看那里的一些技术栈,你就会发现一些已经组装好的技术栈实在是太吸引人了。这些是我特别喜欢的典范:(深呼吸)EC2 S3 Qubole MongoDB Memecached Redis Django Hadoop nginx Cassandra MySQL Google Analytics SendGrid Route53 Testdroid Varnish Zookeeper。

那里面有web服务器,web应用服务器,缓存代理服务器,挖掘服务,小部分Services-as-aservice,还有六种不同特色、功能的“数据库”(里面既有开源的也有付费的服务,当然,未来需要付费的将会越来越少)

在以前,如果你在白板上写 我们需要六种数据库!!! 这是不可想象的,但是为了满足商业需求,基础设备迅猛发展,需要六种数据库这种状况也已经出现。一个开发人员认定了一个新工具是最好的,那么无论对错,这个工具会以它的方式进入了产品;那一刻,这个酷炫的新工具也就成了一个过时的应用,并且直到你重构产品前你不得不一直用(哈!)或者你离开去干别的,让下一个可怜的倒霉蛋来接着用。

怎么应对呢?

那么开发人员怎么可能处理这种错综复杂的情况呢?超出大家的预料,事实证明这种状况是可以处理的。

机智的下一代在线商业平台,基于位置识别,集赌博、约会以及信息共享于一体,他需要大量不同的服务以及组件。但是罗马不是一天建成的,再宏大的计划在起初都是很简单的,任何一个可缩放、混合的解决方案的单个组件都是起始于某处几行简单的代码。对于大部分项目组来说,某处指的是几个不起眼的开发人员的笔记本电脑和把他们结合在一起的git代码库。

我们谈论云革命,但是基本不再谈论个人电脑革命。结合虚拟化、容器化技术,当今开发人员的电脑完全能配置一个完整、复杂的多系统的环境。多“机器”现在只能是一种表面上的说法,因为这多个、单个“机器”很可能就普通地实例化在一个个人电脑上。

总结:目前安装在单个个人电脑上的复杂的、多系统应用栈的开发环境现在已经很可靠、可复制,而且部分环境或者整个环境的改变很容易在整个项目组里共享,因此每个人都可以快速重新构建相同的环境。例如,使用由Vagrant生成、Ansible编排的多个虚机,ceph-ansible可以部署、测试安装到个人电脑的多节点Ceph集群,一切都只需要一个命令:vagrant up。目前Ceph的开发人员正在使用这个工具。

这种复杂的多节点部署已经变得极为平常,这意味着当前各个机器之间的关系模型已经和管理单个机器上运行的东西一样重要了。

Docker和Vagrant之所以成功,是因为他们采用两种简单方式来表达:“这机器上有这些内容,这是启动的方法”。Ansible之所以成功,是因为他是一种简单的表达方式,“这是这些机器怎么交互,这是启动他们的方法”。综合在一起,他们可以让开发人员用一种方法来定义环境并且可以轻易的重建、部署复杂的多系统环境。

DevOps经常被谈及,它的核心思想就是会话。这可能是对的,但是当所有人都说同一种语言时这个会话就是最成功的。Vagrant,Docker和Ansible已经看到了他们的成功,因为他们让大家说同一种模型、部署的“语言”。

这篇由Greg Dekoenigsberg创作的文章来自于Easy DevOps 栏目。快来分享您的事例、建议,以此来使DevOps变得更加实用——写上经历里的工具、过程、文化,成功以及光彩或者不光彩的失败,通过osdc-admin@redhat.com发送给我们把。

原文链接:Why tools like Docker, Vagrant, and Ansible are hotter than ever (翻译:李敏 校对:魏小红)

原文发布时间为:2015-05-28
本文作者:Lemine 
本文来自云栖社区合作伙伴DockerOne,了解相关信息可以关注DockerOne。
原文标题:为什么Docker、Vagrant、Ansible 这样的工具会如此受欢迎?
目录
相关文章
|
14天前
|
安全 网络协议 网络安全
【Docker项目实战】使用Docker部署web-check网站分析工具
【4月更文挑战第20天】使用Docker部署web-check网站分析工具
44 1
|
16天前
|
安全 Linux Nacos
使用Docker运行Nacos并安装cpolar内网穿透工具实现远程访问
使用Docker运行Nacos并安装cpolar内网穿透工具实现远程访问
|
26天前
|
JavaScript 测试技术 Linux
【Docker项目实战】使用Docker部署CodeX Docs文档工具
【4月更文挑战第8天】使用Docker部署CodeX Docs文档工具
48 1
|
27天前
|
测试技术 网络安全 数据安全/隐私保护
【Docker项目实战】使用Docker部署Mininote轻量级笔记工具
【4月更文挑战第7天】使用Docker部署Mininote轻量级笔记工具
73 2
|
8天前
|
存储 Kubernetes C++
【专栏】Kubernetes VS Docker Swarm:哪个容器编排工具更适合你?
【4月更文挑战第27天】对比Kubernetes和Docker Swarm:K8s在可扩展性和自动化方面出色,有强大社区支持;Swarm以简易用著称,适合初学者。选择取决于项目需求、团队技能和预期收益。高度复杂项目推荐Kubernetes,快速上手小项目则选Docker Swarm。了解两者特点,助力选取合适容器编排工具。
|
4天前
|
机器学习/深度学习 运维 持续交付
构建高效自动化运维体系:Ansible与Docker的完美结合构建高效机器学习模型的五大技巧
【4月更文挑战第30天】 在当今快速发展的云计算和微服务架构时代,自动化运维已成为维持系统稳定性和提高效率的关键。本文将探讨如何通过结合Ansible和Docker技术构建一个高效的自动化运维体系。文章不仅介绍了Ansible与Docker的基本原理和优势,还详细阐述了如何整合这两种技术以简化部署流程、加强版本控制,并提高整体运维效率。通过案例分析,我们将展示这一组合在实际环境中的应用效果,以及它如何帮助企业实现持续集成和持续部署(CI/CD)的目标。 【4月更文挑战第30天】 在数据驱动的时代,构建一个高效的机器学习模型是获取洞察力和预测未来趋势的关键步骤。本文将分享五种实用的技巧,帮助数
|
6天前
|
运维 安全 数据安全/隐私保护
构建高效自动化运维体系:Ansible与Docker的协同实践
【4月更文挑战第29天】 在当今IT基础设施快速演变的背景下,自动化成为维护系统稳定性和提升运维效率的关键。本文将深入探讨如何利用Ansible和Docker技术搭建一个高效的自动化运维体系。通过剖析Ansible的配置管理功能与Docker容器化的优势,我们展示了一种能够实现快速部署、轻松管理和无缝扩展的自动化解决方案。文章还将分享一系列优化策略,以期帮助读者构建出既灵活又强大的自动化工具链。
|
9天前
|
运维 安全 Docker
构建高效自动化运维体系:Ansible与Docker的协同策略
【4月更文挑战第26天】 在当今IT基础设施管理领域,自动化已成为提升效率、确保一致性及减少人为错误的必备工具。本文将探讨如何整合Ansible和Docker技术,以实现高效的自动化运维流程。通过分析Ansible的配置管理特性和Docker容器化的优势,我们将展示一种创新的协同策略,旨在优化部署速度、提高系统稳定性,并简化复杂环境的管理。本研究不拘泥于传统摘要的形式,而是提供一种实践导向的方法论,帮助运维专家突破现有运维模式的局限,构建更为灵活和可持续的自动化框架。
|
10天前
|
算法 安全 Linux
Ansible自动化工具copy复制用法
Ansible 中的 copy 模块用于将文件或目录从本地计算机或远程主机复制到远程主机上的特定位置。它是一个功能强大的模块,可用于各种文件传输任务. ### 作用 将配置文件复制到远程服务器 将应用程序部署到远程服务器 将日志文件从远程服务器复制到本地计算机 备份和恢复文件和目录
Ansible自动化工具copy复制用法
|
12天前
|
存储 运维 Shell
Ansible自动化运维工具安装和基本使用
Ansible 是一款无代理的IT自动化工具,通过SSH连接目标主机执行配置管理、应用部署和云端管理任务。它使用YAML编写的Playbook定义任务,核心组件包括Playbook、模块、主机清单、变量等。Ansible的优势在于易用、功能强大、无须在目标主机安装额外软件,并且开源。安装过程涉及配置网络源、yum安装和SSH密钥设置。通过定义主机清单和使用模块进行通信测试,确保连接成功。
Ansible自动化运维工具安装和基本使用