Last thursday, I had my first lecture. I’ve given it in the VIA (Internet Application Development) course and it was (you probably guessed right) about Cloud Computing. You’ll probably find the lecture slides on the subject’s website, in case you’re curious.
For inspiration, I have taken the skeleton of a paper I’ve written in the summer. It is titled From Hosting to the Cloud and summarizes the pros and cons of all server, hosting and cloud technologies, from the technical perspective, as well as the economical side.
In the lecture, I first started about servers. The students in VIA are web developers and have so far seen applications run only on their laptops, and the Google App Engine in the better cases. To run your own server, you need to buy the hardware, provide room, power, cooling and connectivity. Licenses for some software are more expensive than the hardware and you need to account for the cost of administration, for even if you are doing it yourself, it is eating your time.
In this part, we had a nice discussion about power consumption and internet lines, which was good, because, as you can see, there is not much hard data in the slides and this way, we discussed some real-life problems.
After that, I started on the theory of Virtualization, its history, the four ways to do it (hardware exceptions+emulation, hardware assisted virtualization, paravirtualization and containers). Then I tried to explain the benefits of Server Consolidation with virtualization. Most of the true web programmers were probably sleeping here, but still, we have talked with some others about CPU types and how to do CPU limiting in Xen.
From virtualization we moved to IaaS (Infrastructure as a Service), which I presented first in its private form, as an upgrade to virtualization, which brings the properties of Cloud Computing to the users server rooms, those are Automation, Elasticity, Accounting and Self-service, and they lead to better utilization of data centers through dynamic re-use of resources and great flexibility in deployment od new and scaling of old applications. I also pointed out that computing power in IaaS comes in units of VM instances, whose computing power cannot be scaled once they are running, so applications need to be ready for horizontal scaling.
I then moved to the public PaaS cloud and it’s Illusion of Infinite Supply, which is great if you need something computationally intensive done quickly without capital investment, but not as good if you need to run a server 24/7, because the operational costs may soon become rather high for bigger loads. But I haven’t written it of altogether. There is a lot of possibilities that can be done with the cloud that are expensive to achieve otherwise, for example high availability with geographic distribution. Or short-term licensing of server software.
I then managed to present the concept of the hybrid cloud and.. I ran out of time. I still had chapters prepared about Webhosting, PaaS and Capacity Planning. Well, maybe next time. Perhaps I will get two lectures next semester, who knows..