SpringOne 2GX 2012 回顧:虛擬化與調校大型 Java 應用程式,從 Spring 與 Java 到 Spring 與 Akka

新聞 | Pieter Humphrey | 2013 年 4 月 9 日 | ...

虛擬化與調校大型 Java 應用程式

本次會議分享了許多在 vSphere 上執行 Java 的生產驗證方法。內容涵蓋如何調整 JVM 和 VM 的大小以進行大規模部署。本次會議將有一個關於 GC 調校的特別章節,並展示如何使用過去 15 年在調校 JVM 方面的實際經驗所開發的 GC 配方來調整各種 JVM。

本次會議討論了三個主要趨勢和相關的調校技術。主要趨勢包括:整合、彈性和靈活性以及效能

整合:許多客戶發現他們的中介軟體部署已經蔓延,並且正成為與更高成本相關的管理挑戰。我們看到一種趨勢,客戶希望透過虛擬化來減少伺服器實例的數量。同時,客戶正在抓住整合的機會,合理化服務特定負載所需的中介軟體元件的數量。中介軟體元件最常在 Java 虛擬機器 (JVM) 中運行,其觀察到的規模為 100 到 1000 個 JVM 實例,並為 JVM 實例整合提供了許多機會。因此,中介軟體虛擬化提供了兩次整合的機會 - 一次是整合伺服器實例,第二次是整合 JVM 實例。這種趨勢影響深遠,因為地球上每個 IT 部門都在考慮整合的成本節省。酒店業的一位客戶經歷了整合其伺服器佔用空間的過程,同時也整合了許多小於 1GB 堆積的較小 JVM。他們將許多這些較小的 1GB JVM 整合為 2 類,分別是 4GB 和 6GB。他們以這樣的方式執行整合,使應用程式可用的 RAM 總量等於原始 RAM 量,但 JVM 實例更少。他們在提高效能和保持良好 SLA 的同時完成了所有這些工作。由於他們必須管理的 JVM 實例數量減少,並且環境經過改進,有助於輕鬆實現 SLA,因此他們還大大降低了管理成本。
保險業的另一位客戶也實現了與上述客戶相同的功能,但此外,他們還能夠在開發和 QA 環境中超額配置 CPU,以便節省第三方軟體授權成本。另一方面,有時我們會遇到一些客戶,他們有合法的業務需求來維護應用程式的一個 JVM,和/或每個業務線一個 JVM。在這些情況下,您無法真正整合 JVM 實例,因為這會導致一個業務線的一個應用程式的生命週期與另一個業務線的生命週期混合。但是,雖然此類客戶無法透過 JVM 整合來消除額外的 JVM 實例而受益,但他們確實可以從更充分地利用伺服器硬體上可用的計算資源中受益,否則在非虛擬化環境中,這些計算資源將未得到充分利用

彈性和靈活性:越來越常見的是找到具有季節性需求的應用程式。例如,我們的許多客戶都會運行各種行銷活動,以將季節性流量導向他們的應用程式。借助 VMware,您可以透過在需要時自動配置新的虛擬機器和中介軟體元件,然後在負載消退時自動關閉這些 VM 來處理這種流量爆發。此外,在不造成中斷的情況下變更更新/修補硬體的能力對於支援雲端時代規模和正常運作時間的中介軟體至關重要。VMware VMotion 使您能夠移動 VM,而無需停止應用程式或 VM。僅此靈活性就使得在管理大規模中介軟體部署時虛擬化中介軟體變得有價值。金融領域的一位客戶每天處理數百萬筆交易,他們經常使用 VMotion 來安排硬體升級,而不會有任何停機時間。否則,這將是他們業務的一次代價高昂的排程停機時間。

效能:客戶通常會在虛擬化時報告中介軟體平台效能的提高。效能的提高部分歸功於客戶通常在虛擬化專案期間更新的硬體。由於健全的 VMware Hypervisor,效能也有所提高。最近一位報告效能顯著提高的客戶提供了以下證詞

「透過我們的 OrderExpress 專案,我們升級了我們的中介軟體服務、商務、入口網站、WCM、服務層、DB2 資料庫;從 AIX 遷移到 Linux;在 VMware 上虛擬化;將應用程式移動到三層 DMZ;我們的交易量增加了 150% 以上;並新增了顯著的新功能,大大改善了客戶體驗。一次變更如此廣泛的技術元件是一個巨大的挑戰。但是,透過使用 VMware vSphere 和額外的架構變更,我們成功地將效能提高了 300% 以上;降低了數百萬的成本;提高了安全性、可用性和可擴展性;以及我們計劃如何繼續發展此應用程式以維持每年大於 30% 的成長。」

– Jeff Battisti,Cardinal Health 的資深企業架構師

