We’ve all heard about the cloud, and most of you use it every day without even realising it. Large companies like Netflix, Nokia, Expedia and Apple all make extensive use of cloud computing in the services they offer to customers. Over the last decade or so the emergence of cloud computing has put flexible and scalable enterprise level computing power in the hands of solo and small scale developers which previously would have been only accessible to large companies running their own data centre estate. On my personal AWS account I am able to access all of the same tools that people like Netflix will use to build my solutions, and I simply pay for what I use. And I’m sure it will come as no surprise dear readers that my AWS bill is a few orders of magnitude smaller than Netflix!
The same applies for organisations like Comet, where historically a move into customer hosting would have incurred significant up-front investment and ongoing costs in the set-up and management of a data centre, whereas we can now utilise AWS to build and scale out our customer solutions as demand increases. This was certainly more appealing to my bosses than me asking them for half a million pounds to go set up a data centre!
“So why should I be looking at the cloud” I hear you all cry – “it’s just someone else’s computer after all.” Well, whilst that is true, why don’t I give you my top reasons why I believe you should be looking at the cloud and why it will make your life easier.
Cloud Computing is cheaper than on premise. That’s a bold statement for me to make, so I’d better have some sources to back this up – after all I don’t have the luxury of being able to make stuff up without justifying it *cough* looking at you every politician ever *cough*. So, here’s a few links to peruse;
For transparency – I picked these links by searching on Google for “Is cloud computing cheaper” and taking the first five links. So I am not cherry picking my data here.
The cost savings come from a few places;
1. Scale – AWS have built data centres all over the world with massive capacity. Such scale automatically makes unit costs cheaper – and AWS will pass most of the saving onto the consumer.
2. Pay for what you use – if a server does not need to be on it can be shut down so you don’t incur any costs. For example – as no one is going to be building Unica campaigns at three o’clock in the morning it makes perfect sense to shut the servers down and not pay for them.
You can work out costs for yourselves using the cost calculators AWS provide (http://calculator.s3.amazonaws.com/index.html). This calculator allows you to plan out a solution and get a very accurate idea of costs.
By 2018 Capital One plan to reduce their data centre footprint from eight to three. At AWS re:Invent in 2015 Capital One gave a keynote presentation where their CIO stated,
“We work closely with AWS to develop a security model, which we believe enables us to operate more securely in the public cloud than we can in our own data centres.”
If architected correctly solutions in the cloud are as, or more, secure than on premise. AWS provide many different tools to secure your applications, and where additional security is required (such as intrusion detection) then solutions are available from many of the major vendors that can be deployed directly onto AWS. Working in the cloud also means physical security is not something that we as a business have to worry about – data centre security is entirely handled by Amazon. More information can be found on the AWS website. 
A few years ago I heard of a client who was facing a £50k bill to change a database server which was reaching its maximum capacity and needed to be replaced. In addition to the cost of this there was a non-trivial amount of work involved in migrating to the new database which would inevitably require some downtime. Running virtual machines in the cloud eliminates issues like this as machines can be scaled up or down as required. If extra memory of CPU is required it is literally a few clicks of the mouse to change an instance type and get your application running on new hardware.
Or consider the case of a website where traffic may vary significantly through the day or seasonally. Hosting on premise requires sufficient hardware to be available to cope with peak traffic – so you might potentially have a large number of servers sitting idle (costing money) and only being utilised in your peak periods. AWS auto scaling  eliminates this issue by only creating server instances when traffic demands it. So you may run your service on one server most of the time scaling up to three or four during the peak hours of your website.
I’m sure this all sounds super complicated, but it is actually very easy to get started in the cloud. All you need to do is create an account and start playing – AWS in particular offers a very generous free tier, which allows you to try various services at no cost. If you make a mistake, you simply delete the server and start again. There is extensive documentation which is very well written with lots of good examples, and of course there is a thriving online community which you can tap into to ask questions and learn new things.
In particular – there are a few very cool things AWS offer which has made my own implementation of AWS significantly easier;
SDKs  – AWS is designed to be interacted with programatically in most cases, and they provide a wealth of SDKs which allow you to write code in your favourite programming language to instantiate and control AWS services.
Cloud Formation  – CloudFormation is the ‘Infrastructure as code’ offering which allows you to build and maintain solution environments controlled by code. These environments can be maintained by updating your templates as changes are required.
AWS Lambda  – Run code without creating a server – Lambda allows you to run code using a serverless architecture where you simply pay for the number of seconds your function runs. I have automated the control and maintenance of my environments by writing Lambda functions which start/stop servers at the correct times, ensure that all objects are correctly tagged/catalogued and take nightly backups of all my machines.
So if you’re looking to build cost effective, scalable and feature rich solutions you should be looking at the cloud. With a low cost of entry, you can be up and running quickly, and as and when you need to scale you can expand with more services and more servers at the click of a button.
Data Wizard at Comet Global Consulting
Martin is a Data Wizard who has travelled all over the world practicing the dark arts of Database Marketing. By day you will find him providing solution support across our range of AWS and EMM clients in the UK. By night he continues his quest to become a fully-fledged Parseltongue and wannabe Data Scientist by finding interesting things to look at with the Python programming language. Martin read Physics at University College Oxford, which is probably the closest he’ll ever get to Hogwarts.