|
|
|
Back to newsletter 250 contents
No matter how well implemented your application may be, you can't prevent a JVM dying unexpectedly from causes outside your application. The usual solution to this is to provide your application running on more than one JVMs, fronted by load distributors - a cluster. This in turn may be insufficient if you need high availability, because the whole cluster could die. The usual solution to this is to run in more than one region.
Deciding how far you go in keeping your application available, requires you to make decisions. Is the JVM deployed active-active in one region? That has implications for how caches are maintained. Active/active in multiple regions? That has implications in syncing data across regions. Maybe you can go with an active/hot-standby setup. Now you need to think about how failover happens and whether any data or requests would be lost. Maybe an active/passive setup works? Then you need to think about scaling to handle the request load as you failover. There's also active/quick-deploy-and-start as an option. Is your system capable of deploying quickly to a new datacentre? What if no existing infrastructure is already present?
There are a host of options and decisions to make, each with consequences to your design, architecture and implementations. Just make sure you decide on the availability you want to provide and ensure that you can attain it. Not thinking about this is a recipe for failure.
Now on to all the usual newsletter list of links, tips, tools, news and articles, and as usual I've extracted all the tips into this month's tips page .
Java performance tuning related news
Java performance tuning related tools
Back to newsletter 250 contents