在本次會議中,我將展示一些用於小型和大型 JVM 的中介軟體元件的實際 JVM 和 VM 大小。也將詳細說明我多年來開發的 GC 調校配方,該配方已證明可以處理從 4GB 到 88GB 以上的 JVM 堆積大小。當然,記憶體內資料庫的引入推動了擁有這些更大 JVM 的趨勢,因此我們將討論調整 JVM、VM 以及它們部署在其上的硬體平台的最佳方法。

我認為調整大小問題是我們客戶群最常問的問題,因此我計劃在會議期間重點關注它。



關於講者

Emad Benjamin

Emad Benjamin

Emad Benjamin 在 IT 行業工作了 20 年。他畢業於 Wollongong 大學,獲得電機工程學士學位。在他的職業生涯早期,他是一名 C++ 軟體工程師,然後在 1997 年,他轉向使用 Java 進行程式設計,並且從那時起一直專注於 Java。在過去的七年中,他的重點一直是在 VMware vSphere、vFabric GemFire 和 SQLFire 上執行 Java。Emad 自 2005 年以來一直在 VMware 工作,並且是 Enterprise Java Applications Architecture on VMware 書籍的作者。Emad 之前曾在 VMworld、SpringOne 和 Open World 上發表過關於 Java 虛擬化的演講。

更多關於 Emad 的資訊 »



 

從 Spring + Java 到 Spring + Akka - 一個探索之旅

基於 Actor 的並行模型是一種典範轉移。什麼是典範轉移?

科學統治理論中基本假設或典範的變更。典範轉移使簡單的想法難以理解。儘管 Actor 模型是一個簡單而革命性的想法,但程式設計師很難看到實際的好處和用法。同樣,Scala 程式設計語言在簡化基於 Actor 的設計方面帶來了很多好處,但同時也帶來了一種新的程式設計風格。解決這個問題的一個可能方法是根據舊典範來評估新典範。在本次演示中,我們將採用一個基於 Spring 的 Web 應用程式,並逐步使用 Actor 和 Scala 實作它。我們將對新想法持懷疑和猜疑態度,但同時我們將保持開放的心態。我們將使用 Spring 的知識來了解基於 Actor 的並行模型。同時,我們將學習 Actor、Scala 以及將它們與 Spring Framework 結合使用的最佳實踐。



關於講者

Nilanjan Raychaudhuri

Nilanjan Raychaudhuri

Nilanjan 是 Typesafe 的顧問和培訓師。他於 2000 年開始了他的職業生涯,當時是一名使用物件導向程式設計語言的軟體開發人員。Nilanjan 之前曾在 IBM、ThoughtWorks 和 LivingSocial 工作,他在 Java/JEE、Ruby、Groovy 以及 Scala 中管理和開發軟體解決方案方面獲得了豐富的經驗。自從他接觸到這種美麗的語言以來,他就一直熱衷於用 Scala 進行程式設計。目前,他利用他的空閒時間開發 scala-webmachine 開源專案(RESTful 資源框架)。過去,Nilanjan 曾參與其他開源專案和程式庫。在 Typesafe,他主要教授和設計 Scala 和 Play 課程,並幫助客戶採用這些技術。Nilanjan 喜歡透過在各種會議上發表演講來分享他的經驗。他也是 "Scala in Action" 一書的作者。

更多關於 Nilanjan 的資訊 »

Josh Suereth

Josh Suereth 是 Typesafe 的資深軟體工程師,也是 "Scala In Depth" 的作者。自從他在 2007 年了解這種美麗的語言以來,他就一直是 Scala 的愛好者。他於 2004 年開始了他的職業生涯,當時是一名軟體開發人員,他利用 C++、STL 和 Boost 來磨練他的技能。大約在同一時間,Java 熱潮正在蔓延,他的興趣轉向了 Web 託管的 Java 分散式解決方案,以幫助衛生部門發現疾病的爆發 - 從 EJB 到 Hibernate/Spring,甚至還有一些 Applet。他首先在 2007 年將 Scala 引入了他的公司程式碼庫,此後不久,他就感染了 Scala 熱潮,為 Scala IDE、maven-Scala-plugin 和 Scala 本身做出了貢獻。2009 年,他開始撰寫 "Scala In Depth" 一書,該書為在日常應用程式中使用 Scala 提供了實際支援。如今,Josh 是多個開源 Scala 專案的作者,包括 Scala 自動資源管理程式庫、PGP sbt 外掛程式,並且還為 Scala 生態系統中的關鍵元件(如 maven-Scala-plugin)做出了貢獻。他目前在 Typesafe Inc. 的工作包括從建置 MSI 到分析效能問題的任何事情。Josh 定期在文章和演講中分享他的專業知識。

更多關於 Josh 的資訊 »





取得 Spring 電子報

隨時掌握 Spring 電子報的最新資訊

訂閱

搶先一步

VMware 提供培訓和認證,以加速您的進展。

了解更多

取得支援

Tanzu Spring 在一個簡單的訂閱中提供對 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位檔。

了解更多

即將舉行的活動

查看 Spring 社群中所有即將舉行的活動。

檢視全部