Vertical scaling for Java applications

| July 28, 2011 | Uncategorized | , ,

Vertical autoscaling is a unique feature of Jelastic cloud.

All other cloud platforms implement horizontal scaling - which basically means: pick a house to live in, and if your family grows - ask us for the second house of the same size:

horizontal scaling

Horizontal scaling is like getting more houses when your family grows

This approach is not only awkward in real life (although might help you get a bit more sleep the first few months) is also more problematic for application developers:

  • Application needs to be architected in a way that lets multiple machines with the same code spread the load effectively,
  • It takes time for machines to go up and down, and
  • Obviously the load gets rounded up to machine level (and each of them is running the operating system) so you end up paying more.

Vertical scaling in our example would be like automatically getting your house expanding (no moving to a new one required!) as your family grows:

vertical scaling

Vertical scaling is like your house becoming bigger when your family gets bigger

This is the way Jelastic handles scaling. It just give your application the amount of RAM and the CPU power it needs, and recycles that back when you no longer need these resources, so:

  • No code changes are required,
  • Scale-up and scale-down are almost realtime,
  • There's no overhead from multiple instances of operating systems,
  • You don't have to chose certain instance size and pay for it - it your application only needs 128 MB of RAM at night - that's what it will be getting,
  • There is way less rounding up and way more granular resource allocation.

This all combined makes Jelastic the first real cloud platform making autoscaling just work with no headache for developers.

Here's a quick demonstration of how autoscaling works in real-life: