Chr*_*ien 3 ruby-on-rails heroku mongodb amazon-web-services paas
从我收集到的,我的问题有很多解决方案,但我很欣赏一些从哪里开始的建议.这是我们目前在heroku上运行的堆栈:
使用Elastic Beanstalk vs OpsWorks vs CloudFormation的决定与仅我自己手动设置所有内容相关?另外,出于经济原因,如果可能的话,我不想使用像Docker这样的第三方服务.过多的选择让我对于从何处开始或如何选择感到困惑.背景:现在我真的很喜欢Heroku b/ci不必过多考虑系统管理员(在我的团队中我是唯一的开发人员),但我们最近获得了很多年度AWS学分,所以它似乎可以赚钱让我们转向AWS的意义.
小智 5
我想扩展马克的伟大答案.
由于您是唯一的开发人员,因此Cloud Formation和OpsWorks不适合您.
使用OpsWorks,您需要编写或至少知道配置实例的Chef自动化代码.另一方面,云形成本身是不够的.它将帮助您完成AWS云资源创建,但您仍需要弄清楚如何协调应用程序部署,仅适用于初学者.这些选项都不能为您提供运行和部署代码所需的一切,例如Heroku开箱即用.你需要自己实现它的一部分.
由于在EC2之上滚动自己的自动化需要比上述选项更多的努力,我认为您在AWS中有两种选择可以满足您的需求:
它是您在AWS内最接近Heroku的地方.您可能不得不花费一些时间来了解该平台,因为它不像Heroku那样直观,但最终Elastic Beanstalk将为您提供继续运行应用程序所需的所有工具,而无需花费时间在sysadmin任务上.
虽然您提到使用Docker对您来说是不可能的,但我仍然想强调使用ECS(亚马逊的Docker编排服务)作为Heroku的替代选项.
就其本身而言,ECS没有提供足够的自动化来完成您对PaaS所期望的一切.该服务旨在用作构建块,您应该扩展以满足您的需求.
幸运的是,来自Remind的人已经为你做了这件事.他们发布了一个名为Empire的开源项目,该项目根据自己的描述是"ECS之上的控制层,提供类似Heroku的工作流程".
Empire与Heroku的API兼容,其命令行实现了Heroku最重要的功能.
Empire是一个开源项目,所以如果你选择使用它,你应该准备不时地挖掘它的代码.文档并不完美,虽然项目有一些牵引力,但社区并不是很大.
总的来说,如果你愿意使用Docker运行你的应用程序,它是Heroku的一个很好的替代品 - 你为什么不应该?
我看到从Redis Labs切换到亚马逊的Redis服务(ElastiCache)的主要好处,除了您有免费的AWS信用之外,还有一个方面是,当您还可以更轻松(也更便宜)保护对Redis实例的访问权限在AWS上运行您的应用程序.
总的来说,当您迁移到AWS时,复制您与Heroku一起使用的插件相对容易.对于像Elasticsearch这样的第三方插件,您只需继续将应用程序指向相关端点即可.复制Heroku的本机插件(如部署挂钩)要复杂一些,因为迁移到AWS时无法继续使用它们.在这些情况下,通常可以找到在AWS中复制其功能的替代方法.
如果你想了解如何迁移最常见的插件,我写了一篇详细说明如何操作的文章,你可以在这里找到它:如何在AWS上复制Heroku的插件.
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
962 次 |
| 最近记录: |