Open Source vs Closed Source -- Its about investing in People
Investing in Open Source is about investing in People instead of investing in a Vendor. For the Enterprise considering the leap to Open Source, those people have to be on the payroll for a successful migration.
by
John Buswell
There has been an interesting debate going on between bloggers Mike Dailey and Hans Bezemer. Mike is of the opinion that Linux has not won in the Enterprise because CIOs have not selected it, and therefore it is not better than Microsoft's product offerings. All the usual points and counter points have been played, these debates typically end up in a stalemate, but perhaps this time the issue can be settle once and for all by stating the obvious. To quote Monty Python..
And Now For Something Completely Different
Everyone is tired of the usual rhetoric that is associated with these kinds of debates, one solution can be hardened, so can the other, one solution has high uptimes, so does the other. The reality of the situation is that IT executives make business decisions about technology, they do not necessarily choose the best technology, they choose the technology that makes the most business sense for their company. Mike holds the concept that IT executives continue to look towards Microsoft, this is not because Microsoft has a better product offering, its due to the fact that IT executives look at open source as a product. This article is intended to help IT executives see past the rhetoric, the warped statistics (from both sides) and the dogma, and get down to the fact that Open Source is a strategy.
1. Open Source is a strategy not a product
Open Source is an Information Technology strategy, it is not a product. When evaluating Open Source, comparing licensing, pricing, and support options are important, but the key to a successful evaluation of Open Source is to recognize that it is strategy. A good Open Source strategy reduces the software licensing costs to near-zero, develops in-house engineering talent, integrates as transparently as possible to the end-users and improves scalability on like hardware. The cost involved is the amount of outside help the strategy needs, and how much of it can be done in-house.
2. Open Source is an investment in People instead of Vendors
When an IT executive chooses a Closed Source solution such as the Windows product line of Data center software solutions, they are choosing to invest a large portion of their budget in a vendor, in this case Microsoft. When selecting an Open Source solution, to maximize the return on that investment, the IT executives must invest in People. Open Source provides the user with access to the source code, the user in this case is the business. This is an incredibly powerful feature if it is managed properly, as you can fully support yourself with the source code. The talent must be available to help the business leverage this advantage, otherwise moving to Open Source makes a lot less sense. To use Open Source successfully, the IT executive must have someone on staff who can take a requirement, and using open source components, produce a solution within a reasonable timeframe. This could mean adding dedicated developers to the IT team, or training individuals to have software capability. Every organization is different, how they get the right people on the team is their business decision, but to attempt a switch to Open Source without the investment in people is a recipe for disaster.
3. Open Source is about long-term exponential savings
Everyone has seen the total cost of ownership calculators, which can be skewed in either direction depending on who is providing the calculator. Open Source provides long-term exponential cost savings because it is a flat investment. Microsoft licenses its software on a per user or per processor basis, and for a finite term. Microsoft does not support software forever, they release new versions which require new licenses, essentially requiring the customer to purchase the software again. The cost is recurring and as the organization grows, the cost increases as more users and more processors are required. The cost of a Microsoft solution increases exponentially but the cost of an Open Source solution remains flat regardless of how the organization scales. A successful Open Source strategy would continue the investment in People, so that over time, the employees involved would know the open source components inside and out, not just from an operational level but from a code level as well.
4. Open Source is modular and minimalist
The more moving parts something has the higher the likelyhood something will break. The same adage can be applied to computer software and operating systems. The Linux kernel is highly modular and Open Source. The end user can select the components they need, customize the kernel for their hardware, their requirements, so that the kernel itself only has the minimal support needed to get the job done. The libraries and applications work in a similar manner, features can be compiled in or left out, providing a great deal of flexibility. There are many alternatives which are compatible with each other, for example glibc which is a core library can be replaced with the smaller uclibc or klibc, depending on the desired application. The kernel, application and support libraries can be deployed in a very minimal fashion.
The security debate is always taken out of context, both platforms have their experts, and its just common sense to lock down services, firewall ports and remove unnecessary software components. The problem with Microsoft Windows is that its capability in this area is very limited because it is closed source. Microsoft have to have a base level of support, which means lots of libraries, lots of applications and lots of built-in APIs are retained even in a hardened system. Windows is less secure simply because it has a much larger menu of potentially exploitable components left on a hardened system, than a highly minimal deployment of Linux.
Linux can be stripped down to just the necessary hardware support, networking support and I/O support in the kernel, libc, libraries needed for the server application and the server application itself. Linux applications can be compiled position independent, placed within hardened chroot (unbreakable) and in special file systems, making the system extremely difficult to utilize even if it is running exploitable code. Windows on the other hand, you can do registry hacks but ultimately you cannot disable some API calls you might never need, but could be exploited through shell code passed into a valid service.
It is this minimalist approach that provides Linux with its great stability and insane uptimes. Even though Open Source advocates throw the Blue Screen of Death card once in a awhile, Windows has good stability, but a lot of that has to do with the higher hardware requirements and deployment checks that Microsoft use to steer customers in a particular direction.
5. Open Source has better performance
The minimalist nature of Linux means that more resources are available to the system for running the server application that it needs to, rather than eating up resources with GUI and processes that are part of the minimal operating requirements of Windows. Windows by design, has a resource tax on it. Microsoft have made efforts to reduce the resource tax with their Core Server offshoot, but ultimately Core Server still retains the GUI components they have simply changed the shell and cut down some of the applications. On like for like hardware, Linux will use considerably less resources for the base operating system. This is why Linux is used on supercomputing projects because supercomputer projects have thousands of nodes, and with Linux there is a minimal operating system cost per node, leaving more resources for actual work. As more applications are loaded onto the Windows platform, more and more resources get shuffled away from work and into management. Thus the hidden cost of the Microsoft platform is that it has less resources to do work, meaning more servers, more facilities costs to get like for like capacity when comparing it to Open Source.
6. Open Source is about choice
A key advantage to Open Source is choice. There are a lot of very smart people out there working on Open Source, many projects come from research groups at Universities, students working on Masters Degrees and advanced research labs at large companies such as IBM, Sun, Google, Apple, Red Hat, Hewlett Packard and Dell. Take the Web server for example, the industry standard server is Apache, but there is a better solution out there called Nginx (Engine-X). Written by a developer in Russia who had a need for a more scalable web server, took a different approach to how low level i/o was done and produced an innovative piece of software. In an Open Source deployment, this new choice can be tested in the lab and migrated to over time. In a closed source environment, such a good idea would have to get past product managers, pushed into a roadmap and perhaps end up with a hybrid approach that protects the legacy product. Open Source provides choice and freedom of movement, so the organization can select the best solution that offers the feature, performance and scalability mix that is best for that business.
7. Open Source is about saving money not spending money
When a Microsoft shop needs to do something new, such as deploy iSCSI or a new database server. The IT administrator will look at the budget, determine what they need to order and spend money. When an Open Source shop needs to do something new, they research the options, determine the best configuration, and test the solution. The difference here is the Open Source shop is looking for a solution from a technical standpoint, the Microsoft shop is looking for a solution that meets their basic needs and fits within their budget. The Open Source shop has the flexibility to deploy technologies now, rather than perhaps having to postpone projects for a quarter or two because of budget limitations.
Open Source makes sense so why do IT executives continue to look towards Microsoft
The simple answer to this is People. Microsoft have done a great job at making things easy, including System Administration. Anyone can pickup a Microsoft product, and by clicking enough options on or off, will eventually stumble upon a working solution. There are plenty of so called IT consultants out there who started off life as some kind of Business Manager who was tasked with installing Windows and setting up some application. It took them some time, but through trial and error, they could click through the options and make the solution work. Several years pass by, they are familiar with the Microsoft product line, know what to click to make things work, and know what to change when things break. There are lots of people in the industry like this, nice people but have far less of a grasp of how the actual technology works. These are the people that the "Elitist Linux People" have a problem with. The people who claim to be experts, promote Microsoft's solution but really lack the fundamental knowledge of how the technology works to be competent enough to evaluate one solution over another, technically. They are purely promoting Microsoft because it makes business sense to them. This me too concept of selecting technology is not the best way to go about it.
Contrast that to someone with an Open Source background, they will have some code level experience because sooner or later they would have had to patch, or compile a project from source, including the kernel. Many open source projects require you to edit or build configuration files, no fancy GUI of options to select from. The configuration files require the engineer to know what needs to be set, what function it provides and what impact it has on the deployment. The open source engineer will also have a grasp of how to pull low-level data from the system, from looking at /proc to using tools like lspci. The very nature of Open Source builds out a richer skill set overtime.
When an IT executive is looking at Open Source, existing non-Open Source staff are bound to get defensive. Open Source means looking at source code, employees realize they are not programmers, will they get replaced if they cannot learn to program? Depending on the employees, some may look at it as an opportunity to grow their skills and further their careers, but many of them will fear there is too much to learn and it is easier to simply replace them. If the IT executive is not entirely behind Open Source, a quick revolt from the rank and file is often enough to kill the idea.
Migration to Open Source starts with Integration
A successful Open Source strategy will begin with an entry point, such as a new project or replacement of an existing system. The best time to replace an existing system is at the end of a lease or when new software licensing is required, such as an upgrade. People are key to a good strategy, so whether you bring in a new one or train an existing one is a key business decision. To avoid concerns or revolts, adding basic software capabilities to the existing IT administrators is often a good idea. It will show the management team which employees are capable of learning new skills and which ones may need to be replaced. A good strategy will continue to leverage this new and replace strategy, until the organization has eventually migrated the majority of systems that it can to Open Source. Solutions such as VDI and Terminal Services enable applications which may not be readily available as Open Source to existing within an Open Source environment. The mix, or total replacement is something that needs to be handled on a case by case basis by the IT executives.
Conclusion
Open Source is an IT strategy and not a product. Effective migration to Open Source requires having the right people on the team. Third party services and consultants can be used to speed up the development of the in-house team, but ultimately the in-house team will need to be open source capable. The long term savings and gains for the business are clear, as Open Source costs remain flat as the solution scales, whereas Microsoft solutions tend to increase exponentially in cost as the solution scales up.