我目前正在考虑为我的Ruby on Rails SaaS Web应用程序托管解决方案,我看到的最大问题是如果我使用像Amazon EC2这样的东西,那么我仍然需要配置我自己的服务器并安装我的东西需要(例如数据库,编程框架,应用服务器等)。这些中的每一个都是出错的机会。我还要担心我的数据如何备份,频率以及其他一些“低级”细节。作为一个创业公司,我没有系统管理员的资源,所以必须自己玩一个。我目前为一家初创公司做了一些工作,而我的老板总是在谈论EC2有多棒,因为它让我们“摆脱了硬件业务” - 但实际上,它并不是那样,因为我们仍然需要设置服务器实例,仍然需要安装软件,仍然需要正确配置软件。感觉我们仍然处于硬件业务中,只是因为我们并不真正拥有我们正在使用的服务器。
相比之下,像Heroku这样的服务(我相信它实际上使用了EC2),但基本上处理了所有低级细节。他们为我做自动备份,我只是指定频率。他们已经设置了服务器配置。他们有办法管理它并使其保持运行,因此我不必监控流量。我可以专注于我的应用程序并只是部署代码,让他们担心管理并确保使用Web服务器正确配置数据库,并且正确的文件夹具有权限。
Heroku的问题很明显,如果我想修改它,我无法控制这些东西。 Heroku使用nginx作为它的Web服务器;如果我想在Apache上使用Phusion Passenger来保持RoR开发的“前沿”,我就是SOL。如果我需要在生产中做一个快速补丁(我知道,所有邪恶的根源,但有时会发生)我没有对Heroku服务器的SSH访问。如果我需要设置一个新的数据库用户以允许其他人远程访问数据,我认为我不能这样做。最糟糕的是,如果服务器发生了 事件,我无法做任何事情,除非等待Heroku修复它。
基本上,在什么时候,如果有的话,开发人员是否可以专注于我们的代码和应用程序,而不必使用服务器配置来运行sysadmin?作为一个资源有限且配置服务器知识有限的初创公司(足以通过),我是否会更好地牺牲一些可配置性来让别人担心硬件/软件的结束?
答案 0 :(得分:1)
使服务器配置项目的一部分,并使用脚本来设置和拆除服务器。将所有内容保存在VCS下并定期使用脚本来重新创建开发设置。
答案 1 :(得分:-1)
我对学习如何不感兴趣 配置Apache,ModRails,Phusion, Mongrel,Thin,MySQL等等。 Heroku我不担心。 nginx是 Web服务器,PostgreSQL就是 数据库。他们已经安定下来了 Ruby / Rack适用于所有新应用。构架 在Rack上运行包括Rails,Merb, 和西纳特拉。选择有限。