When does the cloud make sense?

Most people are run all realising that the cloud is just someone else's computer which you use for a time. Cloud computing and the benefits of elastic computing are available, but not everyone will we benefits from their investment in "the cloud ", and many will be put off at the cost which can be associated with it. Because I'm a bit of a dinosaur and still like my LAMP stack, I'll take an example of an e-commerce site running a store on the Lamp stack with both dedicate and cloud infrastructure (cloud meaning something like AWS or Azure, rather than a VPS). For this contrived example, I'll also assume that all traffic is from one country, so no cross continent intelligence is needed. Basically, your semi-typical small to medium e-commerce company.

With the dedicated platform, this should have a minimum of 2 servers, and a load balancer to spread the load - ideally a redundant pair, but we want to keep costs down. That's going to need a separate database server which both web servers can communicate with. So we need 3 servers and a load balancer. The database server shouldn't be exposed to the wider internet, so I needs to be on a private network which the web servers are also on. This setup is easily achievable for under £500 per month, but doesn't factor in any testing environments. Please don't put a testing environment on the same server as your production system, you can't safely or easily test operating system or other software upgrades in isolation without risking your website if you do.

The cost of AWS will likely come in at less than that for a single server and database, but that's comparing apples to oranges, to get up to the same capacity, the EC2 instance needs to be able to scale up to 2x to account for 2 servers in the dedicated environment. AWS will auto scale up and down to the maximum permitted capacity using exactly the same configuration you set up as required. This is where the benefits start to come in.

With a dedicated platform, you pay for everything all of the time, regardless of what you use. As such, you either limit yourself to save money, or over spec and have wasted capacity. With an elastic instance, you pay for the usage each month. If you have a quiet month, then the costs will be lower due to less resource consumption. During busy times, when one would hope sales reflect the traffic volumes, there will be more revenue to cover the cost of the increased cloud usage.

When sale season comes up, like black Friday, traffic volumes would be expected to be higher. With a dedicated platform there's 3 options available:

  • over spec the servers as part of the contract, hoping they will cover the demand come sale time. This has increased costs for the rest of the year for what will be unutilised capacity
  • order and configure a new server at sale season, and hope you aren't tied in to another 12 month contract for that server
  • do nothing and potentially miss out on sales, and upset customers

With a cloud offering, simply increase the maximum capacity the instance can scale to during the sale period. If the traffic doesn't come, then there's no additional cost because the resource isn't used. If you hit capacity, you can increase it again, and then lower it at the maximum capacity at the end of the sale. Pay for what you use, sometimes down to the second, still keeping a lid on costs.

Another benefit of the cloud, which can be realised with VPS services also, is hardware redundancy. If something facile, the downtime is likely to be minimal whilst your data are restored on other hardware. This is usually done from incremental backups from the hosting supplier, but don't rely on them as your only back up option. Take responsibility for your own backups, in case something like the 123-reg saga happens again. If you are running dedicated infrastructure and you have a hardware failure, it can be catastrophic and result in hours or more of down time to get he hardware in place, configured and backups restored.

Whilst this all paints a rosy picture of the cloud being the perfect solution, there are times when it's not going to work for everyone. If you have a small site, or small web application used only by your business, then knowing what you are spending each month with a dedicated platform and sufficient resource may be more appealing, and potentially more suitable. You can also generally get a better specification dedicated server for your money wthan you can get cloud resources, or better "bang for your buck" as it's sometimes said.

The better option for your specific need should be thought out and the optimal solution decided upon. Going back a number of years, I wasn't one for the cloud as a solution due to cost, but those costs are changing. Yes, its more expensive to run something in the cloud, generally, but I am starting to come around to the idea of it being a better overall solution for hosting needs; if you are a business willing to spend money on IT infrastructure cleverly instead of seeing IT as a necessary evil.