The Cloud Unplugged
In the world of IT, there are two things: machines and programs. Yes, you are right, just like in The Matrix and Tron. We can call those things also hardware, software, infrastructure, networks etc. but that’s so old fashioned. To see where the cloud fits in, let’s go through some Q&A.
What is the cloud?
The cloud can be seen as a program. What makes the cloud program special is that it is able to build machines and write other programs. The cloud is not only connecting to the machines but actually configures them, starts and stops them, creates, launches and controls programs which run on those machines.
In the early days when I got my first computer in 1987, an Amstrad 6128, there was a program called the BIOS which you had to use to communicate with the machine. The machine was of course fixed, nothing to be changed there. You could not tell the BIOS : Go start another Amstrad 6128, perform some calculations and when done, shut that computer down again. Well that’s what clouds like the Amazon Web Services (AWS) or Microsoft Azure can do.
How do I interact with the cloud?
As the cloud is a program, you should normally use another program to interact with it like command line interfaces (CLIs) or APIs.
The cloud generally also has a website where you can interact with it directly, monitor the machines the cloud launched and to a lot of other things. You can basically check what the cloud does.
What is cloud storage?
The cloud has its own machines and programs which is uses behind the scenes to fulfil its functions. One of those functions is the storage of information.
Traditionally, to store files, you would need a machine with a hard disk attached. The machine would store and retrieve files from the disk on request up to the storage limits of that disk.
Now, you can ask the cloud to store a file. It will store it on its own machines, somewhere. There are no storage limits, you storage is unlimited. No worries concerning backups or disk failures, the cloud takes care of it.
Why would the cloud need to build machines?
I already mentioned that you can ask the cloud to build machines (e.g. servers), specifying their size, speed and location. The cloud can also clone machines, with all the programs it contains. That’s useful for things called “load balancing” and “autoscaling”.
Imagine you start with one machine on which you run a webserver. The cloud monitors the CPU usage of that machine, which is similar to the RPM of a car engine. If the cloud detects an excessive usage, it clones the machine and distributes the work over those machines, just like if you would add some cylinders to your car engine on the fly at high speeds. When the workload goes down, the cloud destroys those machines again.
Is the cloud secure?
The cloud is definitely a very special and complicated program which has a lot of power. If someone would get access to my cloud, that person could do a lot of damage.
The cloud is as secure as you want it to be.
The cloud provides you with all the bells and wistles to protect it. You get secret keys, can manage accounts, passwords etc. Up to you to use those tools appropriately.
The cloud itself should be certified to security standards of course, for you to have trust in it, to be assured it does exactly what it says it would do. Clouds like the AWS for example are ISO27001 compliant, a security management standard.
Is the cloud cheap?
If all you ever need is one server with 500GB of storage, it will be much cheaper for you to rent it from a provider like OVH than launching such a machine on AWS or MS Azure.
The cloud is cheap if you use all its powers
On AWS for example, 500GB of hard disk storage alone costs you 50$ per month, wether you use that storage or not. To use that storage, the cloud asks the machine managing the disk to store the data. However, if you ask the cloud to store the data for you on its own machines (AWS S3 for example), you pay a tenth of the price and you only pay for the amount of data you store and the time you store it.
Generally, cloud pricing is complicated. Servers are charged by the hour, data transfers are charged by volume and by origin/destination, storage is per GB etc. It is not obvious to know in advance how much the cost of a certain architecture will be. There are tons of tools though which help you find your way through.
Should I move to the cloud?
The cloud is the future, you will sooner or later need to integrate it into you architectures.
Prior to moving a system to the cloud, you have to take some time to reengineer that system and integrate the power of the cloud. For example, if you managed a webserver with local storage to feed static files, think of using the cloud to store and feed those files directly through something like AWS S3. You don’t need to run a machine for that.
What comes from the cloud, stays in the cloud
If you do not know what data to give to the cloud, check if the data was generated inhouse and if it is intended to be shared with the outside world. If the latter is Yes, move the data to the cloud because that’s where it will end up anyway. If you did not generate the data inhouse, consider it came from the cloud, and that you can leave it there.
Anything else I should know?
Once you start using the cloud, you cannot get away from it easily. All you develop and imagine is built around the cloud, the cloud becomes the corner stone of your architecture. Leaving the cloud would mean that you have to redo everything again.
So be careful, the cloud is addictive, but it’s so good!