VAGRANT 和 Docker的使用场景和区别
来源:互联网 发布:pokemon狙击软件 编辑:程序博客网 时间:2024/06/06 10:43
Vagrant就是你的开发环境的部署工具;而docker是你的运行环境部署工具。
为何还需要一个开发环境部署工具呢,很多国内程序员一定会问,我们平时随随便便就把一个Wamp设置好了,简单方便,开包即用。
问题是,现实的开发环境会比这复杂太多太多。数据库、缓存服务器、反向代理服务器、搜索引擎服务器(例如Sunspot或Elastic Search)、网站服务器、实时推送服务器。数据库大多数时还不止一种,为匹配各种架构一般创业公司都会起mysql及postgres,与此同时,根据你的业务需求可能还需要添入nosql或管理时间序列等各类数据库。这么多种不同的服务器,需要被配置并且完美地在一起配合工作,相信任何程序员老司机都知道,不是易事。即使你对每一块都很熟悉,每一次从头配起,你总会在某些地方栽跟头,即使依照事先做好的部署脚本来做,你还要保障每个软件工具的版本一致,然后脚本运行准确无误。即使真的有老司机熟练到每一次服务器迁移或者服务器scale up,都能准确无误地部署,那还是躲不过一个事实:老司机有一天也会离职,这项精确的部署技能如何得以香火延续?你教得再好,那也只代表你教的,线上运维问题就像打鼹鼠游戏,此处扑灭,彼处着火。
上述实际部署中会遇到的问题,不知道难倒过多少运维老司机,甚至一个小问题、小迁移,就能让他们痛不欲生、彻夜奋战。放假前五分钟能搞定的事,放假后愣是得用五个小时对付。
转而去思考一番,一个非常顺其自然的方法就是把当前的开发环境做个镜像,然后拷到U盘里,这样每一个新员工加入直接对着U盘安装就行(我有朋友的公司就这么干的!)。但这还是解决不了太多太多开发环境的设置问题,如果开发环境更迭了呢?再做一个u盘么?其他人再安装一遍么?
这个时候,vagrant的就出现了,而vagrant的出现显然就是为了解决以下两个重点问题:(1)开发环境快速部署 (2)开发环境更迭。少一个点没解决好,vagrant的存在都是伪需求。
说白了vagrant就是一个普普通通的装了一个Linux的VirtualBox虚拟机,配以vagrant 团队为之开发的一系列套件,辅助完成诸如安装初始化、文件同步、ssh、部署环境升级、功能插件安装等等一些列问题的开发环境部署套件。也没什么好神秘的
为何还需要一个开发环境部署工具呢,很多国内程序员一定会问,我们平时随随便便就把一个Wamp设置好了,简单方便,开包即用。
问题是,现实的开发环境会比这复杂太多太多。数据库、缓存服务器、反向代理服务器、搜索引擎服务器(例如Sunspot或Elastic Search)、网站服务器、实时推送服务器。数据库大多数时还不止一种,为匹配各种架构一般创业公司都会起mysql及postgres,与此同时,根据你的业务需求可能还需要添入nosql或管理时间序列等各类数据库。这么多种不同的服务器,需要被配置并且完美地在一起配合工作,相信任何程序员老司机都知道,不是易事。即使你对每一块都很熟悉,每一次从头配起,你总会在某些地方栽跟头,即使依照事先做好的部署脚本来做,你还要保障每个软件工具的版本一致,然后脚本运行准确无误。即使真的有老司机熟练到每一次服务器迁移或者服务器scale up,都能准确无误地部署,那还是躲不过一个事实:老司机有一天也会离职,这项精确的部署技能如何得以香火延续?你教得再好,那也只代表你教的,线上运维问题就像打鼹鼠游戏,此处扑灭,彼处着火。
上述实际部署中会遇到的问题,不知道难倒过多少运维老司机,甚至一个小问题、小迁移,就能让他们痛不欲生、彻夜奋战。放假前五分钟能搞定的事,放假后愣是得用五个小时对付。
转而去思考一番,一个非常顺其自然的方法就是把当前的开发环境做个镜像,然后拷到U盘里,这样每一个新员工加入直接对着U盘安装就行(我有朋友的公司就这么干的!)。但这还是解决不了太多太多开发环境的设置问题,如果开发环境更迭了呢?再做一个u盘么?其他人再安装一遍么?
这个时候,vagrant的就出现了,而vagrant的出现显然就是为了解决以下两个重点问题:(1)开发环境快速部署 (2)开发环境更迭。少一个点没解决好,vagrant的存在都是伪需求。
说白了vagrant就是一个普普通通的装了一个Linux的VirtualBox虚拟机,配以vagrant 团队为之开发的一系列套件,辅助完成诸如安装初始化、文件同步、ssh、部署环境升级、功能插件安装等等一些列问题的开发环境部署套件。也没什么好神秘的
0 0
- VAGRANT 和 Docker的使用场景和区别
- docker与vagrant的区别
- 在 OS X 上使用 Vagrant 和 Docker
- Docker和Vagrant的各方面比较[普及分享]
- 在Mac OS上安装Vagrant和Docker的教程
- Vagrant简介和使用
- Vagrant安装和使用
- 利用Vagrant和Docker搭建环境
- Docker的使用场景
- Docker的使用场景
- AJAX中同步和异步的区别和使用场景
- base64和urlencode的区别和使用场景
- NSString和SwiftString的区别和使用场景
- ng-show和ng-if的区别和使用场景
- 抽象类和接口的区别,使用场景
- 抽象类和接口的区别,使用场景
- java抽象类和接口的区别,使用场景
- 抽象类和接口的区别,使用场景
- mysql 单列索引 和 多列缩影
- (第九周项目4)广义算法库及应用(2)
- 读者写者问题
- laravel 后台权限 展示,修改
- react-native-swiper在滚动视图中默认不显示图片的问题
- VAGRANT 和 Docker的使用场景和区别
- 微信公众平台测试号申请
- 多线程下单例模式的优化思考(转)
- 2132 数据结构实验之栈二:一般算术表达式转换成后缀式
- JAVA短信验证码倒计时功能
- 【洛谷 1160】 队列安排
- 升级10.12后使用CocoaPod出现-bash: pod: command not found 解决办法
- ext 提交请求方式
- HDU 4460 求任意两点最短距离的最大距离