ruby-on-rails AWS OpsWorks vs AWS豆茎vs AWS云形成?

relj7zay  于 2022-12-20  发布在  Ruby
关注(0)|答案(9)|浏览(250)

我想知道使用AWS OpsWorks与AWS Beanstalk和AWS CloudFormation相比有哪些优点和缺点?
我感兴趣的是一个系统,可以自动伸缩,以处理任何高数量的同时Web请求(从每分钟1000个请求到1000万rpm),包括一个数据库层,可以自动伸缩以及。
理想情况下,我希望高效地共享一些硬件资源,而不是每个应用都有一个单独的示例。过去,我主要使用EC2示例+ RDS + Cloudfront + S3
堆栈系统将托管一些我们从Heroku迁移过来的高流量ruby on rails应用程序,还有一些python/django应用程序和一些PHP应用程序。

4jb9z9bj

4jb9z9bj1#

我想知道使用AWS OpsWorks与AWS Beanstalk和AWS CloudFormation相比有哪些优点和缺点?
答案是:那要看情况了。
AWS OpsWorks和AWS Beanstalk(我听说过)只是管理基础设施的不同方式,这取决于你如何看待它。
就我个人而言,我更熟悉Elastic Beanstalk,但每个人都有自己的特点。我更喜欢它,因为它可以通过Git进行部署。Elastic Beanstalk在幕后使用CloudFormation来启动其环境是公开信息。
在我的项目中,我使用CloudFormation构建一个定制配置的VPC环境、S3 bucket和DynamoDB表,用于我的应用。然后,我在定制VPC中启动一个Elastic Beanstalk环境,它知道如何与S3/DynamoDB资源对话。
我感兴趣的是一个系统,可以自动伸缩,以处理任何高数量的同时Web请求(从每分钟1000个请求到1000万rpm),包括一个数据库层,可以自动伸缩以及。
OpsWorks和Elastic Beanstalk使用EC2 + CloudWatch + Auto Scaling,这能够处理您所谈论的负载。RDS提供对基于SQL的可伸缩数据库的支持。
理想情况下,我希望高效地共享一些硬件资源,而不是每个应用都有一个单独的示例。过去,我主要使用EC2示例+RDS + Cloudfront + S3
根据你所指的"一些硬件资源",你总是可以在OpsWorks或Elastic Beanstalk环境中启动独立的EC2示例。目前,Elastic Beanstalk支持每个环境一个webapp。我不记得OpsWorks支持什么。
堆栈系统将托管一些我们从Heroku迁移过来的高流量ruby on rails应用程序,还有一些python/django应用程序和一些PHP应用程序。
OpsWorks和Elastic Beanstalk已经针对一系列开发环境(Ruby、Python和PHP都在列表中)进行了 * 优化 *,而EC2提供了原始服务器,您可以在其中安装任何您想要的东西。

eeq64g8w

eeq64g8w2#

OpsWorks是一个类似Chef的编排工具-事实上,它是从Chef - Puppet、Ansible或Saltstalk派生而来的。您可以使用Opsworks通过指定您希望每个资源(服务器示例、应用程序、storage - to be in。您可以通过为每个资源所处的状态的每个属性指定所需的值来指定该状态。例如,您可能希望Apache服务始终处于启动和运行状态,并且在启动时以Apache作为用户,以Apache作为Linux组。
CloudFormation是一个json模板(),用于指定您要部署的资源的状态,即您要在us-east-1中部署AWS EC2 micro t2示例,作为VPC www.example.com的一部分192.168.1.0/24。对于EC2示例,您可以通过EC2资源的user-data部分中的自定义bash脚本指定应该在该资源上运行什么。CloudFormation只是一个模板。只有当您通过适用于CloudFormation的AWS管理控制台运行该模板,或者运行适用于CloudFormation的aws cli命令(即aws cloudformation)时,该模板才会作为运行资源得到充实。
ElasticBeanstalk是一个PAAS--你可以上传特定的Ruby/Rails,node.js,Python/django或者Python/Flask应用程序,如果你运行Scala,Haskell或者其他应用程序,创建一个Docker映像,然后上传到ElasticBeanstalk()。
您可以通过运行aws cli for CloudFormation将您的应用上传到Elastic Beanstalk,也可以为Opsworks创建一个配方将您的应用上传到Elastic Beanstalk。您还可以通过Opsworks运行aws cli for CloudFormation。
)事实上,AWS关于Ruby应用程序示例的文档非常糟糕,以至于我失去了耐心,将示例应用程序嵌入到Docker映像中,并将Docker映像上传到Elastic Beanstalk。
)截至2016年9月,Cloudformation还支持YAML模板。

