云是否为企业 Java Web 应用程序做好了准备?寻求 Java EE 托管建议 [已关闭]

2022-09-04 03:28:23

问候这里所有聪明的人!

我想问一下,将Java企业Web应用程序部署到Amazon EC2等云中是否可行或是一个好主意。更确切地说,我正在为一个应用程序寻找基础架构选项,该应用程序将处理数百个用户,这些用户具有长时间但既不占用CPU也不占用内存的会话。我正在考虑专用服务器,虚拟专用服务器(VPS)和EC2。我注意到有一个名为JBoss Cloud的项目,所以人们正在努力实现这样的部署,另一方面,它似乎还不成熟,我不确定云是否为这种应用程序做好了准备,这与Twitter等典型的基于云的应用程序不同。是否建议将其部署到云中?有哪些优点和缺点?

该应用程序是一个Java EE 5 Web应用程序,其主要功能是使用户能够通过组合可用的部件来组合自己的定制产品。它使用无状态和有状态会话 Bean 和 JPA 将实体持久化到 RDBMS,并通过 Web 服务从公司的库存系统获取有关部件的信息。除了外部用户之外,它还被少数内部用户使用,他们根据公司的LDAP进行身份验证。应用程序应处理大约 300-400 个并发用户构建其产品,并且应该具有合理的可伸缩性和可用性,尽管这些质量在此阶段仅具有中等重要性。

我提出了一个由防火墙(FW)和负载平衡器组成的架构,支持粘性会话和https(在云中,这将被EC2的弹性负载平衡服务和应用程序服务器上的FW所取代,在物理架构中,负载平衡器将是一个硬件),然后是两个物理集群应用程序服务器与Web服务器相结合(因此,如果一个失败, 用户不会失去他/她长期构建的产品),最后是数据库服务器。数据库服务器需要一个从属备份实例,该实例可以在主实例发生故障时替换主实例。这应该提供合理的可用性和容错能力,并提供良好的可扩展性,只要单个RDBMS可以保持负载,这应该在相当长的一段时间内是可以的,因为大多数操作都是使用有状态bean在内存中完成的,并且只是偶尔从数据库中存储或检索,并且数据量也很低。一个有问题的部分可能是对远程清单系统Web服务的依赖,但是通过在应用程序中很好地缓存其输出,它也应该没问题。

不幸的是,我对系统资源(CPU/内核的内存大小,数量和速度)只有模糊的概念,这是几百个用户需要的“普通Java EE应用程序”。根据亚马逊的实际产品,我粗略且毫无根据的估计是,1.7GB和单个2核“现代CPU”,速度约为2.5GHz(高CPU中型实例)应该足以满足两个应用程序服务器中的任何一个(因为我们可以通过配置更多的应用程序服务器来处理更高的负载)。或者,我会考虑使用大型实例(64b,7.5GB RAM,1GHz时的2个内核)

因此,我的问题是,这种部署到云中是否在技术和财务上可行,或者专用/ VPS服务器是否是更好的选择,以及是否有一些类似的东西的实际体验。

谢谢!/雅各布·霍利

PS:我在云案例研究中发现了 JBoss EAP,该案例研究表明可以将实际的 Java EE 应用程序部署到 EC2 云,但遗憾的是,没有关于拓扑、实例类型或任何内容的详细信息:-(


答案 1

我正在从单个 EC2 高 CPU 中型实例为“几百个用户”提供服务。没有负载均衡,没有专用的数据库服务器,一点也不花哨。只需一个盒子。此外,我正在使用一些服务:

正如我所说,没有什么花哨的 - 至少在亚马逊的云环境中。而且一切都不到200美元/月。关于定价,您应该小心。亚马逊在混淆主要成本方面做得很好。例如,查看 CloudFront 定价,您可能会查看每 GB 0,15 美元,但忽略每 10,000 美元 0,对于大量请求来说,这是一个可笑的小价格,不是吗?大惊喜:我们的 CloudFront 成本中有 2/3 用于请求(每个请求约 3 KB)。EBS 的 I/O 请求也是类似的情况。

由于扩展非常容易(使用更大的实例,在关系数据库服务上移动数据库),我建议您从相同的设置开始。正如你所说,扔进更多的盒子非常简单(假设你的设置支持动态添加/删除节点)。这使得通过反复试验选择适当的设置变得可行 - 一些彻底的负载测试应该可以完成这项工作。选择适合您预期负载的东西(加上一些额外的功率),并在获得生产数据后立即增长/缩小。

结论是:是的,当然可以在EC2上托管Java EE应用程序:)

编辑:作为旁注:将EC2与传统托管的定价进行比较就是比较苹果和橙子 - 至少只要您没有获得网络的SLA,几乎无限的可扩展性,没有硬件问题,几乎无限和冗余的存储,不同的可用区和一堆额外的服务。如果有人告诉你传统托管更便宜,他可能是一个对自己的工作感到焦虑的系统管理员;)不要误会我的意思,它更便宜 - 但你花更少的钱得到的要少得多。

顺便说一句,我与亚马逊没有任何关系......但我觉得我应该因为成为一个好的发言人而得到奖励,不是吗?:D


答案 2

推荐