Taking advantage of open source
The technology world is evolving from a cathedral-like structure dominated by major technology vendors such as Oracle, Microsoft and IBM, to a bazaar-like ecosystem where new paradigms, platforms and tools emerge constantly and are adopted quickly.
Though it is a cliché to say that the pace of change is accelerating in IT, it is also a truism, and it is the bazaar model that underpins the truism. The change is due to the fact that in the bazaar it only needs one person to set up a stall and it can grow from there.
By comparison, building a cathedral requires a great deal of time, effort and money to plan, design and build something monolithic that is impossibly slow and expensive to maintain and change.
A great example of the power of the bazaar is the rising use of open source technologies in the enterprise. I.e. software developed in a collaborative manner by multiple individuals, teams or companies, where the source code can be used, modified and distributed by anyone under the terms of the licence.
This article argues in favour of much wider use of open source software as the fastest, cheapest and safest way to start new businesses, release new products and services, and re-engineer expensive, non-performing legacy IT architectures. Our experiences tell us that open source provides a significant decrease in cost of ownership to organisations, while allowing them to provide the most responsive services to customers (internal and external).
The extensive use of massively collaborative products is something that would have been unthinkable until the Linux operating system. The way that Linux was adopted enthusiastically by IT infrastructure and operations managers around the world and across all business domains was striking. It now dominates the server side of organisations. Early adopters have been proved right. Though many people associate open source as a solution to infrastructure problems, such as serving web objects via HTTP (e.g. Apache Traffic Server), user authentication (e.g. OpenLDAP), and operating systems (e.g. Linux), it also can be used to build the most visible of customer facing solutions.
The world of open source offers a myriad of possibilities which combined can solve enterprise IT problems quicker and cheaper than established giants can achieve with their own commercial technologies. Implementing open source in the right way also gives the competitive advantage of moving faster compared to those firms that are using proprietary (closed source) technologies.
Using open source software on commodity hardware can be many times cheaper than using proprietary technologies – and the quality and level of support can be much higher.
However, the advantages of combining open source solutions comes with the risks inherent in integrating technology coming from different origins, with different release cycles, and different development practices.
Below are some tips that we feel can help you mitigate those risks and thus take full advantage of open source for your enterprise solutions and architecture:
- Proof of concept. Gather the operational metrics of existing systems first, e.g. number of users, volumes of data, access patterns, scalability requirements etc. Calculate operational expenses for licences, infrastructure and support. Prototype an alternative solution using open source, simulate similar loads, and run benchmarks.
- Start small. Identify an area where the benefit of introducing an open source project can be demonstrated at a local level. E.g. the operational costs of specialised hardware and proprietary (commercial) hardware are usually high compared to using commodity hardware and cloud-based open source services. So, choose a small local instance where that hypothesis can be proven to the satisfaction of the organisation.
- Evaluate carefully. Not all open source software is created equal. If implementing into a large, commercial (and possibly regulated) business, look at whether open source projects are backed by established companies, such as Canonical for Ubuntu Linux and OpenStack; Hortonworks and Cloudera for Hadoop; and, DataArt for DeviceHive and PintoStack.
Also, consider the terms of the licence.The licence impacts how a user may incorporate the code within their overall product, how they must handle their own contributions to the code, and what sort of commercial use they can make of it. Licences range from the relatively permissive to the more restrictive.
Don’t let your enthusiasm for a particular open-source project blind you to possible downsides. The Open Source Initiative, a global non-profit organisation, provides a guide to common open-source license types.
- Facts not fears. Don’t take unnecessary risks in your eagerness to adopt a new paradigm but also don’t be paralysed by a fear of the dark. The only people clinging to the fear of “freeware” are often those whose ratio of opinion to knowledge is completely out of kilter.
Does anyone trust Linux less than it commercial competitors? Obviously nobody that matters when you think how dominant it has become in the enterprise architecture.
“Security” is one reason why some firms are nervous of open source software, but that is somewhat fuelled by media driven fears of back doors into applications. In reality 99% of all security breaches are down to people (bad or careless) and processes (good and not used properly; or, badly designed).
The policies and processes that need to be operated well to secure the IT enterprise are many and far broader than many people realise – but suffice to say that the notional difference between open and closed source (commercial) software is small by comparison, and many commentators make a good case for well sponsored open source projects being more secure.
- Consider support but don’t make incorrect assumptions about the differences between open source support and that provided for proprietary, commercial technologies. Remember that your chosen open source product is being further developed by a huge and vibrant community of people around the world at all times – which contrast starkly with the “zombie” status of many commercial products.
In terms of active support for business operations, many service companies offer support for open source projects. Sometimes the sponsor of an open source project will themselves offer support, custom development, training, resources etc.
Our personal experiences are of getting third level support from the worldwide community overnight within minutes. Support for open source can be great (sometimes much better than for closed source) – but check it out in advance.
- Plan the integration early. Before using an open source project to achieve a target outcome (e.g. lower cost, better products, increased agility) look at where it will fit within the overall solution or architecture that you intend to build. Will it be the most visible part of the new system or will it be a building block for everything that comes afterwards? Is it suitable for the role you have chosen?
Also, if your development will have lots of moving parts you will need a process where you have as much automated testing and continuous integration as possible. That will include configuration management, containerization, build management and automation, unit and integration testing, artifact promotion and so on.
- Hire the right technology talent for the job. In the same way that open source technologies are not created equal, neither are IT professionals.
Many enterprises are now creating innovation labs where they are trying to reinvent themselves with the latest and greatest technology. This requires hiring strong all-around engineers and hackers that can build solutions using a combination of best of breed open source tools and a holistic view of technology.
These software engineers are typically comfortable picking up new programming languages or technologies, and usually have a strong computer science background. These are the people you need if you want to maximise your success in open source.
Not everyone thrives in innovation labs so avoid simply pushing people into those environments because they are available. Using Linux as an example again, think about the sorts of people who participated in its original development.
Look for people who are collaborating on open source projects right now or have done so successfully in the recent past. Though there will be many innovative people not involved in open source, the chances of finding the right person from the open source community are higher than from other groups.
- The community that is using and contributing to an open source project is crucial. It is this community that gives the project its lifeblood and future direction, as well as support and education.
A particular project may be great technology, but if no one is actively working on the code then it is as dead as the deadest commercial or self-build solution. Only use projects that have a dynamic and expanding community currently adding new code.
Also consider whether you and your company will become a contributor to the project if you use open source software, as there are huge benefits to doing so.
In summary, open source projects provide a great many opportunities for organisations in terms of flexibility, speed, cost and quality of development and support of their products and projects.
The potential benefits are enormous for the enterprise and its customers. To realise these opportunities the basic steps and advice described above should help you get the best results – and the results can be amazing. Welcome to the bazaar!
By Cliff Moyce, global head of financial services practice, DataArt, and Artyom Astafurov, senior vice-president, IoT/M2M at DataArt.