Jim Crossley wrote:
Apologies if this is too off-topic, but...
On Tue, 2006-12-05 at 17:28 +0000, Steve Loughran wrote:
Because that's the kind of thing we can automate and lock down under
SCM. That lets us create a blank VMWare or Xen disk image, have it run a
PXE preboot to get the base image, then after it comes up we can bring
the system up to the state where the WAR file deploys.
This is a beautiful idea. Could you please cite any articles, books, or
blogs that describe this "world" in more detail?
Well, I work on smartfrog, http://smartfrog.org/ which is a distributed
deployment framework. It has ant tasks, but not yet any m2 support,
because nobody has sat down to do them yet.
It can do the setup from the VMWare image down to setting the mime types
of your servlet.
An overview is :
http://people.apache.org/~stevel/slides/oscon.pdf
And a more recent one on using it for testing is:
http://smartfrog.org/presentations/distributed_testing_with_smartfrog_slides.pdf
with the video
http://smartfrog.org/autolinks/googleLTAC06.htm
This covers how you can treat a distributed test run as just another
part of your deployment, so run things like junit tests on eight
different machines, all against the same server. If you can start
selenium on those machines, you even get to test your site on the many
different browsers.
In none of these talks, do I discuss dynamic VM configuration, though we
are thinking of doing a talk on the topic at Apachecon europe, something
like "hosting fun on Xen and EC2", where we'd show how load monitoring
lets you deploy new virtual servers on demand on the Amazon EC2
infrastructure, surviving ./ at the cost of your visa bill. (actually,
thats a better title. "Using Amazon EC2 to survive slashdot attacks".
In the forthcoming "Ant in Action" book there is a chapter on
smartfrog, though again, no VM coverage. Its a bit too advanced for a
single chapter.
To get into VM stuff, there are a couple of things that are useful on
sourceforge
SmartDomains, from Cern, at http://smartdomains.sourceforge.net/ . These
are smartfrog components to manage Xen images, creating them on demand,
stopping them when needed. You deploy a manager on one real/virtual host
in the server farm, have it manage the rest.
LinuxCoe: http://linuxcoe.sourceforge.net/
This is how we create our virtual images, either by hand or by machine.
It is the code to host a server which provides a way to create kickstart
ISO images with custom linux boot parameters (network config, login
info). You set the VMWare/Xen box up to boot off the ISO file, and it
will bring up the OS.
To actually try it, go to http://www.instalinux.com/ . This gives you a
dialog where you choose your OS image, and all the packages that it
offers. Go through the forms, create the iso image, and bring it up in
VMWare player. For Xen you need different kernel builds, but the idea is
the same. You can also create a 'profile', which is a reusable custom
config.
Now, if you can demand create a bootable ISO image by hand, you can have
a machine do it. All you need is a file describing which packages to
install, what the network settings are, etc, and a program to talk to
the linuxcoe server or an equivalent over XML. You get the URL to the
ISO file back, download it to the shared FS of the VM cluster, and use
SmartDomains to bring up the new machine.
PXE preboot envs are a bit trickier. You need to deploy something that
handles the requests, preferably on the virtual network as otherwise you
can end up accidentally installing the OS on other people's real
machines. Its probably how the many-server companies like google, amazon
and MS work, as you can stick a blank box in the rack, switch it on, and
after a while its live.
So, my recommendations are
1. play with instalinux and vmware/xen
2. play with smartfrog
3. play with Amazon EC2
4. Get a 4-way CPU system with the virtualization op codes and as much
RAM as the mainboard will take. You'll need it. And lots of IDE storage
for backed up images.
Although dynamic VM creation is something that a lot of ops teams are
still nervy about, they need to recognise the control they get. They are
in charge in the images, they can lay down the profiles. And they can
give the developers virtual machines that match exactly what the devs
will get in production, so everyone can have a private (virtual) 3-tier
cluster to test their app on. More to the point, if you don't have the
VM creation under control, you've just created a maintenance nightmare.
Every month-old XP image is an unpatched host.
-Steve
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]