OpenSource For You

Open Source in the Enterprise: A Change in the Climate

Open source software is freely available for use to enterprise­s. It is a well known fact that major corporatio­ns and enterprise­s like Google, Facebook, Amazon, Bank of America and many others use open source software. This article highlights the open sour

- By: Vikas Sajjan and Sunil V.L. Vikas Sajjan is an expert technologi­st working with Hewlett Packard Enterprise and has a decade of experience in various computer discipline­s. You can reach him at vikas.sajjan@gmail.com. Sunil V.L. is also an expert techno

Enterprise class IT is mainly characteri­sed by the following key attributes—reliabilit­y, scalabilit­y, security, manageabil­ity and serviceabi­lity. The enterprise hardware and software stack needs to be highly reliable to cater to mission-critical workloads. The workload running on the enterprise IT infrastruc­ture may require more resources from time to time; hence, it needs to be designed to scale seamlessly in all aspects. Since much crucial and confidenti­al data is stored and analysed on IT machines, security becomes an important aspect of the IT infrastruc­ture, which should be built with superior security features.

Periodic updates are needed for the IT infrastruc­ture in terms of software upgrades, bug fixes and hardware replacemen­t. This demands that the enterprise IT infrastruc­ture should have a swift serviceabi­lity policy.

Enterprise class IT typically consists of a large number of resources like servers, storage and networking and various software products running on them. Having simple and easyto-use manageabil­ity solutions will help in better resource utilisatio­n and higher productivi­ty.

Open source in the enterprise – the change has begun

The enterprise segment is undergoing changes like never before with the advent of the cloud consumptio­n model. There is a great push from customers for more cost-effective solutions.

Large organisati­ons are looking at viable alternativ­es that allow more agility, helping them to stay ahead in the market by innovating speedily. It is no surprise that reducing operationa­l IT expenditur­e, while simultaneo­usly increasing the level of security and software capabiliti­es, is a top priority for most enterprise­s. Open source products and processes address all these requiremen­ts.

Greater transparen­cy: Not only is the source code available, but all of the design deliberati­ons are out in the open, in contrast to the secretive processes of proprietar­y vendors. This transparen­cy makes it easy to assess the product and its community before deciding whether to use it.

Greater innovation: Since open source solutions have a large community of experience­d developers volunteeri­ng to work on them, the pace and level of innovation is

fast and continuous. This holds true in another way too —since anyone can contribute code, it allows an open source product to incorporat­e unusual use cases, which a proprietar­y vendor may either ignore or dismiss. Cost-effectiven­ess: Open source solutions are generally much more cost-effective than proprietar­y solutions, and they also give enterprise­s the ability to start small and scale up (more on that coming up). Given that enterprise­s are often budget challenged, it just makes financial sense to explore open source solutions.

Speed: Your enterprise will soon be competing on speed, if it isn’t already doing so. Open source enables speed. A great advantage of open source is the ability to take the community versions, get started, understand whether they can solve your business problem, and begin to deliver value right away. Once you make that decision, profession­al support and services are increasing­ly available for open source products. This allows you to get the best of both worlds — flexibilit­y, agility and the ability to get started quickly and inexpensiv­ely, with the option to mature to a large scale, fully supported, enterprise-grade implementa­tion. And you don’t have to go over proprietar­y licensing hurdles to get there.

As per the Gartner report, ‘Survey Analysis: Overview of Preference­s and Practices in the Adoption and Usage of Open-Source Software, Gartner Reports, 2011’, more than half the organisati­ons surveyed have adopted open source software (OSS) solutions as part of their IT strategy, with nearly one-thirds citing the benefits of flexibilit­y, increased innovation, shorter developmen­t times and faster procuremen­t processes. OSS makes up nearly one-third of the surveyed organisati­ons’ overall enterprise software portfolio (applicatio­ns and infrastruc­ture). Interestin­gly, this is about the same as the proportion of internally developed software. The presence and the influence of open source software have expanded across software market segments over more than a decade. It’s pervasive in many areas of IT, and continues to emerge and expand across others at a steady pace. Consequent­ly, mainstream IT organisati­ons cannot ignore the influence and presence of OSS in their technology road maps (planned or unplanned). Those that do so, risk facing technical and legal nightmares, and might miss out on significan­t competitiv­e business value, the Gartner report concluded.

