Tuesday, February 16, 2016

Open Source in the Enterprise, Pt 1

By: Paul Marcinkiewicz, Solution Architect for Slalom Consulting

Why Your Company Should Adopt Open Source

Part 1 of a 2 Part Series   
With the advent of modern open source technologies, many enterprises have taken the first steps to adopting open source and moving away from traditional closed source models. This strategy affords companies reduced licensing costs, time to market improvements and increased interoperability.
Although the availability of open source tools is not new, the number of quality options and the maturity of the technology are higher than ever. These factors in conjunction with cost savings are making open source technology more appealing. 
Enterprises, particularly in conservative market sectors, have traditionally utilized large vendor solutions such as IBM, Microsoft, and Oracle for product, consulting and support. While having a comprehensive umbrella of product and support does reduce risk and provides a level of certainty to an organization., companies are finding that in order to compete in today’s business world, there is a need to innovate and bring solutions to market quickly.
Leading technical corporations such as PayPal, LinkedIn and Netflix have already adopted this strategy for years. Here, we will discuss how your company can leverage open source to enable its own initiative.  

History

To know where we're going we need to know where we've been. Here is a little background. 

Linux

The Linux kernel was made open source in v 0.12 in 1992 under the GNU General Public License. This made an operating system kernel available as open source for the first time.

The Open Source Initiative (OSI)

The OSI was founded in 1998 as an advocacy organization to execute the mission from the Free Software Summit held earlier that year. This foundation exercises the stewardship of the Open Source Definition to educate on and advocate for the open source cause. This foundation also provides a licensing review process to make sure that a submission conforms to the standards and expectations of the OSI.  

LAMP in the DotCom era

LAMP, which stands for Linux/Apache/MySQL/PHP became the first full stack open source platform to gain widespread popularity. LAMP became prevalent in the late 90s during the height of the dot-com era. In addition, Magento is one of the most popular eCommerce packages that is a based on the LAMP stack and has a version that is available as open source.

Git

With its release in 2005, Git has quickly become the most widely used Distributed Version Control System in the market today, with many enterprises using Git-based source control systems such as GitHub, Stash, and Bitbucket.  

Licensing

Open Source Licensing operates under a group of widely-used categories such as the Apache License 2.0, GNU General Public License (GPL) and the MIT License (MIT). Click here for a full list of Open Source Licenses.

Advantages To Open Source Adoption

Licensing

Free Licensing allows open source software to be to be used, modified and distributed. This can save an organization thousands, if not millions, of dollars as compared to traditional vendor licensing models.

Community and Innovation

Since the global developer community maintains open source software, this model can offer an organization greater collaboration, openness and industry participation. Innovation is no longer limited to the walls of an institution and enhancements are added in the spirit of the overall advancement of the software package. Since this model encourages contribution, new features will (generally) get released much more frequently.  

Transparency

Software is no longer a closed book and developers can now debug, refactor and update code as they see fit. Bug discovery and resolution will occur in a much more open and transparent manner, leading to more rapid problem resolution.

Influence Product Roadmap

Formerly, organizations often had little input into a product's roadmap unless they were a large company that purchased a lot of a vendor licenses. With open source software, this is no longer the case. Any individual or organization can directly submit product enhancements.

Experimentation and the Need to Innovate Rapidly

Go-to-market velocity has accelerated dramatically in recent years. The concept of agile methodologies, MVP (minimum viable product) and iterative enhancements is now a philosophy that most companies, small and large alike, are embracing. All these forces work together to bring technology to market much more quickly than in the past and allow for greater experimentation with lower financial investment. Enterprises can no longer afford to wait for long release cycles from the major vendors. This movement was initially driven by startups that needed to keep costs down as well as create innovative solutions utilizing the latest technologies. This practice has now permeated enterprise where technology needs have grown significantly in recent years.

The Cloud, Big Data and Mobile

