Four Simple Ways to Install Enterprise Apps
While you can install any software on the Linux desktop with just a couple of mouse clicks, enterprise apps are a different story, because they require a lot of infrastructure software, from high-end web and database servers to basic libraries. As a system administrator you may spend hours putting together components before you can deploy an app on the network. Fortunately, some convenient software tools can do the grunt work for you. Packages such as XAMPP, BitNami, Turnkey Linux, and JumpBox can help you deploy a new server app you've been wanting to try in no time. Some solutions install on bare metal, while others can install within a virtual machine, or even on a cloud-based hosting service such as Amazon EC2.
The XAMPP Stack
One of the most popular platforms for deploying or developing a web application is LAMP, which refers to the combination of the Linux operating system, Apache web server, MySQL database server, and PHP scripting language. Variations of this stack replace Linux with Windows or Mac OS X, MySQL with PostgreSQL, or PHP with Perl or Python.
In the XAMPP stack, the X refers to the cross-platform nature of the stack. It's available in four distributions targeting the Linux, Windows, Mac OS X, and Solaris operating systems. XAMPP gives you Apache, MySQL, PHP, and Perl, along with several other libraries and tools. It bundles important modules such as mod_php, mod_perl, and mod_ssl, and you can install addition PHP modules via PEAR. It also gives you libraries such as libjpeg, libpng, and libzlib, which are required by several popular open source web apps. To assist with administration, the suite bundles phpMyAdmin to manage MySQL databases, and the secure and speedy ProFTPD FTP server.
The idea behind XAMPP is to give you a single convenient package that you can use as a sandbox to test and develop web apps. That simplicity means that, unlike the other three options, XAMPP offers no virtualization options and no cloud support.
Installing XAMPP is simple and well-documented. By default the XAMPP installation isn't secure enough for a production environment, but a built-in script lets you rectify that by taking steps such as stopping MySQL from being accessed over the network and setting a password for the MySQL root user.
BitNami Stacks and Modules
While XAMPP gives you a vanilla infrastructure environment, BitNami packages individual web apps along with all the servers and libraries they require. Available BitNami apps include WordPress, Drupal, Joomla, JasperServer, JBoss, and Subversion, among many others. BitNami Stacks give you the complete environment to develop and run web apps, bundling applications with cross-platform Apache-MySQL-PHP stacks and other frameworks such as Django, Ruby, and Tomcat.
You can install a BitNami Stack natively on Linux, Windows, or Mac OS X. Depending on the app, the stacks might vary for the target installation platform. For example, the Alfresco CMS stack is available in two flavors – a full stack with all the dependencies for Linux and Windows, and one without the JDK for all platforms.
If you've installed a BitNami Stack, and you want to use additional applications, you can install supported apps as BitNami Modules, which are lighter installers that come without the infrastructure components. When selecting a module, make sure you download the one that matches the operating system BitNami is installed on. For example, separate WordPress modules run on top of WAMP (Windows), LAMP (Linux), and MAMP (Mac) stacks.
Besides the native installers, BitNami Stacks are also available in self-contained virtual machines for VMware Player or VirtualBox, distributed in the Open Virtualization Format (OVF). In addition to the apps and the infrastructure, these virtual machine images contain the operating system components required to power them. BitNami Virtual Machine Images are considerably larger than the normal stacks and use either openSUSE 11.3 or Ubuntu 10.10 as the base operating system.
A note of caution: I couldn't get BitNami Virtual Machine Images to work under VirtualBox, though they ran flawlessly on VMware Player.
Finally, you can deploy these installers on Amazon's EC2 cloud service. BitNami lets you download the stack directly onto your Amazon server in the US, Europe, or Asia. To simplify the process of deploying and managing the apps on the EC2 service, you can sign up and pay for BitNami's Cloud Hosting service
, which you can test drive for free for 30 days.
BitNami's stacks use BitRock's proprietary cross-platform graphical installer InstallBuilder
. Although it's available with a commercial license, the BitNami developers offer it for free to open source projects, including Mono and the Npgsql project.
TurnKey Linux Virtual Appliances
Unlike BitNami there are no native installers for TurnKey Linux appliances. All the applications inside a TurnKey appliance are designed to run inside a virtual machine on a stripped-down version of Ubuntu.
You could compare TurnKey appliances with the virtual images available with BitNami Stacks, but TurnKey takes pride in the fact that they are 100% open source and you can tweak their appliances.
The TurnKey developers give out detailed information about their core components and the exact changes made to the appliance for a particular app. For example, the download page for Zimbra has information about Zimbra configurations and custom scripts, which could come in handy when you're trying to troubleshoot a misbehaving appliance.
TurnKey offers virtual appliances for VMware that run fine on VMware Player, OVF images for VirtualBox, and ISO images to install the appliance on bare metal. As with BitNami you can also deploy the images on Amazon's EC2 cloud service, and manage them via the free TurnKey Hub web service. Once you've registered for TurnKey Hub you can also use it to back up the most crucial elements of your appliance to Amazon S3. The backup tool can also fetch and restore data into the appliance.
All TurnKey appliances use the most recent Long Term Support (LTS) version of Ubuntu, 10.04.1, which is slated to be supported until April 2015. During setup, TurnKey gives you the option to install security updates from Ubuntu right away. By default it's also set up to check for security updates every day, although you can turn this off by editing a cron file.
TurnKey has a user-friendly administration interface. One of its impressive features is an AJAX terminal emulator powered via ShellInABox that you can use to administer the base Ubuntu installation. You can even install a complete graphical environment on top of the bare-bones appliance.
JumpBox Virtual Appliances
Although it's a bit of a cliché, a JumpBox appliance really just works out of the box. On the downside, JumpBox is proprietary software, and the only non-free (in both senses of the word) solution among these four.
All JumpBox appliances are packaged to be deployed on virtual machines and are based on the Ubuntu 10.04 LTS release. Of the four solutions in this article, JumpBox supports the most number of virtualization platforms. The standard JumpBox appliance can run on top of VMware and Parallels products on Windows, Linux, and Mac OS X. An OVF release imports the appliance in VirtualBox. You can also download a Jumpbox onto Amazon EC2.
As with the other solutions, setting up a JumpBox appliance is simple. After you've booted it on your favorite virtualization app, it spits out an IP address that you can visit to configure the appliance. Configuration involves specifying an administration password and some other details, which can all be modified from the administration console later.
The highlight of JumpBox is its administration console, which is the same for all JumpBox appliances. It includes a utility to back up and restore entire appliances. The utility lets you manually download a backup, or automatically back up to a Samba or NFS share, or to Amazon's S3 cloud. You can restore from the backed up file or from another JumpBox running on your network. From the admin console you can also enable SSH and SFTP login into the JumpBox. This comes in handy when you want to modify configuration files of the components within the JumpBox.
Besides appliances for common enterprise apps, JumpBox also packages some infrastructure appliances for deploying LAMP apps, as well as Rails, Tomcat, and others. The main page of the LAMP infrastructure appliance has detailed step-by-step instructions on how to deploy a web app. For web developers, it has relevant information such as the version number of the components and the location of their configuration files.
The Right Solution for You?
All four of these solutions have advantages and disadvantages that make them best-suited for different usage. XAMPP is the smallest and simplest and is suitable for any situation where you need a LAMP setup in a jiffy. It's ideal for web developers and can be used to deploy the most popular web apps. If you want the experience of setting up an enterprise application without messing with the existing infrastructure, XAMPP is for you.
If you need a prepackaged ready-to-use web app, browse through BitNami Stacks. These popular web apps are easy to deploy, though the downside is that BitNami Stacks require some knowledge of networking. If you are installing the stacks on Linux, make sure you aren't averse to working at the command line. BitNami Stacks lack a management console, and administration tasks such as backing up an installation or upgrading the stack have to be done manually.
If you are an absolute beginner looking to get acquainted with web apps, use either JumpBox or TurnKey Linux. JumpBox is the easier of the two to manage and supports a greater number of virtualization platforms. Although it allows you to tweak the core infrastructure, it's best used as-is. TurnKey, on the other hand, is open source and available in multiple formats, and lets you easily build on top of the appliance.
Of course your choice of a solution may depend on the application you want to deploy. Not all solutions support the same web apps. For example, currently only JumpBox gives you prebuilt appliances for Elgg and Openfire, though you can install these manually on top of any basic LAMP stack if you have the time.
Bottom line: XAMPP, BitNami, TurnKey Linux, and JumpBox are all worthwhile options for quickly deploying web server apps.
Write for Wazi, and get paid!
This work is licensed under a Creative Commons Attribution 3.0 Unported License
This work is licensed under a Creative Commons Attribution 3.0 Unported License