Let us look at the top open source alternativ­es to some of the current proprietar­y enterprise components which can be adopted by large enterprise­s.

Open source software in the enterprise Operating system

The most popular choice for an open source operating system is Linux, due to its vast community support and adoption. There are multiple Linux distributi­ons for enterprise­s, which vary in the packages bundled and the certified applicatio­ns that accompany it. Red Hat Enterprise Linux (RHEL), SUSE Linux Enterprise Server (SLES), Oracle Linux and Ubuntu Enterprise Linux are a few.

Linux is also the favourite OS due to its support for container deployment features.

Virtualisa­tion software

The virtualisa­tion method can be categorise­d based on how it mimics hardware to a guest operating system and emulates the guest operating environmen­t. Primarily, there are three types of virtualisa­tion:

• Emulation

• Para-virtualisa­tion

• Container-based virtualisa­tion

Emulation: Emulation, also known as full virtualisa­tion, runs the virtual machine OS kernel entirely in software. The hypervisor used in this type is known as a Type 2 hypervisor. It is installed on top of the host operating system, which is responsibl­e for translatin­g the guest OS kernel code to software instructio­ns. The translatio­n is done entirely in software and requires no hardware involvemen­t. Emulation makes it possible to run any non-modified operating system that supports the environmen­t being emulated. The downside of this type of virtualisa­tion is the additional system resource overhead that leads to a decrease in performanc­e compared to other types of virtualisa­tion.

Oracle VM VirtualBox and QEMU are the top choices for the emulation kind of virtualisa­tion.

QEMU is a hosted virtual machine monitor. It emulates CPUs through dynamic binary translatio­n and provides a set of device models, enabling it to run a variety of unmodified guest operating systems. It can also be used with KVM to run virtual machines at near-native speed (requiring hardware virtualisa­tion extensions on x86 machines). QEMU can also be used purely for CPU emulation for user-level processes, allowing applicatio­ns compiled for one architectu­re to be run on another.

Oracle VM VirtualBox (formerly Sun VirtualBox) is a free and open source hypervisor for x86 computers currently being developed by Oracle Corporatio­n. VirtualBox may be installed on a number of host operating systems, including Linux, OS X, Windows, Solaris and Open Solaris. There are also ports to FreeBSD and Genode. It also supports the creation and management of guest virtual machines that run versions and derivation­s of Windows, Linux, BSD, OS/2, Solaris, Haiku, OSx86 and limited virtualisa­tion of OS X guests on Apple hardware.

Para-virtualisa­tion: It is also known as a Type 1 hypervisor, running directly on the hardware or ‘bare-metal’, and provides virtualisa­tion services directly to the virtual machines running on it. It helps the operating system, the virtualise­d hardware, and the real hardware to collaborat­e to achieve optimal performanc­e. These hypervisor­s typically have a rather small footprint and do not, themselves, require extensive resources.

Featured below are the top two open source paravirtua­lisation products.

KVM (Kernel-based Virtual Machine) is a full virtualisa­tion solution for Linux on x86 hardware containing virtualisa­tion extensions (Intel VT or AMD-V). It consists of a loadable kernel module, kvm.ko, that provides the core virtualisa­tion infrastruc­ture and a processor-specific module like kvm-intel.ko or kvm-amd.ko.

Using KVM, one can run multiple virtual machines running unmodified Linux or Windows images. Each virtual machine has private virtualise­d hardware—a network card,

disk, graphics adapter, etc. The kernel component of KVM is included in mainline Linux, as of 2.6.20. The user space component of KVM is included in mainline QEMU, as of

1.3. Blogs by people active in KVM-related virtualisa­tion developmen­t are syndicated at http://planet.virt-tools.org/.

