Cloud Foundry: Design and Architecture
Derek Collison discusses the goals, the design premises and patterns employed in creating the architecture of Cloud Foundry, VMware’s open source PaaS, unveiling internal architectural details.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Charles Humble on Nov 08, 2011
Azul Systems have today announced Zing 5.0, eliminating their previous requirement for a hypervisor, and therefore bringing their pauseless JVM to unmodified 64-bit Linux for the first time.
The Zing 5.0 product is supplied as two software packages. Zing System Tools is an RPM you install on Linux which includes the memory management capabilities and other things which the Zing JVM needs in order to work. The other package is the JVM itself, which is designed to look like HotSpot; you install it the same way, either as an RPM or as a tarball, it has the same directory structures and so on.
During our conversation, Azul Systems CTO Gil Tene, the new packaging allows Azul to reach customers that they simply couldn't reach before
One end is the higher end, the low latency trading guys. These are guys that count [on] 50-100 microsecond response times; they really want to get rid of garbage collection effects but they can't pay an extra 200 microseconds to do it. Those were customers who were very intrigued by Zing 4.0, but the virtualised mechanism with the proxy and the extra hop across it, whilst invisible to any human response time app, would be a 3 times wire latency increase for these guys, so they couldn't use it. With Zing 5.0 it just drops straight in, there's no proxy mechanism, and so no additional cost at all.But what if all you have is a 3GB heap, and you are just annoyed at the pauses. You can't really go and ask for virtual infrastructure changes to do it. ZingLX is just a better VM for Linux. So it becomes a possibility for these guys too.
Aside from the lack of GC pauses, the Zing GC collector, which we described in more detail here, is designed to remain robust across a wide operating range by being insensitive to factors such as mutation and fragmentation rates, as well as heap size, soft references, and live set size. As such, it is typically possible to use the collector with little or no tuning at all. This wide operating range also makes the product a good fit for Software-as-a-Service companies, allowing a larger density of tenants/server than HotSpot would support,with consistent response times. Azul told us that Apptio and SuccessFactors were amongst their adopters. Apptio's application is a good example of where the wide-operating range of Azul's algorithm pays dividends. The company deals with a wide range of customer data-sets, from around 1GB-100GB+ Azul told us. From the press release:
"Our customers are leading global enterprise organizations that rely on Apptio's SaaS-based Technology Business Management services to power insights and decisions by processing large-scale financial and operational data," commented Mark Jancola, vice president of Engineering, Apptio, Inc. "With the Zing JVM, we can effectively use five times more application memory and deliver more consistent response times under unpredictable loads."
SuccessFactors, already an Azul customer, is now able to transition from Azul's Vega-hardware to commodity hardware using the Zing 5.0 product.
Zing 5.0 currently supports Red Hat Linux 6, and CentOS 6. The firm plans to add Red Hat 5, and CentOS 5 before December, they told us, and will certify other distributions such as SUSE, Ubuntu andAmazon EC2 very soon. Customers using 32-bit Linux, or other products such as Solaris, can use the Zing 4.0 virtualised product.
Being able to run natively eliminates some overhead from the system, particularly around things like JNI calls, which would become RPC calls across the proxy mechanism, incurring additional overhead, when run from Zing 4.0. Similar problems occur when making heavy use of disk I/O, such as using a messaging system where all the messages are journaled to disk, or a Lucene search with the indices on disk.
Zing 5.0 has been in beta with around 30 customers for some time and is generally available from today. A single per physical server license supports both Zing 4.0 and Zing 5.0. The per server annual subscription cost is similar to that for an IBM WebSphere Application Server developer license.
Troubleshoot Java/.NET performance while getting full visibility in production
RDBMS to NoSQL: Managing the Transition
App Server Evolution: REST, Cloud, and DevOps Support in Resin 4
Good Relationships: The Spring Data Neo4J Guide Book
Introducing SQLFire: a memory-optimized, high performance SQL database
VMware vFabric SQLFire - Test drive the data management system with memory speed, horizontal scalability and a familiar SQL interface
Why isn't there a trial version for quick evals?
You have to ask for it, but there is one. See www.azulsystems.com/zing/trial
Derek Collison discusses the goals, the design premises and patterns employed in creating the architecture of Cloud Foundry, VMware’s open source PaaS, unveiling internal architectural details.
Andrew Watson talks about the work of the OMG, where CORBA is alive and well (hint: in your car), UML and UML Profiles vs. custom Modeling languages, DDS and other middleware, and much more.
Sohil Shah discusses creating iPhone and Android enterprise mobile applications based on cloud services using the open source platform OpenMobster.
Paul Sanford presents the transformations supported by data throughout its life cycle, and how that can be better done with Splunk, an engine for monitoring and analyzing machine-generated data.
A common “best practice” for unit tests is to only write a one assertion in each test. I intend to question this advice by showing that multiple assertions per test are both necessary and beneficial.
John Rauser presents the architectural and technological evolution of Amazon retail websites starting with 1994 and ending with adopting Amazon Web Services.
Michael Stal discusses system architecture quality, how to avoid architectural erosion, how to deal with refactoring, and design principles for architecture evolution.
Every developer has had to integrate with another system, API or component. Tis article provides strategies to handle the change and for he separating system boundaries.
2 comments
Watch Thread Reply