Wednesday, June 8, 2011
Teaching Internet Technologies to a class of Computer Science students require that they set up their own servers. The servers are important so they can deploy their web applications in a real world setting, whilst ensuring that they get the skills of actually installing and maintaining a server. Some students are familiar with using a web hosting service, but I prohibit them from doing that for obvious reasons.
With a limited number of servers connected to the internet, the next best thing is to have a powerful enough server and run several virtual machines on it. IN our case, we use VMWare on Mac OS X and Linux and we virtualize Linux.
One thing good about using Linux is that you can have decent quality of service from limited resources. A Core 2 Duo Mac Mini Server is enough to support 5 Linux virtual machines without any performance penalties.
The configuration is simple -- 256MB RAM, one processor and 21GB of space is plenty for an Ubuntu server install. Note, however, that you must have the networking set to bridge, instead of using NAT. That way, each server gets an IP address that is on the same network as the main or host server.
If you are behind a firewall or a router, you need to map different ports on the router to forward to different ports on different VMs. For example, map router port 8001 to the VM port 80 will allow you to access the web server on the VM on that external port.
One last thing before transferring access to students is to make sure that all the VMs automatically start after the computer boots up. Now, you can leave the servers under the care of your students and let them configure and deploy their web apps.
If you need more VMs, you either get a more powerful server, or experiment on lowering the RAM on each VM. Remember that Linux server does not need that much RAM to act as web server.
Source: Manila Bulletin