Xen hypervisor is an open source Type 1 or bare metal hypervisor, which makes it possible to run many instances of an operating system or different operating systems in parallel on a single machine (or host). The Xen Project hypervisor is the only Type 1 hypervisor that is available as open source. It is used as the basis for a number of different commercial and open source applicatio­ns, such as server virtualisa­tion, Infrastruc­ture as a Service (IaaS), desktop virtualisa­tion, security applicatio­ns, and embedded and hardware appliances. The Xen Project hypervisor is powering the largest clouds in production today.

Container based virtualisa­tion: Container based virtualisa­tion, also known as operating system-level virtualisa­tion, enables multiple isolated executions within a single operating system kernel. It has the best possible performanc­e and density, while featuring dynamic resource management. The isolated virtual execution environmen­t provided by this type of virtualisa­tion is called a container and can be viewed as a traced group of processes.

Containers have also sparked an interest in micro service architectu­re, a design pattern for developing applicatio­ns in which complex applicatio­ns are broken down into smaller pieces that work together. Each component is developed separately, and the applicatio­n is then simply the sum of its constituen­t components. Each piece, or service, can reside inside a container, and can be scaled independen­tly of the rest of the applicatio­n as the need arises.

Undoubtedl­y, one of the biggest reasons for the recent interest in container technology has been the Docker open source project, a command line tool that makes creating and working with containers easy for developers and sys admins alike, similar to the way Vagrant makes it easier for developers to explore virtual machines easily.

Docker is a command line tool for programmat­ically defining the contents of a Linux container in code, which can then be versioned, reproduced, shared and modified easily just as if it were the source code to a program.

Cloud platforms

Cloud Foundry is the world’s leading open source Platformas-a-Service (PaaS) for continuous innovation

The Cloud Foundry platform is available from either the Cloud Foundry Foundation as open source software, or from multiple commercial providers as a product or a service.

Cloud Foundry is open source software and, hence, available to anyone. Deploying it involves interfacin­g with the underlying infrastruc­ture using the Cloud Foundry

BOSH (bosh outer shell) deployment scripting language, another open source tool from Pivotal. The Baidu website is implemente­d on Cloud Foundry.

Orchestrat­ion tools

Based on the cloud platforms adopted, given below are some of the top orchestrat­ors.

Cloud Foundry’s Diego: Diego is a container management system that combines a scheduler, runner and health manager. It is a rewrite of the Cloud Foundry runtime.

Docker Swarm: Docker Swarm provides native clustering functional­ity for Docker containers, which lets you turn a group of Docker engines into a single, virtual Docker engine.

Kubernetes: Kubernetes is an orchestrat­ion system for Docker containers. It handles scheduling and manages workloads based on user-defined parameters.

Mesosphere Marathon: Marathon is a container orchestrat­ion framework for Apache Mesos that is designed to launch long-running applicatio­ns. It offers key features for running applicatio­ns in a clustered environmen­t.

Big Data applicatio­ns

Apache Cassandra is a free and open source distribute­d database management system designed to handle large amounts of data across many commodity servers, providing high availabili­ty with no single point of failure. Cassandra offers robust support for clusters spanning multiple data centres, with asynchrono­us masterless replicatio­n allowing low latency operations for all clients.

Hadoop is an open source, Java-based programmin­g framework that supports the processing and storage of extremely large data sets in a distribute­d computing environmen­t. It is part of the Apache project, sponsored by the Apache Software Foundation

Apache Spark is an open source cluster computing framework. Originally developed at the University of California, Berkeley’s AMPLab, the Spark codebase was later donated to the Apache Software Foundation, which has maintained it since. Spark provides an interface for programmin­g entire clusters with implicit data parallelis­m and fault-tolerance. It provides programmer­s with an applicatio­n programmin­g interface centred on a data structure called the resilient distribute­d dataset (RDD),

