本节书摘来自华章计算机《大规模Java平台虚拟化与调优》一书中的第1章,第1.2节,作者:(美)Emad BenjaminLiang) 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.2 大规模Java平台的趋势与需求
在大规模Java平台的迁移工程中,计算资源合并、JVM实例合并、弹性和灵活性以及性能是主要的发展趋势。以下的各个子章节更为详细地讨论了每种趋势。
1.2.1 计算资源合并
很多VMware客户发现他们的中间件部署快速地膨胀,并且因为成本的不断增长日益成为管理方面的挑战。因此,客户希望虚拟化的方式能够减少服务器的数量。与此同时,客户也希望借助合并的机会来合理化某个特定负载所使用的中间件组件的数量。中间件组件通常会运行在JVM之中,并且规模是成百上千个的JVM实例,所以这就提供了很多机会来进行JVM实例合并。因此,中间件的虚拟化会带来两次合并的机会—首先是合并服务器实例,然后是合并JVM实例。这种趋势得到了广泛认同,毕竟,地球上的每一家IT厂商都在考虑合并所带来的成本节省。
我们在服务行业的一个客户经历了合并服务器的过程,与此同时,将众多堆小于1GB的小型JVM进行了合并。他们将大量小于1GB的JVM合并成了两种类型:一种是4GB的,另外一种是6GB的。他们合并的方式是这样的,应用所能够使用的净RAM总量与之前的RAM数量是相同的,但是JVM实例更少了。通过这种方式,他们提高了性能并且维持了很好的服务水平协议(service level agreement,SLA)。同时,还大幅降低了管理的成本,因为与以前相比减少了要管理的JVM实例数量,这种精简的环境帮助他们更容易地维持SLA。
另外一个保险行业的客户也达到了相同的结果,同时他们能够在开发和QA环境中充分使用CPU,从而降低第三方软件许可证的成本。
1.2.2 JVM实例合并
有时候,我们会遇到这样的客户,他们会有合理的业务需求,按照这种需求,某个应用或一条业务线只会维持一个JVM。在这些场景之中,你无法真正地合并JVM实例,因为这样做会导致某个业务线应用的生命周期与其他业务线的应用混杂在一起。不过,尽管这些客户无法从合并JVM所带来的JVM数量减少中获益,但他们能够从更加充分地使用服务器硬件的可用计算资源方面获益,在非虚拟化的环境中,这些资源可能没有充分地得以使用。
1.2.3 弹性与灵活性
越来越多地发现表明应用具有季节性的需求。例如,我们的很多客户会进行各种市场营销活动,这使得他们的应用会产生季节性的流量变化。借助VMware,你就能够处理这种流量的暴增,这是通过当需要的时候自动提供新的虚拟机(VM)和中间件组件实现的。当负载平缓后,还能够自动地卸载这些VM。
对于中间件来说,在更新/增补硬件时,能够实现不停机是至关重要的,这保证了云时代的扩展性和系统的正常运行时间。VMware VMotion能够让你迁移VM时,无须停止应用或VM。在管理大规模中间件部署环境时,这种灵活性本身就足以使虚拟化中间件成为一件值得尝试的事情。我们在金融领域的一个客户,每日会处理百万级的事务,会经常使用VMotion来安排硬件的升级,这没有产生任何停机时间。否则,如果安排停机时间,会给他们的业务带来很高的成本。
1.2.4 性能
客户经常会报告说,在虚拟化的时候,提升了中间件平台的性能。性能的提升一部分源于升级的硬件,客户在虚拟化项目的时候通常会更新硬件。一些性能的提升则是因为健壮的VMware hypervisor。VMware hypervisor在过去的几年中得到了相当大的提升,在第5章讨论了几个性能方面的案例,展现了在虚拟化环境中所测试的高负载场景。