I work in a team called ISV Engineering (independent Software Vendor) at Sun Microsystems, and work often with ISVs in the Web area. Most of them are startups with little time and available resources, and have a very pragmatic approach of the job: For them IT is “just” a tool to do business and not, unlike what we IT professionals often like to believe, an art !
So the solutions they use (hardware and software) must be quick and easy to set up. Usually they have already started their business running a LAMP stack: Linux + Apache + MySQL + PHP (or sometimes Perl and Python)
However as their business starts growing, comes a day when inevitably they start thinking about scaling. It's one thing to set up easily a platform that works with few connections, scaling is a whole other story. This is usually the time when the ISVs come to Sun and ask if we can help them (and yes, we can !)
Usually I will come up with an architecture based on Solaris (SPARC or x86 depending on the needs), because Solaris is particularly well fit for such mission critical environments, thanks to it's rock solid kernel, ZFS, Dtrace, Containers, etc., but I will cover all this in more details in later posts.
To get back to my point, all this was to say that I end up working with the ISVs on setting up a new architecture based on the SAMP stack where “S” stands for Solaris.
One very annoying thing that used to happen was that we had to download, install every piece of the stack ourselves. Not to mention that often binaries where not even provided for Solaris, and we had to build it ourselves with all the hassle that it brings (what ? I don't have this libraries to build ? And to build that I need some other library, and so on …) This was obviously not the best way to encourage the AMP users to try Solaris or OpenSolaris !
But this was before ! Now on a daily bases I work with two software stacks called CoolStack on Solaris 10 and Sun Web Stack on OpenSolaris.
Cool Stack or Web Stack ?
At this time I'm using both which, I must admit, complicates a bit my life since the components in each stack are not always on the same level, nor are they organized in the same way.
Historically Coolstack was the first bundle of the AMP stack on Solaris 10 (SPARC & x86), but it's much more than just Apache, MySQL and PHP. It come with some of the most popular open source applications used by the developers (such as lighttpd, squid, ruby etc.)
Clearly the advantages are:
-
It all comes in the form of Solaris 10 install packages, which eases the install and uninstall of all the components of the stack (using pkgadd and pkgrm tools)
-
No more head scratching to find out what are the best compilation options: The whole stack was built with the most optimized options
-
All the components are already configured to be used as a whole
-
This point can be seen as a disadvantage or like me as an advantage: everything is installed under /opt/coolstack. I like this because at least I know where to find everything.
Web Stack was the OpenSolaris version of this stack available through the IPS repositories, but the differences are a bit more than just a change of name.
As for today things are getting simpler: CoolStack has now been superseded (1.3.1 being the last version) by the Web Stack 1.4, since it's now available on Solaris 10 5/08 and above (SPARC & x86) but also for RedHat Enterprise Linux 5.
Still following me ? Good !
Web Stack...or Web Stack ?
No this is not a typo ! As I said things are getting simpler but not still as simple as I would have wished. Today you have the same stack, the Sun Web Stack, on Solaris 10 SPARC, x86 and OpenSolaris. The components are therefore all in on the same level, which eases some pain.
However differences will remain between the Solaris 10 versions (SPARC and x86) and OpensSolaris, mainly on the way the component files are organized.
On Solaris 10:
Web Stack installs it's files as the following:
-
/opt/webstack for the binaries
-
/etc/opt/webstack for the configuration files
-
/var/opt/webstack for the runtime files
Of course each main component of the stack will be in it's own subdirectory
# ls -l /opt/webstack
total 26
drwxr-xr-x 3 root bin 512 janv. 30 17:24 apache2
drwxr-xr-x 3 root bin 512 janv. 30 17:24 bin
drwxr-xr-x 2 root root 512 janv. 30 17:23 legal
drwxr-xr-x 4 root bin 512 janv. 30 17:23 lib
drwxr-xr-x 3 root bin 512 janv. 30 17:23 mysql
drwxr-xr-x 3 root bin 512 janv. 30 17:24 php
-r--r--r-- 1 root bin 4230 dec. 11 02:16 README
drwxr-xr-x 3 root bin 512 janv. 30 17:24 share
drwxr-xr-x 6 root bin 512 janv. 30 17:23 wslibs
This organization somehow improves the CoolStack organization where every thing was under /opt/coolstack, should it be binaries, configuration files or runtime files.
I rather like this new way, since on one hand it is very “Unix way of thinking”: We all know to look under /etc for configuration files and /var for runtime, right ? And once you are under say /etc you're sure to find everything under /etc/webstack, so no more going around to find things.
On OpenSolaris:
The philosophy is a bit different on OpenSolaris, but I tend to like a bit less the induced organization. OpenSolaris is clearly aimed toward the developers, so it seemed natural to have the WebStack blend in the OS itself, meaning that the components are more tightly integrated to the Os and will thus be installed under /usr (not /opt), /etc and /var. But most importantly, under those directories you will not get a subdirectory that will gather the whole stack.
Ok, the difference is not that big either, so I can live with that. The most important I guess is that now when I install Web Stack 1.4 on any of my platforms (even Linux) I'm sure to get the same level of each component.
One last word on a little but very handy tool that comes with Web Stack on OpenSolaris and that I appreciate a lot: “Webstack Options”. It's a simple GUI that allows you to:
-
See the status of the apache and MySQL servers
-
Start or Stop the apache or MySQL services

(by the way check out: I have two MySQL servers installed on my OpenSolaris laptop, the one coming with Web Stack, which is on line, and the one that is disabled and comes with Cool Stack. So as you can see both stacks can live on the same system even if there is not much interest in doing so)
-
Set some options for apache and PHP


-
And the most handy (in my opinion): It allows you to open the apache, php and MySQL configuration files with a simple click on the “Advanced Configuration” button. So no longer going around the file system haunting for those hhtp.conf; php.ini or my.cnf files. I don't know for you but I always keep forgetting where those files are, and frankly If I can open and edit them without thinking about their location, it's good enough for me.
The only question is: why don't we have it for Solaris 10 also ? I'll keep an eye on that.
Last point and certainly not the least:
Sun will soon offer support for the Web Stack. So not only all the most popular web software come optimized and bundled together, but for people running the stack on production environments, and seeking more than just the various communities support, they will be able to get official support from Sun, for all the components. I believe this is the greatest added value !

It'd be nice if you gave instructions on how to launch the Web Options GUI...
Posted by Nico on February 03, 2009 at 10:05 PM GMT #
Hi Nico
When installing the Webstack on OpenSolaris, a new entry is created under the
"Applications-> Developer Tools" menu, called "Web Stack Admin". Under this menu you will find shortcuts to the log files, but you can also start stop the servers etc. There is also a function that allows you to create ans run a sample application.
To launch the Web Options GUI, you would use
Applications-> Developer Tools-> Web Stack Admin-> Options
Posted by Amir Javanshir on February 09, 2009 at 10:59 AM GMT #