我是一名开发人员,因此在服务器管理方面的经验远不如我想象的那么丰富。本质上,我正在尝试弄清楚如何创建可用于开发、测试、准备和生产的基础映像 (AMI)。
发展
到目前为止我的想法是使用打包机创建 AMI,还可以将其导出为 Vagrant box。然后,对于开发,我们应该能够轻松地vagrant up
进入与生产用途相同类型的环境。我一直在测试这一点,到目前为止,由于奇怪的 SSH 问题,无法成功构建 EC2 实例……但这是另一个问题的主题。
测试
我们正在尝试使用 Atlassian Bamboo 创建构建服务器。它可以加载 AMI 并在 AWS 上启动 EC2 实例以运行构建/测试过程。我想我们会让它加载在开发阶段生成的 AMI,不确定这是否可行。还有其他人这样做过吗?
分期
当 Bamboo 中的构建/测试通过时,我们会将代码推送到发布分支并在暂存区中进行测试,正如您可能已经预料到的那样,这也会使用相同的 AMI。
生产
最后,当代码经过测试后,它会被转移到主分支并部署在运行相同 AMI 的主服务器上。
从理论上讲,这一切听起来都很简单明了。但实际上,这是一场配置噩梦。这是一个合理的过程吗?我应该坚持下去,弄清楚这一切吗?还是有更好的方法?我是否应该手动编写一个使用 AWS 控制台工具来完成所有这些工作的 bash 脚本?