open-source-101-everything

Open Source 101: Everything you need to know about open source Your complete guide to Open Source and more

Written by Deepti Dilip Jobanputra

| Jul 22, 2021

8 MIN READ

Open source has transpired into a movement and a way of working that goes beyond software production. It celebrates community, talent, and open exchange of ideas, unlocking potential across various disciplines, whether in communities or industries. This article walks you through the basics and furtherance of open source – what and why, its variations, what it means in today’s context, its criticality, and its role in technologies such as Cloud, Kubernetes, Microservices, DevOps, and more.

What is open-source software?

Open-source software is an open software developed by the community and distributed under an OSD-compliant license which grants all the rights to use, study, change and share the software in a modified and unmodified form. In simple terms, it is software with source code anyone can access, inspect, modify, and enhance. Hence the name. As anyone can contribute to open source, this makes it transparent, ever-evolving, and backed by large communities.

Open-source software is a way of developing the software. Hence, software freedom is vital in enabling the community development of open source.

What is open-source code?

Open-source refers to the source code available to the public for any (including commercial) purpose or modification from its original design. Open-source code is a collaborative effort where programmers improve upon the source code and share the changes within the community. The Code is available under the terms of a software license. Others may then download, modify, and publish their version (fork) back to the community, depending on the license terms.

Some open-source licenses are known as “copyleft” licenses — stipulate that anyone who releases a changed open source program must also release the source code for that program alongside it. In addition, some open source licenses stipulate that anyone who alters and shares a program with others must also share that program’s source code without charging a licensing fee for it.

The history of open source

In 1983, Richard Stallman launched the GNU Project to write a complete operating system free from constraints on the use of its source code. Soon after the launch, he coined the term “free software” and founded the Free Software Foundation to promote the concept. Around the mid to late 90s, free software became a popular choice for web servers with the commencement of web-based companies. It eventually got termed as ‘open-source software at a summit held by technology publisher Tim O’Reilly.

During the 2000s, open-source went truly mainstream. In 2004, programmer David Heinemeier Hansson released a web application programming framework, Ruby, on Rails, which later

became one of the world’s most important web development tools and the foundation for services like Twitter and Kickstarter. Meanwhile, Yahoo was funding the development of the open-source data-crunching system Hadoop.

After its release in 2006, other companies, including Facebook, Twitter, and eBay, began contributing to the project, helping demonstrate the value of inter-company collaboration. Then, in 2008, Sun Microsystems acquired MySQL for $1 billion, thus proving open source is big business. The same year, Google released its first Android phone, moving open source from the server to our pockets.

Open source is now practically everywhere. It’s not counterculture anymore, but the foundation.

What are the principles of open source?

Transparency: Whether it’s for developing software or solving a business problem, one can access the immense amount of information and materials needed to carry out the work. These accessible materials make it easy for members to build on one another’s ideas and discoveries. The community adheres to the terms of an open-source license, using the software only as those terms allow, reflecting their transparency. In a community, the effects of transparency are amplified.’

Participation: The open source community is distinct because of the participation and contribution of its members either through skills or financial aid. Actively giving back in a very tangible way is the heart of participation. The community may not operate by consensus, but successful work determines which projects gather support and effort from the community.

Collaboration: The freedom of participation enhances each other’s work in unanticipated ways. The ability to change what others have shared in a community paves the way for new possibilities. Starting new projects together helps in solving minor or complex problems with ease. And, when open standards are in place, it enables others to contribute furthermore in the future.

What’s the difference between open source and proprietary software?

Software with source code that only the person, team, or organization who created it and maintained exclusive control over can modify is known as “proprietary” or “closed source” software.

Here, the original authors of proprietary software can legally copy, inspect, and alter that software. To use any proprietary software, computer users must agree (usually by signing a license displayed) to not amend the software, to which the software’s authors have not granted permission. E.g., Microsoft Office or Adobe Suite.

Difference between ‘Commercial Open Source’ and ‘Free and Open Source software

The difference between commercial open source and open source is support and services. Commercial open source means open-source software backed by enterprise support for quality, security, and the software life-cycle.

When considering open source solutions for an organization, evaluating the technologies that will work in conjunction is a must. The goal is to choose technologies that best meet one’s needs for every layer of your software stack (e.g., your databases, middleware, platforms, application runtimes, and monitoring).

Migrations are a crucial consideration in open source in many organizations. Today’s best practices for enterprises migrating to open source are: Migrating from Oracle to Postgres or migrating from Monolith to Kubernetes, and so on.

Transitioning to new technologies can be a challenge, and dealing with multiple vendors for support can make the process even more complex. Therefore, getting everything — enterprise support, software creating freedom, and cost-savings — from one open-source support provider is vital for better efficiency and effectiveness. (Check out how Ashnik is helping enterprises in their OS adoption.)

Doesn’t open source mean it is free?

No. It is a common misconception about what “open source” implies, and the concept’s implications are not only economic.

Open-source software programmers can charge money for the open-source software they create or to which they contribute. But sometimes, because an open-source license might require them to release their source code when they sell software to others, some programmers find it more lucrative to charge user’s money for software services and support (rather than for the software itself).

This way, their software remains free, and they make money helping others install, use, and troubleshoot it. While some open source software may be free, skills in programming and troubleshooting open source software can be pretty valuable. As a result, many employers specifically seek to hire programmers with experience working on open-source software.

So, what is Free and open-source software(FOSS)?

FOSS is an openly shared source code licensed with no restrictions on usage, modification, or distribution. Confusion persists about this definition because the “Free” refers to the freedom of the product, not its price, expense, or charges. For example, “being free to speak” is not the same as “free lunch.”

