Building your own “Cloud” – Part 1
Thursday, October 15th, 2009While this post is written with K-12 schools in mind it could be used by small colleges and even businesses.
So what the heck is a “cloud”? For the most part it is a return to centralized computing using the web browser as the application of choice. The using the cloud allows you to provide software as a Service (SaaS). This is a great article on the cloud.
Ultimately, schools have not systematically embraced the “cloud” or Web 2.0 because they have very little control over the tools that are offered. Even Google Apps for Education, arguably the best “cloud” application currently available to schools, has some Terms of Use language that makes some teachers and/or administrators flinch. The need for control, whether necessary or not, has held back innovation in schools for too long. This guide will help lay out a path to creating your own “cloud”.
So let’s start with some basics:
- Virtualization
Server that supports virtualization. At this point you can pretty much use PC, Mac, or Linux depending on personal preference. This will allow you to tinker more, and the resulting virtualized application is highly portable.Here are some of the virtualization products I’ve used:
- Virtual Box by Sun Microsystems
- VMware by VMware
- Linux
Basically, this is a package that lets you easily install an Apache web server with all of the necessary technologies (PHP and MySQL) very quickly. Each one is a bit different depending on the host OS but they all do the same thing. I suggest that for the first time you use a Linux distro with a GUI. This allows you to start experimenting with Linux while still having a comfortable GUI from which to work. In particular, I’ve found both Ubuntu and OpenSUSE to be very user friendly and both have a wide base of support. - Web Apps
For an average school or classroom the following give you a great starting point:- Moodle (Course Management System)
- WordPressMU / BuddyPress (Blog/Social Networking)
- Elgg (Social Networking)
- EyeOS (Web-based operating system)
- Mindtouch Core (Wiki)
- LDAP via Active Directory/Open Directory
LDAP allows you to more efficiently control your user-base on these systems. Most school districts already a have one of these systems in place so it is just a matter of setting up the correct permissions and your users, faculty and students, can log in using their usual info. - Server Hardware
To begin with you can run any of these applications via laptop or desktop. My original setup was on a Macbook with a Core 2 Duo and 2 GB of RAM. For production, you want something a little more substantial but we’ll address that when we get there. - Dedicated IP Address and DNS Record
Most of these applications require that you use a dedicated/static IP address. This just means that your server’s IP address will not change over time. It is also important that your server has a domain name. This can be done via DNS, which will most likely require the help of your IT department or to begin with a modification to your servers HOSTS file.
Above, is the outline of what the next few posts will be about. We’re going to look at setting up a linux webserver inside of Virtual Box, then we are going to install our first web application, and then we’ll look at how to use Apache Virtual servers to host multiple web applications.
The end result will be cloud services for your organization with a focus on utilizing current open-source technologies.