vlurs2pr

vlurs2pr3#

**AWS Beanstalk:**它可以在AWS云中部署和管理应用程序,而无需担心运行Web应用程序的基础架构。无需担心EC2或其他安装。
AWS OpsWorksAWS OpsWorks只是一种应用程序管理服务,可让新的DevOps用户轻松建模和管理整个应用程序

yqhsw0fo

yqhsw0fo4#

在Opsworks中,您可以跨堆栈共享层的“角色”,通过组合底层示例可能执行的特定作业来使用更少的资源。
层兼容性列表(只要安全组设置正确):

HA Proxy : custom, db-master, and memcached.
MySQL :  custom, lb, memcached, monitoring-master, nodejs-app, php-app, rails-app, and web.
Java : custom, db-master, and memcached.
Node.js : custom, db-master, memcached, and monitoring-master
PHP : custom, db-master, memcached, monitoring-master, and rails-app.
Rails :  custom, db-master, memcached, monitoring-master, php-app.
Static :  custom, db-master, memcached.
Custom : custom, db-master, lb, memcached, monitoring-master, nodejs-app, php-app, rails-app, and web 
Ganglia :  custom, db-master, memcached, php-app, rails-app. 
Memcached :  custom, db-master, lb, monitoring-master, nodejs-app, php-app, rails-app, and web.

参考:http://docs.aws.amazon.com/opsworks/latest/userguide/layers.html

0g0grzrc

0g0grzrc5#

AWS CloudFormation -创建和更新您的环境。
AWS Opsworks -像我们管理Chef或Puppet那样管理环境中的系统
AWS Beanstalk -创建、管理和部署。
但就我个人而言,我喜欢CloudFormation和OpsWorks,因为它们都充分利用了其功能。
使用CloudFormation创建您的环境,然后您可以从云形成脚本调用Opsworks来启动您的计算机。然后您将有Opsworks堆栈来管理它。例如,通过使用Opsworks在Linux系统中添加一个用户,或者使用厨师食谱修补您的系统。您也可以写下厨师食谱用于部署。否则,您可以使用CodeDeploy专门构建用于部署。

pobjuy32

pobjuy326#

AWS OpsWorks-这是AWS管理服务的一部分。它有助于使用脚本配置应用程序。它使用Chef作为此应用程序管理和操作的开发操作框架。有一些模板可用于配置服务器、数据库和存储。还可以自定义这些模板以执行任何其他任务。开发操作工程师可以控制应用程序的依赖项和基础设施。
AWS Beanstalk-它为Java、Node Js、Python、Ruby Go等语言提供了环境。Elastic Bean stalk提供了运行应用程序的资源。开发人员不必担心基础设施,他们对基础设施没有控制权。
AWS CloudFormation- CloudFormation具有按顺序管理AWS资源的示例模板。

cedebl8k

cedebl8k7#

正如许多其他人评论的那样,AWS Beanstalk、AWS OpsWorks和AWS Cloud Formation为不同的问题提供了不同的解决方案。
为了完成

I am interested in a system that can be auto scaled to handle any high number of simultaneous web requests (From 1000 requests per minute to 10 million rpm.), including a database layer that can be auto scalable as well.

考虑到您正处于迁移过程中,我强烈建议您开始考虑AWS Lambda和AWS DynamoDB解决方案(或混合解决方案)。
这两个都是专为自动缩放在一个简单的方式,可能是一个非常便宜的解决方案。

ccgok5k5

ccgok5k58#

如果您需要部署需要更新其EC2示例的应用程序,则应使用OpsWorks代替CloudFormation。
如果您的应用程序需要其他AWS资源,如数据库或存储服务,则在此场景中,请使用CloudFormation与其他资源沿着部署Elastic Beanstalk。

fgw7neuy

fgw7neuy9#

只要使用地形和ECS或EKS。
opsworks,弹性豆茎和cloudformation老技术现在。-)

相关问题