Chapter 8. Components of the Cloud Stack

Reasoning about Java performance on a single machine is difficult—​there are many variables arising from the JVM subsystems and the underlying hardware. Prior to this chapter, we have explored and discussed how to approach these challenges. We’ve discussed some aspects of JVM internals, diagnostics, and operating system performance tools and how they help to interrogate a running process. Going further, mechanical sympathy—​understanding the interaction between the JVM and hardware—​allows us to address high-performance concerns on a single JVM.

In this chapter, we are going to break the single JVM model and look at platforms supporting a horizontal deployment model for Java processes. You will see how platforms hosting Java processes have significantly shifted. Specifically, cloud native environments have altered the landscape and, with that, the categorization of topics that architects and performance engineers need to understand.

In particular, in addition to the key questions highlighted in “A Taxonomy for Performance”, there are situations where developers working in cloud-based platforms will also need to consider:

  • Optimization for cost

  • Optimization for reliability

  • Scaling horizontally

In other words, optimizing for cost, reliability, and elastic scale (managing performance across multiple instances of running Java processes) will be key factors in complementing the classic taxonomy for performance.

In this chapter, you will ...

Get Optimizing Cloud Native Java, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.