一般而言,我对整个Netflix OSS堆栈和部署还很陌生。作为我当前所学知识水平的背景,我的主要角色是担任前端应用工程师。但是,我很喜欢操作方面的内容,因此我试图为新项目设置新的部署策略和工具。
我们的目标
- 超级轻松的部署(我们想按一下按钮以更新生产)
- 自动化部署到测试环境(使用Jenkins)
- 易于维护(我们有一个要编写的应用程序,不想花时间摆弄生产问题)
- 能够处理面向服务的体系结构(许多小型应用,各种语言和数据存储)
- 足够的灵活性以确保我们很快就不必更改策略(我们已经在努力摆脱RightScale)
如果可以省下一些麻烦,我们可以增加一些初始设置时间。
因此,按照这些思路,我一直在听播客,观看Ops演讲,阅读大量博客文章,并根据我们的目标以及我认为是最佳实践的想法,我们开始使用Asgard,将我们的包装放入罐子,然后放入AMI。
我们已经计划了所有这一切,并且喜欢该流程与使用Chef服务器和即时聚合实例相比的优势(由于时间表有限且对Chef服务器工作流程缺乏理解,我们认为这很容易出错)。但是,一位同事自己环顾四周,觉得Elastic Beanstalk满足了我们的需求。
我研究了它,并使用WAR文件和附加的RDS数据库启动了一个测试环境。似乎一切正常,我相信我们可以通过AWS API使用Jenkins将部署自动化到测试环境。似乎很简单...也许太简单了。
我想知道的是,有什么收获?如果Elastic Beanstalk如此简单和有效,为什么不谈论更多呢?对于两种不同的部署策略,我很难找到足够的客观见解和事实,因此我想四处询问。
您是否使用Elastic Beanstalk?如果是这样,为什么和什么因素导致了这一决定?你喜欢什么和不喜欢什么?
如果您不使用而是考虑使用Elastic Beanstalk,则使用什么,为什么不使用Elastic Beanstalk?
SOA的基于Elastic Beanstalk的部署策略的优缺点是什么?也就是说,Elastic Beanstalk是否可以与许多相互依赖的小型应用程序很好地工作?