Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 我可以使用DigitalOcean托管社交应用程序吗?_Ruby On Rails_Hosting_Cloud - Fatal编程技术网

Ruby on rails 我可以使用DigitalOcean托管社交应用程序吗?

Ruby on rails 我可以使用DigitalOcean托管社交应用程序吗?,ruby-on-rails,hosting,cloud,Ruby On Rails,Hosting,Cloud,我正在使用RubyonRails创建一个非常简单的照片共享社交应用程序。我使用一些Rails依赖项和MySQL作为数据库。我还需要使用我的自定义域已经购买 我有一些疑问: 如果我的应用程序需要快速扩展,DigitalOcean是否足够 我可以访问允许我安装和更改Rails方面的shell吗 我是否可以完全访问MySQL,包括备份和其他内容 对于初学者应用程序,是否有更好的解决方案 听起来您的应用程序可以在Digitalocean VPS上运行 您可以在需要更多资源时扩展Digitalocean

我正在使用RubyonRails创建一个非常简单的照片共享社交应用程序。我使用一些Rails依赖项和MySQL作为数据库。我还需要使用我的自定义域已经购买

我有一些疑问:

如果我的应用程序需要快速扩展,DigitalOcean是否足够

我可以访问允许我安装和更改Rails方面的shell吗

我是否可以完全访问MySQL,包括备份和其他内容

对于初学者应用程序,是否有更好的解决方案


听起来您的应用程序可以在Digitalocean VPS上运行

您可以在需要更多资源时扩展Digitalocean VPS。 您将拥有对VPS的root访问权限。因此,您可以自己安装Rails并更改所有您想要的内容。 对 也许一个支持Ruby的共享托管环境可以满足您的需求。
有两种方法,一种是像Heroku这样的PaaS提供商,另一种是像DigitalOcean这样的IaaS提供商

帕斯 对运行应用程序的实际架构的可见性较低,更易于扩展,但成本较高。此外,当您的可视性较低时,您就不会专注于微调代码和使用简单的体系结构选择来提高性能,而不会增加复杂性

IaaS 你要对一切负责,这意味着你需要花更多的时间在初始设置和想出一些新的东西;但这样,您就可以更好地了解应用程序如何与硬件交互,以及需要调整哪些元素来扩展

电子秤的基本IaaS设置 你可以提前猜出你网站的哪个部分最难扩展;但最终,不管你计划了多少,你最终都会遇到瓶颈。因此,这里有几个简单的步骤,您可以采取这些步骤,当您遇到性能墙时,这些步骤会延迟,并且在您遇到性能墙时更容易扩展:

专用数据库实例-从一开始就将数据库服务器移动到它自己的虚拟机上。DB服务器、缓存服务器和应用服务器的工作负载是不同的,它们在处理单个特定任务时得到了最佳优化。您还可以为DB使用VM的所有资源

Nginx负载平衡器-既然您的数据库位于单独的服务器上,您就可以创建传统的应用程序/web服务器。我建议您创建两个web服务器,并创建一个Nginx负载平衡器,以便在这些机器上分散负载。这是更多的配置,但当您添加服务器3、4、N时,这只是一个简单的配置更改

缓存!-缓存所有东西!它可以是一些简单的东西,比如在DB之前查询memcache,也可以为站点上最常见的命中URL或部分创建缓存页面,但缓存将显著缩短加载时间,还可以让您使用更少的服务器提供更多的命中,从而节省您的现金

对象存储/内容-如果您有一个重内容组件,那么从一开始就应该使用像Amazon的S3这样的对象存储。通过从一开始就将其集成到你的应用程序中,你以后就不需要重新构建它了。这将花费你更多的钱,但你也需要考虑你的头痛,你不需要管理多卷,并处理一些缩放问题出现。 配置管理:Puppet/Chef-现在您有了两种不同类型的服务器:DB、Web/App、负载平衡器、缓存-使用Puppet或Chef来设置它们是个好主意。同样,您将有一个学习曲线,但这意味着当您需要将N+1服务器添加到特定实例类型时,将需要2分钟,而不是2小时

当然还有很多其他的考虑因素,但是一开始你采取的前瞻性的步骤越多,你的扩展之路就越容易。无论您采取了多少步骤,您仍然会遇到扩展问题,因此在MVP精益启动方法中平衡这一点很重要,这样您就不会花费数月的时间来进行完美的基础设施设置,因为如果没有牵引力,您是否拥有所有服务器并不重要,因为它们不会受到大量流量的影响

这篇文章背后的基本思想是,你的主要问题是PaaS vs IaaS,如果你选择IaaS路线DigitalOcean,因为我是联合创始人,这是一个很好的选择,但最终,您与IaaS提供商的最大胜利将是在设置应用程序时做出一些明智的决定。

部署到或将帮助您快速运行应用程序,并使扩展变得非常有趣。将节省下来的时间花在构建应用程序的环境设置和管理上。