The cloud…a lot of positive things have been said about the cloud. It will solve all your problems. It will make scaling easier. It will reduce the cost of infrastructure. It will make your app more reliable. It will allow you to automatically expand and contract with demand. It will pick your kids up from school and make you dinner all at the same time.
A lot of negative things have also been said about the cloud. It causes more problems than it solves. It makes scaling more difficult. It is more expensive in the long run. It is unreliable. Expanding and contracting on demand is difficult and error-prone. It forgot to pick up the kids and your dinner tastes awful.
Ok, so I made up the parts about the kids and dinner. So which of the positives and negatives are true? Well both are really. Like with any other technology decision, the cloud it not a silver bullet. It is not right for every application. Reliability and ease of use are determined by your needs and the provider you choose. Many executives hear the positives and/or the negatives and make decisions without understanding the complexities of that decision.
Here’s a little Q&A to shed some sunlight on The Cloud
- Can you automatically expand to meet demand? Sort of. It can be done with certain providers and as long as you spend a decent amount of time understanding how that scaling works. You have to tailor not only your system setup, but also your application to handle that scaling. And don’t forget that there will probably be some level of programmatic work to be done on your company’s part to make sure servers come online and go offline at the appropriate times.
- Will it reduce cost? Maybe. I know this is a frustrating answer, but it is the truth. It all depends on what the Total Cost of Ownership (TCO) is for your existing environment. Once that is known, you can do the calculations and price out what you will need in a cloud environment. Don’t forget that for an accurate estimate, you need to know:
- How much traffic comes in, out, and between your systems
- How much memory and processing power you actually utilize.
- How much disk space you actually need. (Remember, some providers don’t let you add more disk space without upgrading your instance).
- Is it more reliable? That depends. (Noticing a pattern in the answers yet? I swear I will give you a straight answer below). Again, it falls on the provider and how much you are willing to spend. Just like in real life, a cloud server can go “poof” without warning. The upside is that you can bring up a new cloud very quickly depending on your backup solution. And unlike a physical environment, you do not have to have spare hardware lying around to do that. An even better option is to have redundant servers. But of course this doubles the cost. And if you load balance those redundant servers, then you will be adding the cost of the load balancer and reintroducing a single point of failure. If a whole data center winks out (which has happened) and you don’t have a redundant environment in another data center, it is lights out for your servers.
Ok so ready for a straight answer about The Cloud?
Something you can take to the bank? The cloud will not help with your kids or dinner, sorry. (Ok so it’s not the concrete answer you were hoping for but there are no solid, easy answers with the cloud).
The cloud is not drastically different than physical hardware in terms of planning out your environment. Sure, there is the benefit of being able to spin up a new server in a matter of minutes and just as quickly make it go away while incurring no long term costs. But the tradeoff is a lack of control in some areas, making previously simple tasks much more difficult. The reality is the cloud is no different than any other technology. It has its place, but it does not fit every situation.
So what does that cloud look like to you?