|
NuSphere MySQL: Free Beer in a Tall Glass
Integrated web development in a box.Linux administrators can choose from numerous HTTP servers, database servers, programming languages, and administrative tools for creating web servers on Linux. Among the most prevalent, however, is the so- called LAMP (Linux/Apache/MySQL/PHP) configuration. LAMP is great way to run a web site: It's fast, reliable, efficient, and flexible. It can also, however, be daunting to set up and manage for those not intimately familiar with Linux configurations. Just installing the pieces of the LAMP puzzle involves anything from a few RPMs (if you do it from binaries) to multiple source builds (if you prefer to roll your own). Configuration often consists of editing text-based files and restarting daemons -- not a problem if you're a Linux wiz, but intimidating if you are not. Perhaps most difficult is getting secure (SSL-based) web hosting to work, a task that can try the patience of anyone who is not a cryptography guru. A number of companies have taken on the task of automating the task of building and managing Linux web servers, among them NuSphere Corporation with their "NuSphere MySQL" product. NuSphere claims the installation process works on Windows 95/98/NT4/2000, Solaris 2.6 and 2.7, and Red Hat Linux 6.2 and 7.0. It turns out that it also works on Caldera eDesktop 2.4, though with a few caveats as you will see later. To make a long story short, NuSphere is an extremely easy way to build a fairly comprehensive Apache server with all the bells and whistles. Up until now, I had always built Apache, MySQL, and PHP from source tarballs. This isn't too difficult except that there are some odd interactions between Apache and PHP (you have to ./configure Apache, then build PHP through, then build Apache). With NuSphere there are four ways to install, and three of them don't involve building from source. You can run NuSphere's installation program locally, you can run it remotely using a web browser, or you can install the components manually from the provided RPMs. Last, but not least, you get the source tarballs on the CDROM and so you can install that way. I did several installations in various configurations on my Caldera system, which is close to Red Hat and is RPM-based. The only method that would not work for me was the one that seemed most straightforward: running the installation program locally. There were several dialog windows that simply showed blank white backgrounds, and the main sequence of installation just hung and had to be killed. This was probably due to a GTK or other widget library being either too new or too old, though it was hard to say which since no error messages were generated. On the other hand, the remaining three installation methods worked quite well even though Caldera isn't officially supported by NuSphere. Source is source, so I won't belabor the tarball option further here. Installing from the generic RPMs worked correctly except that the startup and shutdown scripts weren't copied or linked into /usr/local/bin (a matter easily corrected with some judicious "ln -s" commands). The other problem with the generic RPMs was that they attempted to create files under the login name of "dmcmahon", presumably one of the company's engineers. RPM handles the non-existence of this login gracefully by defaulting to root, but it's something the folks at NuSphere should fix. The most interesting approach is the remote install, and this is a real power tool for distant servers! You need to get the installation files onto the target machine (the remote), though it doesn't matter much how you do this. On the remote machine, with no X DISPLAY variable set, running the "setup" script from the installation directory brings a prompt to start a browser on the local server (the controller) and point it at port 4001 on the target. From within the browser window, CGI-like forms are used to control the installation and testing process. This worked flawlessly for me, and within minutes the system was ready for use. After a successful installation, the main NuSphere screen is visible if a browser connects to the local machine, and menu items offer links to the other functions depending on what has been installed and what has not. All of the major applications on the NuSphere media are Open Source software, so what this company brings to the table isn't so much code as it is integration. In some areas, I found this to be quite beneficial while in other areas I remain skeptical. For example, the company's literature says, "...rather than scattering installed components across your disks in multiple directories, the NuSphere MySQL installation puts everything under one common root directory." They certainly do what they say (it defaults to /usr/local/nusphere), but I question the value of this when most standard installations would create only a few new directories, and those beneath /usr/local. Does it really matter that /usr/local/apache is replaced by /usr/local/nusphere/apache? In fact, as integral as Perl is to the operation of many system utilities, I'm not certain that I want it to live in /usr/local/nusphere/perl. This is just an opinion, of course.
Smooth integration, decent documentation.It was very nice, on the other hand, to have the integration between Perl, MySQL, Apache, PHP, and OpenSSL all handled automatically. There are quite a few little details that Just Work (tm) with this software, and what seems to add the final bit of polish are the administrative tools that at first seemed extraneous to me. NuSphere comes with Webmin, an HTTP daemon that runs independently of Apache and provides a (password protected) interface for managing a local or remote Linux or UNIX system with a web browser. Webmin worked quite well in my testing once I ran its configuration script from the command line (from /usr/local/nusphere/webmin) so that it knew I had Caldera Linux instead of Red Hat. Also included is phpMyAdmin, a very slick front end to MySQL that allows databases and tables to be created, modified, renamed, and even populated from a web browser. Personally, I'm comfortable writing SQL statements directly, but I was impressed with how easy phpMyAdmin is to use. It's very intuitive, and though NuSphere didn't write it they were wise to include it on the disk. Two sample web sites and numerous test scripts are automatically installed with the NuSphere environment. The test scripts are primitive but useful confidence tests of the basic installation, ranging from "Hello, World" and phpinfo() to simple CGI forms. The sample web sites include a meeting room scheduler (which is robust enough to use in production for a small company) and a shopping cart demonstration. The latter is not what I would call production- ready, but it is a useful demo of the basic technique. There are also two applications, Bugzilla and IRM, which NuSphere calls the "professional" apps. Bugzilla is the web-based bug tracking database used by the Mozilla team, and as such it's pretty well debugged and tested. IRM is a simple computer inventory database for asset tracking, somewhat primitive in appearance but with more depth than first meets the eye (for example, it supports the notion of scheduling the same upgrade work on multiple computers in a group). Documentation is part of the value of NuSphere's packaging of applications that would otherwise be free. The documentation kit has some minor gaps, but is for the most part quite useful. Most notably, NuSphere comes with a softbound copy of the MySQL Reference, a 700+ page tome that would be welcome on many desks. Also included -- and useful -- are several of the pocket reference guides from O'Reilly and Associates. Apache, Perl 5, and PHP are all covered. There is also a Getting Started guidebook, specifically written for NuSphere. Alas, while it was mostly accurate and useful, this guidebook needs some correction in its details. For example, the directory where .rpm files are said to live is /mnt/cdrom/RPMS according to Getting Started, but on the disk I was sent it is actually /mnt/cdrom/Linux/RPMS. This is a small thing to most Linux administrators, but NuSphere is aimed at least partially toward people who are moving server environments to Linux or UNIX and who are not UNIX gurus. The Getting Started guide is fine as far as it goes, assuming a few technical corrections, but it really should be supplemented with a more detailed reference covering the interaction between Linux, Apache, Perl, and MySQL. This reference actually exists in an online format, but it would have been very helpful to see a printed copy as well. SSL credentials are another area where the documentation is weak. To the company's credit, NuSphere comes out of the box with Secure Sockets Layer encryption configured and enabled. I had no trouble at all getting it working. But real SSL is more than just an encrypted connection -- it also involves two-way authentication of the machines and people at the end of that connection. NuSphere comes with a preconfigured, generic SSL certificate, but the documentation on how to get a real one is buried deep within one of the online manuals -- it's there, but in my opinion this should be an area that is thoroughly and visibly documented, and perhaps even more automated. Secure Sockets Layer uses the concept of a digital "certificate", issued by a trusted Certificate Authority (CA), to authenticate machine to machine. The strength of a certificate lies not in the certificate itself but in the reputation of the organization that issues or validates that certificate. NuSphere comes preconfigured with a bogus SSL certificate that works fine for testing. In order to run a real web site, though, administrators would need to create a new certificate. Depending on their needs, they can either have an established CA agree to back their new certificate (a process known as signing and accomplished with hash codes and public- key encryption), or they can sign the certificate themselves. The latter is enough for casual encryption to keep passwords from crossing the net in cleartext, but it is by no means acceptable for large-scale e-commerce. In any case, the process of creating a certificate involves generating (and securely storing) a private/public key pair and then getting the public portion of that key (and the link to the applicable CA) into the user's browser. At runtime, then, the CA can be contacted to say to the browser, "Yes, the public key you have presented really is the public key of XYZ company." Instructions for doing most of this are online in the NuSphere documentation, but I think this should be made more visible to the user because it is very likely to be needed by companies interested in e-commerce. This is a small gripe with documentation that is otherwise pretty good. I would have liked to see the default security be a little tighter, with mandatory entry of real passwords by the installer instead of just assigning defaults and then telling the user to change them. Hopefully, though, anyone who's building a web e-commerce site will know the importance of this without being told, whether they use a tool like NuSphere to save installation time or they do it the old fashioned way for maximum control. And integrating web configuration with firewall settings in the administration screens would be a great enhancement in a future version.
NuSphere builds a solid product, and contributes back to the open source community.NuSphere, taken as a company, seems to take the notion of Open Source pretty seriously. Not only is the source code of their MySQL distribution open (as it would need to be to include things like Apache and MySQL), but this company has also contributed to the MySQL software team an important piece of technology (called "Gemini") for transactions and row-level locking. This is evidence of NuSphere's attempt to be a good citizen in the open source community. The folks at NuSphere have a good idea, and they have in effect done for the middleware tier what Linux distributions have done for the operating system tier. It would be nice to see an integrated Open Source search engine tool, and perhaps a WebDAV-aware HTML editing tool, in a future release. Even without these items, though, NuSphere is useful enough to be worth considering for business oriented server deployments. It is reliable, easy to install, and a genuine improvement over the equivalent component-by-component installation methods. The downside of this business model is that distributions often include many of these same Open Source tools as part of their standard installation, so trying to add NuSphere later may do more harm than good or may not add much value in some situations. In others, especially where the system administrator is new to Linux or UNIX, NuSphere could be a great boost to admin productivity. NuSphere does not relieve the system administrator of the need to think -- it just takes away some of the grunt work. Overall, I found NuSphere MySQL to work well and to be a useful suite of middleware for Linux server deployment, though its close ties to the Red Hat distribution's quirks impair its ease of use on other systems slightly. Whether or not it is worth its $299 price tag will depend on who is being asked. $299 is a lot to pay for just getting free beer pre-poured into a tall glass, and indeed a Linux wiz who is comfortable compiling large programs from source tarball may not want NuSphere and its fancy browser interfaces getting in the way for a small number of servers. But that same person, confronted with the need to build and manage a couple dozen servers -- some of which are located at the other end of a large building -- might find the remote GUI installation to be extremely valuable. Those who are new to Linux and who need to have a small e-commerce site online quickly will definitely find NuSphere a worthwhile purchase.
|