On Jun 14, 2009, at 11:10 AM, André Brinkmann wrote:
sorry for interfering with your discussion, but I am only reading your Email list since a week. From my perspective, IaaS (and OCCI) only deals with an execution platform for (a collection of) virtual images. The operating system itself and the "virtual" hardware (Virtual MAC, ...) is part of the virtual image and therefore does not belong to an IaaS environment.
Actually, I think this is provably untrue. The virtual hardware will almost certainly belong to the infrastructure and not the VM itself. For example, right now GoGrid provides 3 NICs, but Amazon provides 1. Both are Xen-based platforms. Other systems provide arbitrary numbers of NICs. Since the virtual hardware is supplied by the underlying hypervisor layer and it's configuration the virtual hardware is part of the IaaS platform.
In addition, most of the hypervisors request you to use Ethernet MACs that have Vendor IDs relevant to the hypervisor under which they are used. For example, VMware uses 00:0c:29 for dynamically assigned MACs. This leaves only 16M possible Ethernet MACs across all VMware installations. The risk of collision when moving a VMware VM from one cloud to another is very high. Because of this vendors will almost certainly provide (and hardcode for security reasons) the MAC addresses for servers.
In other words, the virtual hardware and the virtual MAC are tied to the IaaS platform and not the VM.
One can certainly argue whether the OS is the bottom layer of PaaS or the top layer of IaaS, but there is absolutely no doubt that it's the primary interface between the two.
I would argue that the traditional notion of OS as a platform comes from the idea that the OS provides a set of runtimes (libraries, resources, and facilities) upon which you can 'load-your-code-and-go'.
So, if platforms are 'load-your-code-and-go' systems, then an OS itself is not a platform. By default not every OS is ready to have code loaded and ready to go after a fresh install. Most require some significant configuration.
So if we want to split hairs, an 'OS' is probably the top layer of an IaaS platform and a 'configured OS' is probably the bottom layer of a PaaS.
BUT, if we dig deeper and look at runtimes that don't sit on a specific OS (JVM, Mono, CLR, etc.) then one has to assume that while the run times are typically attached to an OS, they don't have to be.
Nevertheless, services like VPNs, DNS, and DHCP are services, which are typically provided by the infrastructure outside of the virtual machines and I would be happy if you would include a description of these services inside OCCI.
I wrote this up fairly extensively here:
--Randy