Re: Please let's not talk about "clouds"
It's a real pleasure to discuss this topic with you. Really!!!
On 04/24/2013 07:32 AM, Richard Stallman wrote:
> Cloud IaaS means you get a bunch of physical computers, pool them into a
> unique entity, then you can start virtual servers
> Now I know what you are referring to. This is remote virtual computer
No. Cloud IaaS is very different from just "virtual computer". Don't do
this huge mistake.
> Ethically it is a totally different issue from SaaS.
In both cases, you rely on the underlying installed things by the provider.
> For AWS (Amazon Web Service), Azure, and probably any other proprietary
> What does "proprietary" mean in the context of remote virtual server
We don't have the source code of AWS or Azure. But we do have the source
code for OpenStack (Apache-2.0 license), which is used by HP and
Rackspace in their commercial offering, and both companies are active
contributors in the project. They both try to upstream as much source
code as they can, as over the years, it even was demonstrated that it
could be very costly for them if that process was delayed (I heard that
HP has lost millions because having a kind of forked version of
OpenStack in production).
If you do the mistake to think that IaaS cloud computing is just virtual
servers with ON / OFF switches with an API, then you are missing the
point of it. IaaS clouds have very rich APIs and a huge amount of features.
> Our distinction between free and proprietary is defined for a
Right. This is what I'm talking about. AWS is proprietary. Azure is a
proprietary software too. Only the APIs of both are public. OpenStack,
Eucalyptus, and CloudStack are free software, and may be used by hosting
companies, and at home or office, for no charge, with the usual freedom
we are used with other kind of software.
Also, remember that you can rent a "private IaaS cloud" from these
providers using OpenStack. That would be equivalent of having some
dedicated servers, apart from the fact that these have been already
pre-setup with the IaaS software. So, technically, this would be server
renting (so, not your own physical hardware), but you may have the root
access on these servers, and can check the source code, modify it, etc.
So yes, there's a huge difference between what AWS does, and what HP or
> and remote virtual computer rental is a kind of computing
> See http://www.gnu.org/philosophy/network-services-arent-free-or-nonfree.html.
I have read this document, and agree with most of it. Though it doesn't
cover some of the modern IaaS cloud things that I've discussed in this
Also, I really dislike that you consider the freedom in terms of what
type of commercial contract you have with the hosting provider. Eg, if
you rent a server and pay for it every month, it's not the same freedom
for you, as if you had bought it. I think that is quite obvious to
anyone that if you bought your apartment, you can dig holes on the walls
and you will have nobody to report about it (hum... maybe the
neighbors?), but it doesn't help our fight against evil proprietary
> you have the same specific need as with the free software version
> of IaaS currently available in Debian using Eucalyptus or OpenStack
> I don't know what Eucalyptus or OpenStack do. Are you saying that these
> programs create and manage virtual computers on top of Debian?
No. I wrote that they are IaaS cloud orchestration software. Neither
Eucalyptus or OpenStack contain an hypervisor to actually do the
virtualization. They *use* some hypervisors to do IaaS. That is very
> The "cloud-init" thing is that part which runs at boot time inside the
> virtual machines which queries the metadata server for this information,
> and initialize the virtual machine with what it receives.
> That makes sense now, but it is a shame to give it a name
> which encourages people to think in terms of "cloud". I would like
> to suggest changing its name. Why not call it virtual-machine-init?
This wouldn't work. Let's say you installed cloud-init in a virtual
machine image, then try to load that in Virtualbox, KVM, or Xen, without
any IaaS cloud orchestration software. Then cloud-init would be waiting
forever to reach the metadata server. So, for a virtual machine, you do
*not* want to include cloud-init, which would be very annoying.
So yeah, these images should really be called "cloud images", and
certainly not "virtual machine images" which would fool our users to try
to load them in virtualbox which would fail. It is also quite obvious
that we are talking about IaaS here, and not anything else.
> the source package cloud-initramfs-tools in Debian (which contains a bit
> more than just that).
> This too makes sense, but it would be better not to call it "cloud".
I don't agree. Also, "cloud" isn't an evil word. It is sometimes useful.
This is the case here.
> So, for both commercial cloud IaaS offering images, and for the images
> which will fit into the cloud IaaS software offer available in Debian,
> we have the same needs for the images:
> - ssh without host keys
> - cloud-init and friends (growroot and so on)
> - a boot loader (it seems after all, extlinux could work)
> - a minimalistic install of Debian
> Because "cloud" is vague, I can only guess what you mean when you say
> it here.
In the case of virtual machine images, this isn't vague at all, we know
for sure that we are talking about IaaS (the kind of provided by AWS,
Azure, Google Compute, Rackspace, HP, or by software in Debian like
Eucalyptus, XCP or OpenStack).
> If my guess above is correct, that Eucalyptus manages virtual
> machines on top of Debian, then I see why you would want an image
> to run in them, like the image you might run on virtual machines rented
> from a service like Amazon.
Correct. These IaaS clouds needs virtual machine images to eat,
otherwise they are pretty useless! :)
> Well, since we can make it so that these images could work on nearly any
> IaaS cloud, yes, calling them "an IaaS cloud image" does make sense.
> It's convenient that the same image can run in various kinds of
> virtual machines. But since we're talking about running Debian in a
> virtual machine, the clear thing to call it is a "virtual machine
Nop. See above. "virtual machine image" would simply be wrong. Things
are more complicated than this.
Thomas Goirand (zigo)