1

我有一个(简单的 spring-boot)java 应用程序,我想在我们的 ec2 平台上部署和运行。有(除了自定义 EC2 解决方案)OpsWorks 和 Beanstalk,我认为OpsWorks 更适合,因为它更容易扩展。

哪个工具最能填补我的用户代码和 ec2 平台之间的空白?我想要:

  • 能够正确启动和关闭我的应用程序,即我希望通常的退出挂钩在应用程序重新启动/停止/关闭时运行
  • 应用程序启动失败时请注意。(部署不应标记为成功或应用程序不健康)。我想这部分需要在我的用户代码中进行一些准备,因此一旦设置成功,就可以通知容器或运行脚本。

OpsWorks 的默认 Java 配置在 tomcat 前添加了一个额外的 apache httpd。我不喜欢这个附加组件,因为它引入了在出现错误时必须调试的附加部分(例如超时配置)。

那么你会推荐一个战争或罐子解决方案吗?你会使用 OpsWorks 吗?如果您使用 OpsWorks,您是否使用额外的层/工具来管理部署?必须可以在命令行上进行部署(这样我就可以使用 jenkins 自动化 alpha 部署)。Maven 集成会很好,但不是必需的。

4

1 回答 1

0

如果您想在 AWS 上轻松部署 Java 或 Spring Boot 应用程序,Boxfuse 可以满足您的需求。

对于您的 Spring Boot 应用程序,您实际上只需要执行:

boxfuse run my-springboot-app-1.0.jar -env=prod

这将

  1. 使用准备好启动的应用程序创建 AMI
  2. 使用 Spring Boot 配置中定义的运行状况检查 url 创建弹性 IP 或 ELB
  3. 使用 Spring Boot 配置中定义的端口创建一个安全组
  4. 创建自动伸缩组
  5. 启动您的实例

任何后续更新都将作为零停机蓝/绿部署完成。

在将流量发送到新实例并使旧版本下线之前,所有部署都会自动确保运行状况检查通过。

更多信息:https ://boxfuse.com/getstarted/springboot

免责声明:我是 Boxfuse 的创始人兼 CEO

于 2015-11-13T14:49:44.437 回答