Editor's note

If there's one thing that the Amazon S3 outage of February 2017 taught the builders of Java cloud applications, it's that cloud computing platforms are not immune to catastrophic failures. And while some developers of Java cloud apps can get away with simply pointing the finger of blame for a four-hour outage at Amazon, others cannot be quite so glib and are now tackling the question of how to build more failover and resiliency into their cloud-hosted applications.

In the first section of this essential guide, we look at the realities behind the Amazon Simple Storage Service outage, what the real reasons were that caused Amazon's US-East-1 availability zone to falter and the impact that failure has had on the level of confidence users have with their cloud computing vendors of choice.

The next section looks at some of the key concepts surrounding application failure, failover and availability, creating a baseline of terms that are important when software architects and Java cloud app developers are thinking about how to deal with unexpected cloud infrastructure failures.

And in the final section of this guide, we look at how to apply these concepts to the development of Java cloud apps and the provisioning of resources in single and multicloud environments.

If you are developing modern, cloud-native applications that are hosted on SaaS, platform-as-a-service or infrastructure-as-a-service systems provided by vendors such as Google, Amazon, Oracle or Microsoft, you must be aware of the fact that cloud outages are always a possibility. This essential guide will keep you abreast of the dangers of moving your applications to the cloud, while providing insight on how to mitigate the possibility of a cloud vendor failure, such as the Amazon S3 outage that happened in February of this year.

1Concepts in Java cloud app availability

When thinking about the availability and the resiliency of Java cloud apps, there are some key concepts to consider. In this section, we take a look at ideas such as graceful degradation and a multicloud strategy and look at how experienced software architects bake these concepts into their software applications.

2Keeping your apps up when Amazon is down

So, given an understanding of concepts such as graceful degradation and multicloud strategies, it's time to see how organizations have applied those concepts to their software development process and built resiliency into each part of the Java cloud app's application lifecycle management (ALM) process. Here we look at how to build Java cloud apps that will keep running, even if your cloud computing provider's engine has run out of steam.