持续向AWS托管的Spring Boot应用程序部署功能

时间:2018-11-27 13:12:55

标签: spring spring-boot amazon-ec2

我正在寻找有关如何将新功能连续部署到AWS EC2实例上托管的Spring Boot Web应用程序的建议/想法。我当前的工作流程:

  1. bootRepackage我的应用程序来创建战争文件。
  2. 将该文件上传到AWS。
  3. 向我的应用程序添加新功能。
  4. 再次
  5. bootRepackage
  6. 从AWS移除当前战争,然后上传新的战争。

这显然不是一个很好的工作流程,因为需要重新启动应用程序,这可能导致1)停机和2)数据库中的条目丢失(如果我使用的是Spring的默认H2数据库-我不是,我我使用的是独立的SQL Server,但仅是为这个问题指出了重点),所以我想简化它。

是否可以通过任何方法向AWS上的当前服务实例添加新功能?是否可以重新编译代码“一次完成”以防止需要重新启动应用程序?

是否有什么方法可以创建一个更好的设置,使我可以合并一个新分支以在本地进行控制,并使用该新功能将其与仍在生产中的同一实例一起推送?

提前谢谢!

更新,this确实是正确的答案吗?

1 个答案:

答案 0 :(得分:1)

如果您使用aws的单个实例并将应用程序部署到EC2实例,请为AWS EC2实例分配Elastic IP

  

弹性IP地址是为动态设计的静态IPv4地址   云计算。弹性IP地址与您的AWS关联   帐户。使用弹性IP地址,您可以掩盖   快速将地址重新映射到另一个实例或软件   实例中的实例。

  1. 在另一个AWS EC2实例中部署应用程序的新版本
  2. 应用程序就绪后,将弹性IP从现有EC2实例重新分配给新的EC2实例

弹性IP是实现蓝绿色开关的最简单方法。