This is a short diversion to explain some of the aspects of cloud computing for people who think of computing as being based on a box under your desk. You may view “the cloud” as just so much fog, or as some sort of facility used by enterprise-sized organizations. It certainly is both of those, but it is also a place that those of us with somewhat more modest needs can use. In the “old days,” I had a computer sitting under my desk. I knew what it was. I knew what was inside because I had had the covers off, and I knew what all the software was because I had installed it. That form of computing has tactile immediacy and some advantages, but it also has some drawbacks, even for small operators like me. For one thing, if I need another computer or I need a bigger computer, I have to have the money to buy it, and the time to wait until it has been prepared. If I needed a new computer for just a short time, when the need is over, I still have the computer with nothing for it to do.
Then Virtual Computers (called Virtual Machines, or VMs) became all the rage. I bought a server and installed software in it that would run several VMs all at once. (The server doesn’t actually have to be big and powerful–I can run one or more VMs here on this laptop.) The VMs are just like a computer under your desk except that there is no physical box. They are really just globs of software running on some other computer, but that is the wrong way to think about them. They have to be thought of as just another computer in another box. If you think of them as software being managed by other software, you’ll get confused, and your head will start to hurt.
VMs have some real advantages. It doesn’t require money from the capital budget to get one–they are all operating funds. If I build one for a short task, I can just throw it away–like deleting any file–when its usefulness is over. No box to buy. No floor space used up. No extra electricity used. No noise. No heat. Pretty nice, but I still have to manage and maintain the server it runs on.
With cloud computing, I can get rid of that problem, too. The server is owned and managed by a vendor–no capital al all now. The vendor has computers somewhere (somewhere in Oregon in my case), that run some operating system with software on it that supports “virtual” machines. I don’t know (or care) anything about the vendor’s computers or operating system. I don’t know anything about the software that supports the virtual computers. All I know is that I can ask for a “computer” (software that behaves like a computer) with some operating system, and I get one. Within 5 minutes, I have a fresh, new computer. Ten minutes later, if I’m done with the new “machine,” I turn it off or just throw it away. It’s faster, cheaper, and somebody else has all the fixed plant expenses and does the maintenance.