Azul Systemsの開発は、Javaアプリケーションのためのリソースを非常に大規模化できる技術をベースにしている。彼らの技術の2つのキーコンポーネントは、常時動いているガーベッジコレクション アルゴリズムとオーバーヘッドがゼロの診断/監視ツールである。今まで、常時稼動のGCアルゴリズムには、AzulのVega製品という形で、専用のハードウェアを必要としていたが、今日から一般に入手できるようになったZingは、Intelのx86プロセッサとAMDに最適化されたAzulの全技術スタックをソフトウェアのみにポートした製品である。製品については、 この前のアーティクルに、もっと詳しく載っている。
webポータル、トレーディング用プラットフォーム、そして電子商取引のwebサイトのようなレスポンス時間が重要なハイ・ボリュームなアプリケーションを対象にしているので、Azulに合うニーズは、増々、エンタープライズJavaの主流のニーズになってきている。アプリケーションやユーザがもっと多くを求めるようになってきているのと、ハードウェアの能力が向上しているからである。AzulのマーケティングのVPである George Gould氏は、InfoQに説明したのは、3つの要素(企業におけるハードウェアの仮想化の利用が増えていること、ソフトウェアと製品をサービス (SaaS/PaaS)として見る、クラウドコンピュティングの台頭、そしてJVMが近年のハードウェア能力に追いついていない、という事実)がJavaアプリケーションのインフラの周りに、いかに「最悪の事態」を形成しているか、ということである。The 451 Groupの主任アナリストである John Abbott氏がプレスリリース中で、今日アナウンスしたことは、その状況をよく代弁している。
新しいビジネス戦略や技術革新が既存のJavaアプリケーションのインフラを追い越しており、IT組織への近代化のプレッシャは、益々強くなっています。既存のJavaランタイムは、高スループット、ビジネス クリティカルなアプリケーション、そして仮想化やクラウド コンピュティングのような新しいデプロイ パラダイムの出現に対するニーズに、答えることができないままである。企業は、ビジネスとITの目的にあうような、広範囲のデプロイ トポロジーを通して、より良いアプリケーションのスケーラビリティ、適応性、そして可視性を実現するために、 Azulの Zing Java プラットフォームのような新しい、革新的なJava技術を検討しなければならない。
Gould 氏は、現在仮想化された環境上で走っている多くのエンタープライズ アプリケーションによって、仮想化が転換点に達した、と考えている。彼は、製品が特に仮想化用に設計されているので、Azulがこの動きをうまく利用できる立場にある、と考えている。VMwareで Global Strategic Alliancesの副社長である Parag Patel氏は、話を更に先に進めて、Zingを仮想化のトレンドの潜在的な触媒と見ている。
Azul Systemsが Zing Java プラットフォームを出荷したことで、ITをサービスモデルとして推進するために、運用環境において、仮想化されたJavaランタイムの採用を加速することになるでしょう。Zingによって、小さな、部門用アプリケーションから大きな、ミッションそしてビジネス-クリティカルアプリケーションまで、あらゆるタイプのJavaアプリケーションが、仮想化とクラウド コンピューティングによる完全な恩恵を享受できます。
我々は、InfoQでアプリケーションのアーキテクトや開発者がヒープサイズを小さいままで、その代わりにパフォーマンスがやっと受け入れられるレベルを維持するように、アプリケーションを分散する方法をよく見てきた。Zingの重要な側面は、一定のレスポンスで、数百ギガバイトのヒープを扱うことができ、そのランタイムのおかげで、他のエンジニアリングの理由によって、開発者がその必要がある時には、ヒープを分散すればいいだけなことである。例として、 Azul SystemsのCTOで共同創業者の Gil Tene氏は、彼が行ったベンチマーク テストをInfoQに説明した。これに使ったのは、Liferay portal 5.23からのデモ アプリケーションで、基本的な操作ができるように修正したショッピングカートのJSPを持っている。ポータルサイトは、JBossアプリケーション サーバーのバージョン5.1上で走っていた。ハードウェアとして、デュアル-ソケットの Xeon 5620 が 2.4GHz で動き、メモリが96GBで、OSが Fedora C12である。Zingの構成は、 VMware 4.0ハイパーバイザーと最大で90GB余りのヒープを持っている。ネイティブなJVMのテストには、最新の商用のJVM使い、これにはヒープサイズが 2GB, 3GB, 4GB, 6GB そして 20GBで待ち時間に影響を受け易いアプリケーションに推奨されているガーベッジコレクタ( ConcMarkSweepGC 別称 CMS)を使った。
負荷テストは、1つのJVMを使い、ユーザの99.9% が5秒以下でレスポンスを受信できる、というSLAをベースにしている。右のグラフに見られるように、チューニング後、SLAが破られる前に、標準のJDKを使って、約45ユーザをサポートすることができた。同じハードウェアで、Zingを使うと、約800ユーザをまかなえ、しかもレスポンス時間は、1秒未満である。各「トランザクション」(ショッピング カートを扱う)は、
- トランザクション ライフタイムのために、~20MBの「トランザクション状態」を維持する
- ~20MBの(直ちに回収可能な)一時的な大量のオブジェクトを生成する
- ~300msのブロッキング(スリープ状態)に費やす
800ユーザの負荷で、Zingのガーベッジコレクタは、パフォーマンスのロスなしで、1秒間に 3.5GBのガーベッジを処理した。
Zingには、Managed Runtime Initiative からのオープンソース コンポーネントを含んでいて、一般に入手できるZingリリースの一部として、Azul Systems は、 MRI-J OpenJDK と Enhanced Linux プロジェクトへアップデートを寄贈する。我々が以前レポートしたように、 Managed Runtime Initiativeは、 Java, Ruby そして .NETのようなマネージド ランタイムの実行能力を改善するために、システム スタックの垂直なコンポーネントを跨いだ改良されたインターフェースと機能を特定、開発そして提供する協働の取組である。
Zingの価格は、サーバー当たりの年間契約を基にしており、1サーバ・1年で$5,000-$6,000ぐらいが最低料金である。無料のトライアル版がwww.azulsystems.com/trialで申し込める。