我在一台新服务器上部署了一个rails项目,但由于我们没有经过仔细测试,因此它在使用中遇到了很多错误,实际上这个版本太过匆忙。所以我想问一下您在部署中如何避免基本环境设置问题的最佳实践经验,主要是我遇到了以下问题:
我们在系统中使用delayed_job,但是我忘了为它初始化worker,以便后台作业失败,但在我意识到检查其状态之前我没有任何异常。
缺少一些必需的第三个库 - 我们使用pdfkit生成带有html的pdf,当用户使用它时引发异常,这很奇怪。
缺少第三个文件 - 我们正在使用/ usr / share / dict / words,但它在AWS中缺失,需要手动安装,才能实现它。
有什么想法可以帮助我找到避免这些情况再次发生的最佳方法吗?添加自动化测试然后在部署后运行它?添加验证到config / application.rb如果环境没有准备就引发异常?
任何建议都可能有所帮助,谢谢!
答案 0 :(得分:2)
首先,你在写测试吗?围绕您编写的每一段代码编写测试可确保您在执行部署时能够掌握应用程序稳定性的脉搏。
CI服务器是一个持续集成客户端,它将运行您的测试套件。您可以在每次提交时将这些服务与您的应用程序集成,以确保您和您的团队生成的每个提交都会违反代码。
因此,为了保证我的部署是无争议的,我发现在部署之前所有这些测试都运行正常。
您还可以使用Capistrano编写需要在部署时完成的事项列表,例如初始化(在您的情况下,delayed_job)。