这是我的情况: 我有大约100个EC2实例,每个人都运行一个Java应用程序(Java SE应用程序,而不是Java EE应用程序),我想将所编译的jar文件和库部署到所有实例,然后使应用程序运行在每个人的应用程序上由于应用程序不时在变化,每次我都要花两个小时才能完成这项工作。如何将java应用程序部署到大约100个EC2实例?
您是否知道是否有管理工具或软件可以帮助我自动完成这项工作,以及您的实践如何部署此应用程序?
您有在AWS上进行开发的自动部署工作流吗?
这是我的情况: 我有大约100个EC2实例,每个人都运行一个Java应用程序(Java SE应用程序,而不是Java EE应用程序),我想将所编译的jar文件和库部署到所有实例,然后使应用程序运行在每个人的应用程序上由于应用程序不时在变化,每次我都要花两个小时才能完成这项工作。如何将java应用程序部署到大约100个EC2实例?
您是否知道是否有管理工具或软件可以帮助我自动完成这项工作,以及您的实践如何部署此应用程序?
您有在AWS上进行开发的自动部署工作流吗?
由于您使用的是Java,因此您可以使用AWS Elastic Beanstalk。
开发生命周期:
http://docs.amazonwebservices.com/elasticbeanstalk/latest/dg/create_deploy_Java.sdlc.html
管理环境:
http://docs.amazonwebservices.com/elasticbeanstalk/latest/dg/using-features.managing.html
有在同一页上有更多的文章链接,可能需要阅读所有的人,但这些我觉得这两个也是你的问题最相关的。我没有使用这个产品,所以我不能给任何第一手的经验,但它似乎旨在帮助你确切的问题。
Kwatee(http://www.kwatee.net)是我们的免费和轻量级部署工具,它支持EC2实例以及弹性负载平衡。有一个小的EC2部署的简短视频here。
感谢,它似乎是一个非常酷的系统,它支持纯Java SE应用程序? – user1246500 2012-03-04 15:04:44
它部署的任何文件/可执行文件,并完全与语言无关。部署通过ssh进行(最好在EC2实例上使用kwatee并使用私有地址),并配置在ssh shell上执行的部署操作以执行安装操作,启动和停止这些过程。 – mac 2012-03-05 09:32:53
Boxfuse确实如你所愿。
为了您的Java SE应用程序,你从字面上只需要执行:
boxfuse create my-javase-app -apptype=load-balanced
boxfuse scale my-javase-app -capacity=100:t2.micro
boxfuse run my-javase-app-1.0.jar -env=prod
这将
任何后续的更新工作将作为一个零停机蓝/绿部署。
您可以使用AutoScaling启动配置和AutoScaling组启动100个EC2实例。但请坚持,需要向AWS Support请求EC2实例类型的EC2实例限制。通常,完成请求需要1个工作日。
弹性魔豆只适用于WAR文件,而不是打包在JAR一般的Java应用程序。 – Max 2015-07-22 17:19:54