Benefits of open source for organizations and developers

Open source is now becoming mainstream and widely acceptable by companies and developers alike compared to proprietary software for some solid reasons:

Community: Open source software often inspires a community of users and developers to form around it. That’s not unique to open source; many popular applications are the subject of meetups and user groups. But with open source, the community isn’t just a fan base – it’s the core people who produce, test, use, promote, and ultimately affect the software they love.

Control: Open source gives more control over proprietary software. It allows users to examine the code to make sure it’s functioning as desired, and they can change parts of it they don’t like. Non-programmer users also benefit from open-source software as they can use it for any purpose they wish—not merely how someone else thinks they should.

Alliance: Open source software is highly preferred because it helps individuals become better programmers. As its code is publicly accessible, it is easy to analyze and used to develop better software. Practitioners can share their work with others, inviting comments and critique as they develop their skills. If they identify errors in programs’ source code, they can share those errors with others in the community, helping them avoid those mistakes.

Security: Open source software is more secure than proprietary software because anyone can view and modify open source software, making it easier to spot and correct errors or omissions that a program’s original authors might have missed. And, as so many programmers work on a piece of open source software with no permission restriction from the original authors, they can fix, update, and upgrade open source software more quickly than they can proprietary software.

Stability: Many users prefer open source software to proprietary software for important, long-term projects. As programmers publicly distribute the source code for open source software, users relying on that software for critical tasks can ensure their tools won’t disappear or fall into disrepair if their original creators stop working on them.

Rapid innovation: Open source has helped to speed up software development cycles. The most striking example is the mobile device market, where we see major new products launching in six-month cycles. Open source enables rapid, evolutionary and incremental delivery. The significant advances of the past decade – containers, microservices, serverless, AI, blockchain, quantum, and many more – were all driven by open source and the power of its communities, which gives open source the edge of agility to match scaling business environments.

Cloud and Open source

Cloud computing, also known as remote computing, involves activities (like storing files, sharing photos, or watching videos) that incorporate local devices and a global network of small computers that form an “atmosphere” around them.

Cloud computing is an increasingly important aspect of everyday life with Internet-connected devices. However, some cloud computing applications, like Google Apps, are proprietary. Others, like ownCloud and Nextcloud, are open source.

Cloud computing applications run “on top” of additional software that helps them operate smoothly and efficiently; often quoted as the software running “underneath” cloud computing applications acts as a “platform,” for those applications. Cloud computing platforms can be both open source or closed source. E.g., OpenStack is an open source cloud computing platform.

What is an open source cloud?

One of the fantastic things about developing tools and technologies for the cloud in recent years is the sheer increase in technologies that are entirely open source. In fact, open source licenses are becoming almost a de facto standard on how new cloud technologies develop. Take these examples:

Containers are emerging to develop applications more natively for the cloud, as a faster alternative to virtual machines, with projects like Docker helping developers get started with building containers and Kubernetes for orchestrating applications made up of many containerized parts.
Big Data and the Internet of Things are two cloud computing resources where many of the tools powering applications are being developed entirely in the open.

Open source and Kubernetes

Kubernetes (“K8s” for short) is an open source solution for automating the deployment and dynamic scaling of containerized online applications. Kubernetes uses containers that group applications into logical units for centralized and secure management.

A container can crash or die without losing user data because it keeps the data outside the container. In addition, because containerized applications are disposable, a cluster of servers can launch new instances of an application when many users need it or run only a few instances of an application when only a few hundred people need it. A sysadmin could manually or write a series of scripts to monitor traffic and respond accordingly, but Kubernetes makes it automatic.

Why is open source necessary for Microservices?

To run an application based on microservices, you need to monitor, manage, and scale the different constituent parts. Several other tools might allow you to accomplish this. For containers, open source tools like Kubernetes will probably be a part of your solution.
When you design your applications from the ground up to be modular and composable, it allows you to use drop-in components in many places where you may have required proprietary solutions in the past because of the licensing of the components or specialized requirements.

In addition, many application components can be off-the-shelf open source tools, and there are myriad open source projects that implement cross-cutting requirements of microservice architectures such as authentication, service discovery, logging and monitoring, load balancing, scaling, and several more.

A focus on microservices may also make it easier for application developers to offer alternative interfaces to your applications. When everything is an API, communications between application components become standardized. All a component has to do to use your application and data is to authenticate and communicate across those standard APIs. In addition, it allows both those inside and, when appropriate, outside your organization to develop new ways to use your application’s data and services.

How open source leads to DevOps success?

DevOps describes a set of modern IT practices which enable bringing together software developers and operations staff to work on the same project more collaboratively. By breaking down barriers that have traditionally existed between these sides of the IT department, organizations reduce the time and friction involved in deploying new versions of software.

Open-source software development, particularly its core tenets of collaboration and transparency, has always been an integral part of DevOps. This is one of the reasons DevOps is an easier adjustment for developers who have experience with open-source software and its concepts and technologies. Enterprise DevOps users have also routinely reported that the modularity and componentization of open-source software is a good fit for DevOps, which involves a broader array of tools and technologies.

Open source adoption had a significant impact on how broad and successful enterprise DevOps deployments were. Of companies with at least 60% of their DevOps portfolio as open source, a full 54% had reached the “fully deployed” DevOps state.

Several resources help you learn more about open source; we recommend reading our open source technical FAQs, white papers, how-to videos, and tutorials to get started.
Article inputs courtesy: opensource.com | learncanvas.net |


Go to Top