For those brave early adopters of enterprise cloud computing, a question that often comes to mind is which of their apps, now comfortably ensconced within the cozy confines of their private datacenter, should be allowed into the big bad cloud out there. Beyond the obvious exclusion of apps that raise assorted security or compliance alarm bells, I believe that apps which are spiky, stateless and self-contained are cut out for the cloud.
Spiky. Apps that experience significant spikes in the resources they demand are ideal candidates. On one extreme end of this volatility spectrum are apps that are used only once for a specific project. Moving down the scale, we run into apps that swing into high gear only during certain events (presidential elections), seasons (Christmas) or time-of-month (book closing).
The corollary to this is that apps which are boringly consistent in their resource consumption are awful candidates for the cloud. It’s almost always cheaper to simply buy the hardware needed for such apps outright rather than to pay a perpetually recurring service fee.
Stateless. Apps that have been architected in such a way that maintaining state is crucial to their execution are unlikely to be agreeable with life in the cloud.
Self Contained. Apps that need to talk to lots of other things (databases, other apps etc.) that live in the datacenter will likely be ill-suited for public cloud deployment. Not only will they end up sucking a lot of bandwidth, there’s also the pain of securing their communications backhaul into the datacenter.