2012 December 15
Saturday morning

This year I've been lucky. Everyone's talking about the cloud, and I'm managing to getting a good view of this emerging technology from the inside.

Maybe one day I'll formulate some concrete suggestions for the Openstack community. All I'll say for the moment is that the project would benefit from a clear set of requirements.

Let's skip over the question what is it supposed to do? and go straight to how should I expect it to behave?

Forrester's cloud predictions for 2013 make interesting reading. They rejoice in the forthcoming calibration of expectations, after the marketing war of these past months. And one thing you will discover in 2013 is that you can't trust your cloud.

Pardon the pun, but this quote speaks volumes:

We’ll stop stressing about cloud SLAs. And recognize that apps
have to protect themselves. The best practice for cloud
application design and configuration is to build resiliency
into the application rather than expect it from the cloud platform.

In other words, in return for a permanent IP address and some border monitoring of the network, expect your instances to disappear without warning, and your boot disks to get mixed up with someone else's. And that object that used to be a MongoDB backup? Might not be valid BSON any more.

So, if you're designing a business system for the cloud, you'd better make sure what you're creating is a loosely coupled set of autonomous components. Because otherwise you're going to have to employ a lot of third line support to babysit your product. And for proper risk management, you're going to need lots of tests and lots of tooling.

As a Software Engineer, I find all this tremendously exciting. It means I'm going to be busy for a while yet. That's my cautious prediction for the cloud in 2013.

We know because we do. We do because we can.