我是一个拥有一些Ruby on Rails应用程序的全栈开发人员。目前我使用Capistrano来配置运行我的应用程序的少数(~5)VPS,但我正在寻找更可靠的自动化过程的替代方案(Capistrano更适合部署)。
显而易见的选择是厨师(因为我已经认识Ruby),但经过几天的玩弄后,目前尚不清楚它是否是最佳选择: Chef客户端 - 服务器架构对我的需求来说太过分了。我不想运行服务器。
我读过一本书(可靠地部署Rails应用程序),建议大厨独唱,但是当我转到主页时,它说它已被弃用,我不想学习一些会过时的东西。 我仍然让它运行,我尝试捆绑exec刀cookbook创建(版本13),并说它不再工作,我应该下载chefDK。 我只是通过我的Gemfile安装了厨师,这很好但是ChefDK很大,我只想要一些简单可靠的部署几个盒子。 看起来有很多活动部件,过时的东西等等。
所以,我知道Chef是用于管理大型基础架构的优秀软件,但看起来它对我的用例来说太复杂了。你怎么看?你建议我继续或尝试其他的东西(例如,ansible被推销为更简单的东西)?感谢
答案 0 :(得分:2)
仅仅为了重复性而使用编排总是有利的 - 无论规模如何。将测试\开发编排工作流挂钩到Vagrantfiles后,您将不会想要回去!
我过去使用过Chef和Ansible都在使用Rails应用程序,这实际上取决于你的目标。
值得一提的是,尽管Chef和Puppet都是基于代理的(而不是Ansible),所以如果你的规模在我看来总是很小,那就太过分了,因为有一点学习它的曲线。
所以我要说的是,如果你主要想要自动化基础设施配置,Ansible可能是一个更好的选择,因为它简单,无代理并且通过SSH运行。
这就是说Ansible更趋于一的SysAD工具的并使得胶水更好,而厨师是处理发展的具体的细微差别,如版本控制更好。如果你是ruby开发者,它可能是你的盟友,因为它是代码驱动的。
我看待它的方式是:
我正在使用托管服务提供商并希望配置一些服务器,然后Ansible将是我的选择。
如果我正在运营托管服务提供商,并且需要管理大量服务器,那么Puppet将是我的选择。
如果我运行一套复杂的集成Web应用程序和一个体面的软件工程师团队,那么我的选择将是Chef。
答案 1 :(得分:2)
所以大厨独唱不会被弃用,我们仍然会追踪一些声称它的旧文档。
使用solo和Berkshelf部署rails应用程序非常简单,我在https://github.com/poise/application_examples/blob/master/recipes/todo_rails.rb
获得了示例配方至于它有点矫枉过正,这很难回答。 学习需要很多,但是堆栈中额外内容的实际开销并不大,所以它主要是一个问题,如果你需要时间来节省时间学习厨师。