Imagine you want to build a software-based company, providing a service on the web.
A few years ago, it used to be that you needed to do two things:
develop the software and buy expensive hardware to run it on.
That's not true anymore.
Nowadays, you still have to develop the software, of course,
but you don't need to buy the hardware.
You can rent it, and in ways that are extremely flexible and match your needs.
This is what's called cloud computing.
So, what's a cloud?
It's an abstraction of a computer or many computers.
Hmm, that doesn't really help,
so, let's start at the beginning.
What's a computer?
Essentially, it has two components that are important:
Number one is memory, like a hard drive.
Number two is a processing unit, which helps derive new results from old ones.
That's the unit that does all the computation, the brain --
the brain if you want.
This used to only come packaged as a box, with the brain and the memory together.
For instance, think of your laptop or your desktop.
So let's look at a typical example, such as the Coursera start-up,
and its options for growing.
At the beginning you just have a few students using the platform,
which runs on one server.
Then that central processing unit and storage unit -- so the brain and the memory --
will do everything, switching between serving videos to different students,
serving pages, computing grades, searching posts in the forums, etcetera.
This would work well, but as soon as Coursera is successful,
it doesn't work anymore.
You have to buy new servers, keep up with demand, and also keep everything balanced.
You have to make sure that you have the right number of these machines,
at the right place.
And it's going to be expensive if you under-use some parts of them.
Now with cloud computing, this is essentially not a problem anymore.
You get very flexible computing units and very flexible storage units.
They're flexible simultaneously in geographical location and in size.
So you can ramp each, depending on real needs.
For instance, in the evening, Coursera will probably see higher loads
from most of the students doing their homework and it can adapt easily to that.
Who provides those cloud computing services?
Well, more and more companies do that,
but the most famous is probably Amazon Web Services.
This is a part of Amazon that was created
to answer their own needs with their e-commerce website
that would see huge demands around Christmas and so on.
Writing software that uses cloud computing is not so hard,
but it's very hard to rewrite software that was written
before these ideas took hold.
Older learning management systems, that did not explore those ideas,
even if they were really good at the services provided,
will probably need to be rewritten,
in order to scale to millions of students.
Not everything is perfect with cloud computing, though.
Since the data is heavily distributed around the world,
a whole lot of new problems can come, relating to data privacy, for instance.
[CC BY-SA Paul-Olivier Dehaye]