《大规模Java平台虚拟化与调优》——1.2 大规模Java平台的趋势与需求

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章讨论了几个性能方面的案例,展现了在虚拟化环境中所测试的高负载场景。

时间: 2024-10-28 23:58:25

《大规模Java平台虚拟化与调优》——1.2 大规模Java平台的趋势与需求的相关文章

《大规模Java平台虚拟化与调优》—— 导读

前 言 本书是9年来我在VMware vSphere上运行Java应用的经验结晶,这些经验来源于VMware本身以及VMware的众多客户.实际上,很多VMware客户都在VMware vSphere上运行企业级的核心Java应用,并取得了效果更好的总拥有成本(total cost of ownership,TCO)以及服务水平协议(service level agreement,SLA).我的第一本书是<Enterprise Java Applications Architecture on

《大规模Java平台虚拟化与调优》——第1章 大规模Java平台简介1.1 大规模Java平台的分类

第1章 大规模Java平台简介 本章定义了3类大规模的Java平台: 第1类:大量的Java虚拟机(Java Virtual Machine,JVM)(100-1000个JVM). 第2类:JVM的数量较少但是堆很大. 第3类:前两类的组合,其中第1类使用的数据来源于第2类的平台之中. 除此之外,本章还讨论了各种趋势,并且大致描述了一些技术性的考量因素,以帮助你理解设计大规模Java平台时与之相关的技术问题. 1.1 大规模Java平台的分类 基于与客户的交流,大规模的Java平台主要可以分为如

《大规模Java平台虚拟化与调优》——1.3 大规模Java平台的技术因素

1.3 大规模Java平台的技术因素 当设计大规模Java平台时,需要考虑很多的技术因素.例如,对于构建良好的大规模Java平台来说,需要很好地理解Java垃圾回收(garbage collection,GC)以及JVM架构.硬件和hypervisor架构.本节中,概要讨论了GC.非一致内存架构(Non-Uniform Memory Architecture,NUMA),以及在理论和实际操作中的内存限制.稍后的章节会给出更为详细的描述,但首先在整体上理解围绕大规模Java平台设计有哪些问题是非常

《大规模Java平台虚拟化与调优》——第2章 现代化可扩展的数据平台

第2章 现代化可扩展的数据平台 尽管你可以采用多种方式现代化应用的架构,但是核心的趋势如下:-围绕Spring框架所提供的灵活性现代化应用架构:-现代化数据. 就数据现代化来说,现在有很多不同的方式.本章主要关注的是日渐流行的一种趋势,那就是使用可水平扩展的内存数据库来提升扩展性和响应时间.在这里使用VMware vFabric SQLFire来阐述内存数据管理系统的功能,你可以使用它来构建可水平扩展且支持硬盘持久化的数据fabric.讨论这种工作负载也会帮助Java平台的工程师强化其Java平

《大规模Java平台虚拟化与调优》——1.4 本章小结

1.4 本章小结 本章介绍了大规模Java平台的概念并描述了它们的3种分类: 第1类:大量的JVM. 第2类:JVM数量更少,不过堆空间的规模较大. 第3类:第1类和第2类的组合. 本章还探讨了JVM中的各种理论和实际限制,并介绍了各种工作负载类型及其常见的JVM规模.本章还讨论了NUMA以及水平扩展.垂直扩展.JVM合并和VM合并的优势和劣势.

《大规模Java平台虚拟化与调优》——2.2 SQLFire特性

2.2 SQLFire特性 本节将会介绍SQLFire的关键特性,这些特性使其成为一个面向内存同时支持磁盘持久化的数据管理系统.SQLFire的特性如下:服务器分组(server group):这能够让你对SQLFire成员(JVM)进行逻辑分组,使其具有更好的可扩展性权重(也就是在SQLFire数据fabric的特定分区上部署更多的计算资源).服务器分组指明了为某个表保存数据的SQLFire成员.你可以使用服务器分组来对SQLFire的数据存储进行逻辑分组,以管理表中的数据.存放数据的任意数量

《大规模Java平台虚拟化与调优》——2.3 Active-Active架构与现代化数据平台

2.3 Active-Active架构与现代化数据平台 图2-25展现了位于两个数据中心中的4个active-active端.在数据中心-1中,有Active-1A和Active-1B端,在数据中心-2中,有Active-2A和Active-2B端.Active-1A.1B.2A和2B端都包含了典型企业级应用的所有分层.在本例中,我们使用SpringTrader作为参考应用.对于数据中心-1来说,企业级应用实例可能同时分布于Active-1A和1B中,对于数据中心-2来说,情况类似.如果Acti

《大规模Java平台虚拟化与调优》——2.4 本章小结

2.4 本章小结 本章介绍了vFabric SQLFire的特性,你可以使用这些特性来现代化各种类型的企业级数据.当企业级数据的可扩展性和性能出现了问题,并且不能通过简单的硬件调节和已有应用的重新配置来解决时,那就可能需要重新架构数据层了,应该关注内存数据管理系统.

【北京】淘宝、美团、石墨4位核心工程师分享“Node.js 大规模应用设计以及性能调优实践”

2016年线下活动第一弹: Node.js 大规模应用设计以及性能调优实践 北京 2016. 01. 09 京仪大酒店 会议介绍: 从「现象级」的新潮服务端编程语言真正成为「工业级」,Node.js 依然面临无数的淬炼,特别是在「生产环境」中.邀请到了淘宝.美团.石墨等 Node.js 大规模应用设计以及性能调优的4位核心工程师深入分享. 嘉宾介绍: 1. 淘宝竹暄<Node.js 助力淘宝大促活动> 峰值4万QPS的大促会场催生了百亿成交量的全球狂欢节.支撑着这些玲琅满目的会场和频道页面的,