总的来说,我对整个 Netflix OSS 堆栈和部署还很陌生。作为我目前的运维知识水平的背景,我的主要角色是前端应用工程师。但是,我喜欢事物的运营方面,因此我正在尝试为新项目设置新的部署策略和工具。
我们的目标
我们可以多花一点初始设置时间,如果这样做会在将来为我们省去一些麻烦。
因此,沿着这些思路,我一直在听播客、观看 Ops 演讲并阅读大量博客文章,并根据我们的目标以及我所采取的一些最佳实践,我们已经开始制定计划,使用Asgard,将我们的包滚动到 jar 中,然后将其滚动到 AMI 中。
我们已经计划好了这一切,并且喜欢该流程与使用 Chef 服务器和动态融合实例相比的优势(鉴于我们有限的时间线和对 Chef 服务器工作流程的缺乏了解,我们认为这很容易出错)。然而,一位同事自己环顾四周,觉得 Elastic Beanstalk 满足了我们的需求。
我已经研究过它并使用 WAR 文件和附加的 RDS 数据库启动了一个测试环境。事情似乎奏效了,我相信我们可以通过 AWS API 使用 Jenkins 自动部署到测试环境。看起来很简单……也许太简单了。
我想知道的是,有什么收获?如果 Elastic Beanstalk 如此简单有效,为什么没有更多地谈论它?我很难找到关于两种不同部署策略的足够客观的意见和事实,所以我想我会四处打听。
您使用 Elastic Beanstalk 吗?如果是这样,为什么以及哪些因素会导致该决定?你喜欢和不喜欢什么?
如果您不使用 Elastic Beanstalk 但考虑过它,您使用什么,为什么不使用 Elastic Beanstalk?
基于 Elastic Beanstalk 的 SOA 部署策略的优缺点是什么?也就是说,Elastic Beanstalk 是否可以与许多相互依赖才能工作的小型应用程序一起工作?