Probably the largest factor driving the use of open source technology has been the rapid increase in consumer mobile usage. According to statistics provided by Gartner, mobile traffic has been increasing at a rate of over 50% per year since 2013. Cloud computing along with mobile traffic has given the platform to scale appropriately. Since the need to support this traffic has increased, legacy RDBMS server technologies, which naturally impose the need to scale vertically, have proven to be inadequate. As a result, a number of open source technologies have cropped up to handle the formerly unprecedented increase in load.
NoSQL (Not Only SQL) database technology has recently entered the enterprise at scale over the past 3-4 years. This was done out of necessity as the sheer volume of data has increased exponentially. NoSQL is built to support horizontal scaling using commodity hardware in most cases. Many of the high-volume websites are at least partially driven using NoSQL technologies such as MongoDB, Couchbase, and Cassandra. All these platforms can be run under the Apache License, with enterprise versions available through vendors offering monitoring, backup and restore capability as well as fully operational portals both on-premises and in the cloud.

Popular Open Source Platforms

Some of the most popular open source categories and projects include:

Hypervisor/Container

  • KVM – Kernel-based Virtual machine included in Linux and Windows
  • Docker – Allows you to package your application and all of its dependencies into a single, platform-agnostic container
  • Kubernetes – Google project that orchestrates sets of containers across clusters of hosts

Web/App Servers

  • Apache – Most popular HTTP server project to provide extensible services
  • NodeJS – Event-driven, non-blocking, JavaScript-based server built on the Chrome V8 engine
  • NGINX– High-performance HTTP server and reverse proxy

IaaS/PaaS

  • OpenStack – API-based software to manage large pools of compute, storage and networking resources
  • Cloud Foundry – Cloud computing PaaS platform originally developed by teams from EMC, VMWare and GE (now owned by Pivotal Labs).

JavaScript Clients

  • AngularJS – Front-end MVC framework developed by Google. Uses custom DOM elements and supports 2-way binding.
  • React.js – Developed by Facebook, uses unidirectional data flow and virtual DOM for faster performance
  • Backbone – MVC-based framework also depends on the functional library Underscore.js
  • Ember – Older framework using the Handlebars.js templating engine

DevOps

  • Ansible –YAML and Python-based cloud provisioning, configuration management, application deployment and intra-service orchestration software
  • Chef – Infrastructure as code to manage infrastructure. Versionable, testable and repeatable.  
  • Puppet – Sysadmin-oriented solution allows you to define the state of IT infrastructure that automatically enforces the correct state.

Adoption is Already Underway

I recently asked 2 industry leaders the question: "Can you speak about the trend you are seeing in the industry and your clients about the acceptance of open source technologies in the enterprise and how software teams are restructuring to support this trend?" 
Bob Weiderhold, CEO of Couchbase:
"Most of the software infrastructure beneath Digital Economy web and mobile applications is moving to open source technologies. Most greenfield applications are already being built on open source and process of legacy proprietary technologies being replaced with open source has begun".
Juan Carlos Soto, CEO of StrongLoop (An IBM Company):
“In today's highly competitive market, companies of all sizes are seeking technology advantages to differentiate their offerings, speed time to market, and increase the value they bring to their clients.  Open source continues to see widespread and growing adoption in the enterprise as a means to gain rapid access to the latest innovations and minimize vendor lock-in.  For many of these companies, adopting open source requires adapting development processes to ensure open source technologies being utilized adhere to company standards and their developers are properly trained to be able to make contributions back to the open source project and community.”

What’s Next

Part 2 will address how companies have retooled and restructured to use and leverage open source in their organizations. I will discuss how an organization needs to restructure and what obstacles to adoption they have encountered and how to overcame them.
Paul Marcinkiewicz is a Solution Architect for Slalom Consulting - Boston. Paul has worked as an architect ranging from startups to Fortune 500 firms and has experience designing, building and migrating onto platforms utilizing open source technologies. Connect with Paul on Twitter or LinkedIn.

No comments: