Choosing your Linux/Unix production Operating System
One of the our customers, using Ubuntu OS to develop its next gen product, considers the best OS for his product. The product is NOT service based, but an “appliance” computer with OS and all software artifacts installed on it , shipped and deployed to his customers. A natural question would be, which OS to choose for production ?
One option is we use Ubuntu also for production, lowering our QA time, testing time (system-test, stress tests etc) , training (people are less experienced on Linux/Unix world) etc. Going this way the customer can reduce expenses for the product development. Alternatively, he can use one (or even more , in case there will be demand for it) of the commercial and common OS like Redhat and Solaris.
We can look on it with two different views : technical and marketing. On the technical level many questions comes to mind: among other are security, support, stability, performance etc. On the marketing level its the time and money (as explained above) and on top of that, making the product itself more expensive for the end customer (especially he uses the commercial OS and NOT CentOS).
Let me just say , the developed product is pure Java. However, the product product also includes 3rd parties component which are OS dependent (i.e. MySQL, Apache). That been said, from development perspective, we will probably NOT change the code, but from other aspects, including build distribution, installer, QA, testing, performance, configuration, managment, tools, and other technical aspects, it surly influence the product agenda and life-time.
Since my experience is mostly with Ubuntu (both on development and production), I decided to research about it. I read some interesting thread like this one, however, the most valuable answers I've got were from my colleagues at Tikal (please see their comments at the end) – Ittay and Haggai.
Considering their opinion other links I've read, it seems to me, that Ubuntu is much more convenience for development than other Linux (both commercial and and open source) and Unix distribution. However, for production usage, RedHat is considered to be superior on Ubuntu for most of the technical levels.
The argument to use Ubuntu on production is of course ... money (the marketing view) - the development team will use the same environment for production and will NOT have to invest QA and time on yet another OS. In addition, the price for commercial Ubuntu may be cheaper than Redhat making the PO cheaper to the customer. However, as detailed here when considering money aspect, it might end as narrow lookup.
"The fact is RedHat is more reliable / stable than ubuntu, thus more common in the commercial / enterprise market.
Convincing one to use ubuntu would be quite hard for the commercial support for ubuntu server side isn't mature enough to convince big companies to trust it.
"Traditionally, RedHat dominates the server-linux market. It has been there longer, offers more mature tools and sysadmins know it best. Ubuntu dominates the desktop-linux market and has just recently entered the server market.
I would have expected RHEL to be the first distro to be supported. Supporting just ubuntu server because it is similar to the desktop environment in which you develop looks like a weak reasoning. I'm surprised no client complained about this before.
"The choice between CentOS and RHEL is the choice of support. I don't think many datacenters will rely on CentOS. However, it is a good platform to develop and test a product in when out-of a datacenter.
While not knowing the exact reasons it is difficult for the customer to support RedHat (maybe just the need to install a few servers?), the way to support many Linux distributions is by following the LSB standard (www.linuxbase.org) which is supported by all major distributions."...
"The thing is there's no such thing as a "black box linux" for data centers. In Windows, the vendor of the distribution is always the same (Microsoft) regardless of version. The tools are also similar and the personnel knows them all. In Linux you have different vendors, each with his/her own set of tools which are usually centralized and can manage only machines with the vendor's distribution.
IMHO, they have only one choice and that is to standardize on LSB and test on RHEL (probably different versions of it). They may also need to provide packages (rpm, deb) for each distribution they want to support, mainly to allow for patch management (again, vendor specific). "
I hope this post can put some light for you when you come across these same questions for you product.