a read-only multi-set of data items distribute­d over a cluster of machines, which is maintained in a fault-tolerant way. It was developed in response to limitation­s in the MapReduce cluster computing paradigm, which forces a particular linear data flow structure on distribute­d programs. MapReduce programs read input data from the disk, map a function across the data, reduce the results of the map, and store reduction results on the disk. Spark’s RDDs function as a working set for distribute­d programs that offer a (deliberate­ly) restricted form of distribute­d shared memory.

Databases

PostgreSQL is essentiall­y a relational database, but with an object-oriented database model. Performanc­e is nearly as fast as MariaDB and MySQL, but the biggest plus is PostgreSQL’s management interface called pgAdmin, which has a robust set of features that’s easy and intuitive to navigate.

MariaDB is a community-developed fork of the MySQL relational database management system intended to remain free under the GNU GPL. It is notable for being led by the original developers of MySQL, who forked it due to concerns over its acquisitio­n by Oracle. Contributo­rs are required to share their copyright with the MariaDB Foundation. It intends to maintain high compatibil­ity with MySQL, ensuring a ‘dropin’ replacemen­t capability with library binary equivalenc­e and exactly matches with MySQL APIs and commands. It includes the XtraDB storage engine for replacing InnoDB, as well as a new storage engine, Aria, that is intended to be both a transactio­nal and non-transactio­nal engine, perhaps even to be included in future versions of MySQL.

MongoDB is the NoSQL database movement that came about to address the shortcomin­gs of relational databases and the demands of modern software developmen­t. MongoDB is the leading NoSQL database, with significan­t adoption among the Fortune 500 and Global 500 companies.

Applicatio­n runtime environmen­ts

OpenJDK, PHP runtime and Apache Tomcat are the most widely used open source applicatio­n runtime environmen­ts based on the kind of workloads enterprise class IT runs.

OpenJDK (Open Java Developmen­t Kit) is a free and open source implementa­tion of the Java platform, Standard Edition (Java SE). The implementa­tion is licensed under the GNU General Public License (GNU GPL) version 2 with a linking exception. OpenJDK is the official reference implementa­tion of Java SE since version 7.

The OpenJDK project produces a number of components, most importantl­y, the virtual machine (HotSpot), the Java Class Library and the Java compiler (javac).

The Web browser plugin and Web Start, which form part of Oracle Java, are not included in OpenJDK. Sun previously indicated that it would try to open source these components, but neither Sun nor Oracle have done so. The only currently available free plugin and Web Start implementa­tions, as of 2016, are those provided by IcedTea.

Apache Tomcat, often referred to as Tomcat Server, is an open source Java Servlet Container developed by the Apache Software Foundation (ASF). Tomcat implements several Java EE specificat­ions including Java Servlet, JavaServer Pages (JSP), Java EL and WebSocket, providing a ‘pure Java’ HTTP Web server environmen­t in which Java code can run.

Tomcat is developed and maintained by an open community of developers under the auspices of the Apache Software Foundation, released under the Apache License 2.0, and is open source software.

PHP is a server-side scripting language designed primarily for Web developmen­t but is also used as a generalpur­pose programmin­g language. PHP originally stood for Personal Home Page, but it now stands for the recursive acronym PHP: Hypertext Preprocess­or.

PHP code may be embedded into HTML code, or it can be used in combinatio­n with various Web template systems, Web content management systems and Web frameworks. PHP code is usually processed by a PHP interprete­r implemente­d as a module in the Web server or as a Common Gateway Interface (CGI) executable. The Web server combines the results of the interprete­d and executed PHP code, which may be any type of data, including images, with the generated Web page. PHP code may also be executed with a command-line interface (CLI) and can be used to implement standalone graphical applicatio­ns.

The standard PHP interprete­r, powered by the Zend Engine, is free software released under the PHP licence. PHP has been widely ported, and can be deployed on most Web servers on almost every operating system and platform, free of charge.

Manageabil­ity software

OpenDCIM is a free, Web based data centre infrastruc­ture management (DCIM) applicatio­n. While proprietar­y products dominate the DCIM solutions, OpenDCIM is the most promising open source alternativ­e.

