DevOps - 构建本地开发环境
1 - 构建个人本地开发环境
在个人计算机中搭建一个精简版的、与生产环境基本一致的本地开发环境,既不会占用团队公共环境的资源,也可以缩短等待时间,从整体上提高效率。
本地开发环境的适用场景:
- 从应用程序开发的初期到单元测试阶段
- 原型开发
- 对风险或影响较大的变更进行前期调查
- 确认需要完全独占环境的工作内容
2 - 涉及的部分工具
2.1 虚拟机工具VirtualBox
利用VirtualBox能够以虚拟机方式构建个人本地环境,专属于个人,可以自由地进行开发。
在安装完虚拟机操作系统后,还需要进行各种配置操作。
2.2 虚拟环境构建工具Vagrant
Vagrant是一个虚拟环境构建工具,可以使基础设施代码化(虚拟机创建、配置和应用等),简化个人开发环境的构建操作。
Vagrant通过Vagrantfile记录虚拟机环境相关的构建步骤和配置信息,通过共享Vagrantfile可以容易地共享和创建统一的环境,也利于理解和维护。
可以很好解决只使用VirtualBox时遇到的一些问题。
- 配置完整的环境要花费一定的时间和精力
- 虚拟机镜像文件庞大,共享困难
- 对共享出来的镜像文件,难以掌握其构建步骤和配置信息
- 需要实施相应的镜像维护工作,来保持构建步骤、配置信息和镜像本身的一致性
2.3 基础设置配置管理工具Ansible
利用Ansible这个基础设置配置管理工具,可以消除构建步骤对个人的依赖,支持在不同的环境中使用相同的步骤。
可以进一步解决使用VirtualBox和Vagrant管理和使用本地开发环境过程中出现的问题。
- 不容易理解:不同人不同的编写方式和需求导致千奇百怪的Vagrantfile
- 不能添加新配置:Vagrantfile记录的是从零开始构建虚拟机的步骤,难以对已创建的众多虚拟机更改配置
- 构建步骤难以在其他环境中复用:Vagrantfile的内容依赖具体的本地开发环境,无法实现跨环境(公共开发环境、生产环境)的代码化
2.4 基础设施的配置测试工具Serverspec
可以对基础设施的配置进行测试的工具,可以实现基础设施测试代码化,提高构建和配置测试的效率。
- 测试代码即测试设计文档
- 测试代码可以复用
- 可以通过代码对测试用例进行评审
- 使用格式编写测试用例和输出测试报告
2.5 本地管理工具Git
开源的分布式版本控制系统,用于敏捷高效地管理代码版本。
DevOps - 构建本地开发环境的更多相关文章
- Vagrant 构建 Linux 开发环境
Vagrant 是一个简单易用的部署工具,用英文说应该是 Orchestration Tool .它能帮助开发人员迅速的构建一个开发环境,帮助测试人员构建测试环境, Vagrant 基于 Ruby 开 ...
- 使用 Laragon 在 Windows 中快速搭建 Laravel 本地开发环境 (转)
laravel学院 简介 对于那些使用 Windows 操作系统的同学来说,Homestead 和 LaraDock 虽说支持 Windows 系统,但是对初学者来说,安装配置起来还是有一定复杂度的, ...
- XamarinForms教程构建XamarinForms开发环境
构建XamarinForms开发环境 所谓Xamarin.Forms的开发环境,就是指在基本硬件和数字软件的基础上,为支持系统软件和应用软件的工程化开发和维护而使用的一组软件,简称SDE.对于任何的程 ...
- Python学习1:使用Aptana构建Python开发环境
使用Aptana构建Python开发环境 下载Aptana: http://www.aptana.com/products/studio3/download http://www.newasp.net ...
- Eclipse中构建scala开发环境的步骤
Eclipse是一款非常使用的开发工具,熟悉它的童鞋应该都知道,它不仅是最常用的android开发工具,还是最常用的Java开发工具.既然eclipse如此重要,本文小编就和大家一起来扒一扒在ecli ...
- vue第七单元(vue的单文件组件形式-单文件组件的加载原理-vue-cli构建的开发环境以及生命周期)
第七单元(vue的单文件组件形式-单文件组件的加载原理-vue-cli构建的开发环境以及生命周期) #课程目标 掌握安装 vue-cli 命令行工具的方法,掌握使用命令行在本地搭建开发环境,使用命令行 ...
- 从源代码构建 Go 开发环境
从源代码构建 Go 开发环境 Go 1.5 之前的版本 安装C 语言开发环境 在Go 1.5 之前的版本(比如 1.3.1.4),都会部分的依赖 C 语言的工具链,所以如果你有C 语言的开发环境,就可 ...
- Python黑帽编程1.2 基于VS Code构建Python开发环境
Python黑帽编程1.2 基于VS Code构建Python开发环境 0.1 本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Atta ...
- 【OpenStack】OpenStack系列1之OpenStack本地开发环境搭建&&向社区贡献代码
加入OpenStack社区 https://launchpad.net/,注册用户(597092663@qq.com/Admin@123) 修改个人信息,配置SSH keys.OpenPGP keys ...
随机推荐
- Event Binding in Angular
https://www.pluralsight.com/guides/angular-event-binding Introduction In this guide, we will explore ...
- Linux之df磁盘信息
df命令用于查看磁盘的分区,磁盘已使用的空间,剩余的空间 1.用法 df [选项] [文件..] 2.命令选项 -a,--all 全部文件系统-h,--human-readable 以以合适的单位来显 ...
- 模块化开发之Amd规范和Cmd规范
CMD规范:是SeaJS 在推广过程中对模块定义的规范化产出的. AMD规范:是 RequireJS 在推广过程中对模块定义的规范化产出的 // CMD define(function(require ...
- ACM-ICPC 2016 大连赛区现场赛 K. Guess the number && HDU 5981(思维+DP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5981 题意:A在[L, R]之间随机选取一个数X,之后B来猜这个数,如果猜的数比X小,那么A就告诉B猜 ...
- 单独使用ibatis做事物控制。
当项目中,只使用到了ibatis而没有使用spring来作为事物控制的时候,可以这样写: try { Reader reader = Resources.getResourceAsReader(&qu ...
- access denied
背景: 想要使用nginx转发 实现一个输出PHPinfo的页面, 比如: 访问 aaa.com/phpinfo 浏览器显示phpinfo的信息, 因为有的时候需要查看phpinfo, 所以想单独 ...
- Homebrew是什么?怎么关闭自动更新?
Homebrew是MacOS 的软件包管理器. 通过它可以安装.卸载.更新.查看.搜索任何想要安装的软件.如:git, node等. 安装Homebrew /usr/bin/ruby -e " ...
- ueditor上粘贴从word中copy的图片和文字
图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转换成二进制流的base64码目前限chrome浏览器使用首先以um-editor的二进制流保存为例:打开umeditor.js,找到UM ...
- BZOJ 2815: [ZJOI2012]灾难 拓扑排序+倍增LCA
这种问题的转化方式挺巧妙的. Code: #include <bits/stdc++.h> #define N 100000 #define M 1000000 #define setIO ...
- C++中时间转换
所需头文件 #include <chrono> #include <time.h> auto now = std::chrono::system_clock::now(); s ...