我有一个(简单的 spring-boot)java 应用程序,我想在我们的 ec2 平台上部署和运行。有(除了自定义 EC2 解决方案)OpsWorks 和 Beanstalk,我认为OpsWorks 更适合,因为它更容易扩展。
哪个工具最能填补我的用户代码和 ec2 平台之间的空白?我想要:
- 能够正确启动和关闭我的应用程序,即我希望通常的退出挂钩在应用程序重新启动/停止/关闭时运行
- 应用程序启动失败时请注意。(部署不应标记为成功或应用程序不健康)。我想这部分需要在我的用户代码中进行一些准备,因此一旦设置成功,就可以通知容器或运行脚本。
OpsWorks 的默认 Java 配置在 tomcat 前添加了一个额外的 apache httpd。我不喜欢这个附加组件,因为它引入了在出现错误时必须调试的附加部分(例如超时配置)。
那么你会推荐一个战争或罐子解决方案吗?你会使用 OpsWorks 吗?如果您使用 OpsWorks,您是否使用额外的层/工具来管理部署?必须可以在命令行上进行部署(这样我就可以使用 jenkins 自动化 alpha 部署)。Maven 集成会很好,但不是必需的。