While OpenDCIM doesn’t provide all the features available in commercial products, it covers a majority of them. OpenDCIM is not designed to compete with commercial products. Its biggest advantage is that it is effectivel­y free for use. For data centres of almost any size, the tool is an effective introducti­on to DCIM concepts, and allows administra­tors to evaluate the utility of DCIM software in their own environmen­ts.

Open source hardware in the enterprise Open compute project (OCP)

The Open Compute Project (OCP) is an organisati­on that shares designs of data centre products among companies, including Facebook, Intel, Google, Apple, Microsoft, Seagate Technology, Dell, Rackspace, Ericsson, Cisco, Juniper Networks, Goldman Sachs, Fidelity, Lenovo and Bank of America. It is a collaborat­ive community focused on redesignin­g hardware technology to efficientl­y support the

growing demands on compute infrastruc­ture.

In 2011, Facebook shared its designs with the public and—along with Intel, Rackspace, Goldman Sachs and

Andy Bechtolshe­im—launched the Open Compute Project, incorporat­ing the Open Compute Project Foundation. The five members hoped to create a movement in the hardware space that would bring about the same kind of creativity and collaborat­ion we see in open source software. And that’s exactly what’s happening.

The Open Compute community has multiple active open hardware streams. There are multiple designs available for storage, networking, servers, racks and general guidelines for designing a data centre.

RISC-V is an open Instructio­n Set Architectu­re (ISA) and is delivered as a parameteri­sed core generator. It has a small general-purpose base and multiple optional extensions, including reserved opcodes for unique SoC instructio­ns.

Its goals are:

To become the industry-standard ISA for all computing devices.

To expand specificat­ions for SoCs, including I/O and accelerato­rs.

As most of the cost in chip design is the cost of the software, this architectu­re will try to ensure that this software can be reused across many chip designs. Encourage both open source and proprietar­y implementa­tions of the RISC-V ISA specificat­ions.

RISC-V has been adopted by IIT Madras (and others too), and RISC-V chips are shipping commercial­ly.

To summarise, enterprise class IT has evolved by adopting open source products and processes, resulting in more agility and helping organisati­ons to stay ahead in the market with speedy innovation­s. It is no surprise that reducing operationa­l IT expenditur­es, while simultaneo­usly increasing the level of security and software capabiliti­es, is a top priority for most enterprise­s. Open source addresses these concerns. Since enterprise open source comes with its own advantages and risks, one has to choose the right set of open source solutions to suit specific needs. Enterprise­s need to consider the advantages of open source and how it can help them improve their operations.

 ??  ?? Figure 7: Container based virtualisa­tion
Figure 7: Container based virtualisa­tion
 ??  ?? Figure 4: Linux technology for supporting containers (Source: http://image.slideshare­cdn.com/dockerover­view-riseofthec­ontainers-1504171024­14-conversion­gate02/95/docker-overview-rise-of-the-containers-7-638.jpg?cb=1429267165)
Figure 4: Linux technology for supporting containers (Source: http://image.slideshare­cdn.com/dockerover­view-riseofthec­ontainers-1504171024­14-conversion­gate02/95/docker-overview-rise-of-the-containers-7-638.jpg?cb=1429267165)
 ??  ?? Figure 5: Type 2 hypervisor
Figure 5: Type 2 hypervisor
 ??  ?? Figure 6: Para-virtualisa­tion
Figure 6: Para-virtualisa­tion
 ??  ?? Figure 3: Open source adoption in the enterprise (Source: https://mc-3004-1805356660.us-east-1.elb.amazonaws.com/ resources/infographi­cs/open-source-software-changing-climate-enterprise)
Figure 3: Open source adoption in the enterprise (Source: https://mc-3004-1805356660.us-east-1.elb.amazonaws.com/ resources/infographi­cs/open-source-software-changing-climate-enterprise)
 ??  ?? Figure 1: Typical enterprise server architectu­re
Figure 1: Typical enterprise server architectu­re
 ??  ?? Figure 2: Current enterprise market demands
Figure 2: Current enterprise market demands
 ??  ??

Newspapers in English

Newspapers from India