The Role of Open Source
Who doesn’t like free stuff? Ever since the inception of the internet, people have thought that what they could access using a browser should be free. Of course, this doesn’t work in a capitalist society and there has always been a balancing act between what is paid for and what can be accessed without charge.
Open source is defined as software for which the original source code is made freely available and may be redistributed and modified. This means that it sits firmly in the free camp but interestingly almost all the large IT companies are making significant investment in open source software. They aren’t doing this for altruistic reasons but because they in turn sell software and services that benefit from open source.
I’ll be looking at the following aspects of open source:
· What is open source?
· The economics of open source
· The future of open source
What is open source?
Before we dive into the role of open source today, let’s have a look at what open source is.
Open source is a vast subject and can roughly be divided into the following areas:
· Infrastructure management:
These open source tools are used to manage infrastructure within a cloud IaaS provider and offer the following solutions.
o Open source provisioning tools: These can be used to provision virtual machines across multiple cloud platforms. Examples here are Terraform, OpenStack and Sparkle Formation.
o Configuration management: Ansible, Chef, Puppet, SaltStack, etc.
o Containers: This is the world of Docker, Kubernetes, Helm, etc.
· Operating systems:
Open source operating systems are mostly linux-based and Unix-based operating systems and include Ubuntu, Linux Lite, Fedora, Linux Mint, Xubuntu, Chrome, ReactOS, etc.
· Databases:
Some examples of open source databases are MySQL, PostgreSQL, Firebird, Cubrid, MariaDB, MongoDB, etc.
· Web development tools:
These are tools used by web developers and include Node.js, AngularJS, Brackets, Bootstrap, Atom, Firebug, Ember.js, etc.
· Programming languages:
There are dozens of open source languages available but the most common are Java, JavaScript, PHP, Python (my current favourite), Perl and many more.
· AI/ML open source:
This is an absolutely massive open source area with the most well know technologies being the TensorFlow framework, Keras, Scikit-learn, Microsoft Cognitive Toolkit, Caffe, Torch, Accord.NET, etc.
· Open source applications:
I will cover open source applications within the subscription section that is next, but needless to say open source applications include almost every type of applications you can think of.
Now that we have an idea of the scale of open source, let’s have a look at the economics of open source.
The economics of open source
IT companies today make money through the following means — compute and storage, subscription, advertising, data and services. As stated in the introduction, companies in each of these revenue streams are investing large amount of money and resources into open source but for very different reasons.
· Compute and storage:
I refer here to the providers of Infrastructure-as-a-Service (IaaS) and mainly refer to the two leading players in this area: Amazon Web Services (AWS) and Microsoft Azure. Both these companies have fully embraced open source but with the intension of driving the adoption and use of their compute and storage services.
For AWS there are dozens of open source examples but one I heard about this morning was AWS including machine learning within their QuickSight business intelligence services. This enables QuickSight to do anomaly detection, forecasting and provide auto-narratives.
Microsoft are even more committed to open source with them spending an unbelievable $7,5 Billion on Github, which is essentially a community of developers to discover, share and build better software.
· Subscription:
On the face of it, enterprise Software-as-a-Service (SaaS) providers should feel the most threatened by open source but they are also investing a significant amount of money and resources into open source.
The reality is that enterprise software is still very complex, and the reasons companies will still choose to take SaaS subscriptions, rather than use open source, are:
o Cost: The internal cost for developing a business utility tool is usually quite high. Apart from the cost of development, there will be bugs and lot of iterations before the solution can be deployed. Most SaaS solution providers also take care of hosting, which is an extra cost saved.
o Maintenance: SaaS software maintenance is taken care of by the vendor, reducing unnecessary work for the IT/development team.
o Quick Deployment & Removal: SaaS is quick and easy to deploy. Open source requires some work before it can be deployed.
So why are SaaS providers investing in open source? There are two main reasons:
1. Supplement SaaS: Open Source is used to enhance and extend the core SaaS applications. Examples of this include mobile development and emerging technologies like AI/ML, IoT, etc.
2. Internally: SaaS providers have to run billions of transactions for millions of users, with low latency, high availability, and uncompromising security. They are increasingly turning to open source to supplement, enhance and sometimes replace the systems used.
· Data and advertising:
Google today makes 84% of it’s revenue from advertising but is also a major provider of cloud solutions. At the moment, they are in third place, but quite far behind Amazon Web Services and Microsoft Azure, and part of their strategy to catch up is to embrace open source.
Google has always been a major contributor of open source solutions and have created over 2,000 open source projects with Android, Angular, Chromium, Go and Kubernetes being the most well-known.
This month Google announced a series of partnerships with open source companies, which contrasts with Amazon Web Services who sometimes use open source to develop competing products that are then sold. Google’s strategy is to get the open source community on their side with the aim of them influencing corporations around the world to use Google Cloud.
· Services:
The question is — can a company make money as a pure open source software provider? The short answer is no.
“Open source” companies generally do something called “Open Core” or “Core Source”, where they take open source, use it as a kernel and then build their own technology on top of the open source. This technology they either sell as a whole offering or add them as services.
Red Hat is an example of a company who has done this extremely well to the point that IBM bought them last year for $34 Billion.
The future of open source
Is open source something that a person in IT should be interested in? Absolutely!
The dance between free open source and paid services/software will continue with open source growing, being incorporated more and pushing the paid services/software further.
The article on Forbes.com titled “The Future of Open Source Software: More Of Everything — Jan 9th, 2019” (https://www.forbes.com/sites/taylorarmerding/2019/01/09/the-future-of-open-source-software-more-of-everything/#216d89bb68fa) states:
“… when it comes to the future of open source software, given the trend lines of the past few years, it seems pretty safe to say that a single word — more — will be present in just about everything that happens in 2019.”
I think it is vital that everyone has a broad knowledge of open source across all its areas from infrastructure, operating systems and databases through to program languages. In a previous article “Should you learn to code?” (https://www.ideastorm.co.za/single-post/2019/03/27/Should-you-learn-to-code) I discussed the importance of coding and why I am learning Python. I believe it is just as important to know open source. This means that for me I would like to attain a good working knowledge of Docker, Kubernetes, MySQL, Linux, Angular and a host of other open source software. Phew!!!!
Conclusion
The analogy I think of for open source is a butterfly. If you try and hold it (or charge for it) it dies but if you leave it to fly, then it thrives. What I personally try and do is identify the open source solutions that are vendor agnostic, have a large community of developers and are used within the emerging technologies e.g. AI.
I hope you have enjoyed this short overview of open source software.
If you feel differently about open source, want to debate something or just leave a comment then please do so or email me directly at lancepeppler@gmail.com.