Future Topic: virtualization

12 views
Skip to first unread message

Bruce Boyes

unread,
Jul 10, 2015, 2:55:32 PM7/10/15
to utahp...@googlegroups.com
I would be very interested if someone who deeply understands virtualization would talk about that some meeting.

In particular, when you use 'python-virtualenv', what exactly is happening? it seems to add no processing overhead to use this, is it just some encapsulation, sort of a fork of the usual executable paths so that you can merge the root install plus this isolated temporary 'sandbox'? I'll google on that. If so, that's kind of a cool thing to be able to do, for development anyway, so that you don't muck up your base installation with new binaries and libraries which you might not want to use forever. Can you control what binaries (gcc, say) get used from the virtual and which from the base install?

When else would you use virtualization?

I've heard of virtualizing an OS so you can attack or infect it and then flush the whole thing, safely.

There must be different gradations of virtualization: running one whole OS on top of another sounds like the most extreme.

Well you get some sense of my questions.

Maybe there is a good online reference or book which covers this. So much to learn...

Thanks

Bruce

jason

unread,
Jul 10, 2015, 3:23:19 PM7/10/15
to utahp...@googlegroups.com
Bruce Boyes wrote:
>
> I would be very interested if someone who deeply understands
> virtualization would talk about that some meeting.
>
> In particular, when you use 'python-virtualenv', what exactly is
> happening? it seems to add no processing overhead to use this, is it
> just some encapsulation, sort of a fork of the usual executable paths
> so that you can merge the root install plus this isolated temporary
> 'sandbox'? I'll google on that. If so, that's kind of a cool thing to
> be able to do, for development anyway, so that you don't muck up your
> base installation with new binaries and libraries which you might not
> want to use forever. Can you control what binaries (gcc, say) get used
> from the virtual and which from the base install?
virtualenv is essentially path and environment tricks. It copies (or
symlinks) the python binary in ENVHOME/bin/python and sets up a
directory for modules to be installed
(ENVHOME/lib/pythonX.X/site-packages). When you `activate` it, your
environment is set up to use these locations. It is fast because it's
not actually virtualizing anything so you are correct calling it an
'isolated sandbox'. Anything you put in this ENVHOME/bin directory will
be used while your virtualenv is active (gcc for example). This is
similar to the `mkdir ~/bin; export PATH=~/bin:$PATH` trick many people use.
>
> When else would you use virtualization?
>
> I've heard of virtualizing an OS so you can attack or infect it and
> then flush the whole thing, safely.
Researchers do use virtualization for this, though it seems its largest
application is deploying it on server hardware to 'get the most' out of
it. I've used virtualization to test my applications with the
software/os that it will actually run on. If you want to play around
with it give VirtualBox a try. (v5 was released yesterday)
https://www.virtualbox.org/
>
> There must be different gradations of virtualization: running one
> whole OS on top of another sounds like the most extreme.
There are different abstractions of hardware when virtualizing. Here is
a decent writeup explaining these different methods:
http://www.vmware.com/files/pdf/VMware_paravirtualization.pdf
>
> Well you get some sense of my questions.
>
> Maybe there is a good online reference or book which covers this. So
> much to learn...
>
> Thanks
>
> Bruce

Hope this helps!
-Jason

steve christensen

unread,
Jul 10, 2015, 3:26:24 PM7/10/15
to utahp...@googlegroups.com
In addition to virtualenv, you might also read up on Docker and Vagrant (and Salt, and Chef, and Puppet, and Ansible)

Here's a stackoverflow post that gives a good overview of Docker and Vagrant: http://stackoverflow.com/questions/16647069/should-i-use-vagrant-or-docker-io-for-creating-an-isolated-environment

That post's answers are somewhat out of date (from 2014), but are still a good overview in general. Docker in particular is evolving very quickly.




--
You received this message because you are subscribed to the Google Groups "Utah Python User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to utahpython+...@googlegroups.com.
To post to this group, send email to utahp...@googlegroups.com.
Visit this group at http://groups.google.com/group/utahpython.
For more options, visit https://groups.google.com/d/optout.

Sean Upton

unread,
Jul 10, 2015, 3:33:57 PM7/10/15
to utahp...@googlegroups.com


On Fri, Jul 10, 2015 at 1:26 PM, steve christensen <steve...@gmail.com> wrote:
That post's answers are somewhat out of date (from 2014), but are still a good overview in general. Docker in particular is evolving very quickly.

There's also a degree of whoa, slow down a minute... Some years back, I remember seeing the utility of running openVZ containers inside VirtualBox VMs -- but only for certain niche use-cases... A pretty good reductio ad absurdum for docker/container/service nesting complexity I saw this morning:

http://blog.circleci.com/its-the-future/

Sean

Bruce Boyes

unread,
Jul 11, 2015, 1:13:51 AM7/11/15
to utahp...@googlegroups.com
There's also a degree of whoa, slow down a minute... Some years back, I remember seeing the utility of running openVZ containers inside VirtualBox VMs -- but only for certain niche use-cases... A pretty good reductio ad absurdum for docker/container/service nesting complexity I saw this morning:

That is brilliantly hilarious! Had me laughing out loud more and more as I scrolled through. 

Rob Oakes

unread,
Jul 16, 2015, 2:04:37 PM7/16/15
to utahp...@googlegroups.com
It seems like there is quite a degree of interest in this. Mike Adams (who helps organize the Ogden Area Linux User's Group) has asked me to talk to OALUG in September. For that, I was planning on doing an introduction to Docker and talking about Continuous Integration/Continuous Deployment strategies using containers. (Anyone care to guess what I'm currently working on for the Guru Labs code infrastructure?)

I would be happy to modify that presentation a little bit to talk about virtualization in general. From the stuff I've done at Guru Labs, I've gotten a pretty wide exposure to virtualization, what it is, and the various platforms (VMware, KVM, Zen, etc.).

If there is interest in that, I would be curious as to what people would like to hear:

1. A introduction to the types of virtualization (emulation versus hypervisor, container versus virtual machine), and how the pieces fit together to form the foundation of cloud computing? (From VirtualPC to OpenStack?)
2. The benefits of different types of virtualization, and how you can make use of them to be more productive
3. The toolsets available and how you can use virtualization to be more effective. This would probably involve looking at Docker, Vagrant, and possibly an orchestration toolset (like OpenStack heat).

It's going to take some time to put material together, so I'd prefer to present sometime after September (October or November), maybe? Thoughts?

Gregory Doermann

unread,
Jul 16, 2015, 3:09:50 PM7/16/15
to utahp...@googlegroups.com
I'm all in. I love this idea.  It would even be interested to have a series of these as a single meeting may not be enough.  I would be willing to participate in the presenting but we are really just messing around with these techs.  Thanks Rob!

--
Reply all
Reply to author
Forward
0 new messages