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
开源的分布式版本控制系统,用于敏捷高效地管理代码版本。