Cloud computing is one of those tech buzzwords that everyone is talking about but no one knows exactly what it is. Just take a tech product or website and stick cloud in front of it to be a winner. There’s actually no definition of what ‘cloud’ means, so I’m going to go through a number of different technologies and explain how they work along with some diagrams. I’m not going to give step by step instructions of how to use them but I think its worth having some practical examples to bring the concepts to life – we’ll a document converter that converts MS Word files to PDF as our example but will look at others too.
Cloud computing Part 1: (This Page) – Local Application vs Web Application on the internet.
Cloud computing Part 2: Virtualization (Physical vs Virtual Servers)
Cloud computing Part 3: IaaS (Infrastructure as a Service)
Cloud computing Part 4: PaaS (Platform as a Service)
Cloud computing Part 5: SaaS (Software as a Service)
In this part, we’ll start by looking at a non-cloud computing technologies, so we have something to compare against!
A ‘local’ application is a piece of software that runs on a computer without needing any internet connection, and can be made to run on Windows, Linux or Mac operating systems. In our example case we want a piece of software to convert a Word document to PDF. The Word document is stored on the local computer’s disk, and we simply select the file in our application, and get converting! All the processing is done by the ‘local’ computers CPU, and the resulting PDF document is saved to the local computer’s disk. Every piece of software worked like this before the internet was invented, and many applications still do.
The first generation of internet site, and still the most common usage is for enabling the sharing of information through download and upload from network connected computers. Let’s take a news site as an example. Your local computer is a web client and connects over the internet to a web server and asks for a web page. The web server simply sends back a load of text or images – or perhaps a PDF page. If I have access to the web server, I could upload a PDF document – BUT – it is only designed to do this – it is not an application that can convert the documents on the web server – the conversion would still have to happen on the local machine. Still, this is nonetheless useful, since now our PDF document could be downloaded by anyone with an internet connection.
A Web application is something much more powerful. In this case, we still have our ‘local’ computer connected to the internet, but the web server does not simply allow uploads and downloads, but the PDF conversion application itself is installed on the web server. In order to convert our word document, we upload this to the web application server, which converts it to a PDF. This PDF can now be downloaded from the web server back or our local machine, or served to any other computer. That sounds like we’re making things a whole lot more complicated but there are a number of significant advantages. Here’s a few:
3.1 We don’t need to install any special software on our local computer, we can do everything through a web browser (or SSH connection depending on how you set it up!). This is how chromebooks work – it’s just a device with a web browser (and all apps are web based).
a) Now I can access the software from any internet connected device anywhere in the world, without needing to install anything. I can convert PDFs from my computer or friends computer. Cloud based email was one of the earliest web applications that made the most of this – especially because with email generally, if you use an local software program to download email, it is only on that one computer. Now we have things like gmail, we can access email from any computer at any time, through our web browser.
b) Software developers don’t need to design and test software for different platforms (Windows, Mac, Linux, smartphones etc), they can just have one application that runs on a web application server as long as it is compatible with internet browsers. I can convert PDFs on my computer or smartphone or any device – and as long as my web browser is up to date, it will work. No issues with missing software packages, outdated program dependencies etc.
c) Upgrades are installed by the software developers once, onto the web application. This means less hassle for users, and instant availability of upgrades to everyone. This is also the reason more software is now based on a subscription for a time period to the web application rather than a purchase of a product (the software to install on a local computer).
3.2. Because the application is not running on your local computer, all the processing is done on the remote web application server. This is not especially useful for converting a couple of PDF files, but has huge potential in many other applications with high processing requirements, such as video editing or data processing. You don’t need to buy a powerful computer to do those things – just upload your file and do the processing on a powerful computer in the cloud (which as we’ll see later you can rent by the minute at a cheap price).
3.3. Data is (potentially) more securely backed up. (This is not the case in our single remote web application server in the example, but this is easily implemented when using some of the newer cloud technologies). If you download your emails to your computer, or save word documents on your hard disk, you really need to have a backup strategy. If you computer breaks or is stolen without this, then you’ve lost your emails and documents. But if you use a cloud based service, e.g. Gmail and google docs, then your data is not only process online but also stored online (and of course you can save it to your local hard disk too). These services are generally have there own backup and redundancy, so your data is very unlikely to be lost. Of course the downside is that it opens the potential for your data to be stolen by hackers.
So is that all there is to cloud computing?
We could call this kind of application provide on a remote machine ‘cloud computing’, but in general there is something else required besides deploying an app on a remote machine across the internet – virtualization. In fact, many of the benefits already listed really need virtualization to achieve them, especially when its being used at large scale by millions of users. We’ll look at that in the next post!
Finally, the graphics for this post were made… surprise surprise, using a web application! I’ve been playing about with Pikto Chart. Since it’s a web application there is nothing to install, you just simply do everything in your web browser. There is a free account and the examples show some really cool examples on what is possible!