代码之家  ›  专栏  ›  技术社区  ›  Dan

使用虚拟化基础设施来实现JavaEE应用程序-可行的替代方案?

  •  2
  • Dan  · 技术社区  · 14 年前

    我们的公司构建定制的JavaEE Web解决方案。目前,我们使用标准的JavaEE分发机制(EAR/WAR档案)。 应用服务器通常由客户的IT部门管理,由于我们没有对环境的完全控制,因此可以在解决方案中引入大量的熵。例如:

    • 最新应用程序。未应用服务器修补程序
    • 应用程序中存在冲突的第三方库。服务器根
    • 未配置服务器运行时和优化参数(例如,数据库池中的连接数)

    我们正在考虑使用虚拟化基础设施来进行JavaEE应用程序分发。我们不发送EAR/WAR存档文件,而是通过应用服务器节点和预安装的应用程序发送图像。 其中一些好处与使用虚拟化基础设施的好处相同,即更好地使用硬件资源。对于我们来说,它降低了托管基础设施的熵——分布式虚拟机应该不受托管环境的影响。

    到目前为止,我看到的缺点可能是应用服务器许可证,在这里,他们将不得不为我们的解决方案使用专用服务器,但这通常已经这样做了。此外,维护虚拟化基础设施有一个复杂性,但这通常是IT部门比管理和微调JavaEE解决方案更有经验的东西。

    有没有人有这个模型的经验?缺点是什么? 我们是否不只是用另一种类型的复杂性来替换一种类型的复杂性呢?

    1 回复  |  直到 11 年前
        1
  •  1
  •   Pascal Thivent    14 年前

    我们是否不只是用另一种类型的复杂性来替换一种类型的复杂性呢?

    我想是的。首先,虚拟化基础设施仍然需要维护。第二个(这是最重要的改变)。 将负责申请 运行时(容器)。换句话说,这意味着将剥削外包出去。作为一个客户和服务提供商,我不想这样做,尤其是没有一个强有力的合同来定义规则、边界、条件等,以避免任何责任战争。这听起来很复杂,似乎不是客户选择的路径。


    更新: 回答OP的评论

    (…)在我们的经验中,客户经常会遇到基础设施、配置和管理问题,最终他们默认为我们。我们的合作伙伴(应用程序服务器供应商)在这方面已经证明是有用的。最后,我们的团队必须去客户端安装,并在配置、调优和安装方面提供帮助。我认为虚拟化模型将提供更清晰的关注分离。

    你所描述的也经常发生在我的经历中,我理解你所说的,但是,即使 决议案 在基础设施问题上,你没有 负责的 对他们来说,这是一个 巨大的 差异。我不是在推广Cya战略,我的根本区别在于:如果你开始提供基础设施服务,如果服务器出故障,如果你的客户松了钱,会发生什么?它将是 你的 故障。因此,虽然虚拟化模型确实可以提供更清晰的关注点分离,但这有着严重的非技术性影响(法律、财务),您的公司需要考虑到这一点。