This article covers the characteristics of the open source cloud and the open source based cloud computing layers, to help enterprises make the right choice.
An open source cloud is any cloud service or solution that is developed using open source technologies and software. This covers any public, private or hybrid cloud models providing SaaS, IaaS and PaaS that have been built and operate entirely on open source technologies.
In today’s transformational digital journey, the business, social, economic and technology trends play a major part in shaping the future of an enterprise. Cloud computing has become central to many enterprise IT models, and a number of enterprise architects are trying to make cloud systems as effective and beneficial as possible.
Industry adoption of cloud platforms
IT spending on cloud platforms is projected to reach 60 per cent of all IT infrastructure, and 60-70 per cent of all software services and technology spending by 2020. Forbes forecasts that 83 per cent of enterprise workloads will be in the cloud by 2020 [https://www.idc.com/getdoc.jsp? containerId=US43171317]. Subscription-based Software-as-a-Service (SaaS) is also projected to grow at a CAGR of 18 per cent by 2020 [https://www.forbes.com/sites/forbestechcouncil/2018/07/05/four-trends-in-cloud-computing-cios-should-prepare-for-in-2019/#69125c2c4dc2].
The growth rate for investments in Platform-as-a-Service (PaaS) will almost double from 32 per cent in 2016 to 56 per cent in 2019, making it the fastest-growing sector of cloud platforms [https://www.pointivity.com/latest_technology_trends].
As per Gartner, the Infrastructure-as-a-service (IaaS) market is predicted to reach US$ 72.4 billion worldwide by 2020 [https://www.gartner.com/newsroom/id/3871416].
Of the 83 per cent of enterprise workloads that will be in the cloud by 2020, 41 per cent will run on public cloud platforms while another 22 per cent will run on hybrid cloud platforms [ https://erpinnews.com/enterprise-workloads-will-be-in-the-cloud].
Cloud computing must satisfy five essential principles — on demand services, access to a network, resource pooling, elasticity and measured services. To achieve these essential features, cloud computing provides three kinds of service models — Software-as-a-Service (SaaS), Platform-as-a-Service (PaaS) and Infrastructure-as-a-Service.
What is driving the adoption of cloud services?
- Reduced capex and opex to deliver business services.
- It minimises IT costs by reducing delivery times and improves the quality of the app development process.
- Changing business model – enterprises will soon become integrators of the best-of-the-breed services through collaboration.
- New regulatory requirements driven by a global collaborative economy and a need to address open markets.
- A digital explosion that is raising the bar to deliver a better customer experience.
- Transformation and optimisation across different process stacks — sales, front-office, middle office and back office.
Characteristics of the open source cloud
The open source cloud has the following characteristics:
- No vendor lock-in and there is seamless integration of the enterprise applications, products and systems developed/deployed by different organisations and vendors.
- The source code will be made available for the community, for adopters and end users to study and modify the software and to redistribute copies of either the original or the modified version. Source code will also be free from any royalty.
- With no vendor monopoly, the use of free and open standards is possible. With data transferability and open data formats, there are greater opportunities to share data across interoperable platforms.
- Adoption of open source software enhances the interoperability with other enterprise solutions because the reuse of recommended software stacks, libraries and components is possible.
Figure 1 depicts the characteristics of the open source cloud.
Cloud computing layers using open source
Figure 2 depicts cloud computing layers and the respective open source products, tools and software that map to each layer of the cloud computing infrastructure.
The layers cover the cloud market, the cloud broker platform, cloud management, SaaS, PaaS, IaaS, the cloud platform, virtualisation software/management, and hardware, which are used across enterprise applications.
The following sections briefly describe the technologies to be adopted on the cloud, and the equivalent open source components and products.
The cloud platform: Cloud based open source technology enables enterprises to accelerate innovation, creating and deploying applications with speed and consistency.
Application platforms handle complex connectivity issues behind the scenes (including automatic documentation), letting users concentrate on creating the right workflows and business logic, but also making it easier and more cost effective for organisations to manage frequent change. It is imperative to ensure that the integration solution is optimised for connecting the new applications in the cloud environment with older applications, systems, services and databases, no matter where they are located.
Open Application Programming Interfaces (APIs): The application’s architecture uses open APIs to enable quick and transparent integration with other enterprise applications and systems implemented by various organisations, thereby providing access to data and services and promoting user/developer participation for the benefit of the community.
API management includes the full API management life cycle, as well as the integration with diverse applications and appliances to support management, monitoring and tracking of all your API activities.
Large complex systems in enterprises follow the API-centric approach when exposing services for integration with multiple third party solutions. The APIs are RESTful, XML based, and stateless services. All APIs are accessible through the HTTPS protocol.
Service discoverability: This is the process of client applications querying the central registry to learn the location of services. Service discoverability ensures that the metadata attached to a service describes the overall purpose of the service and its functionality, which makes the services easily discoverable. A repository of reusable business logic components needs to be maintained and made available to enable service discoverability.
Consul, Apache Zookeeper, Etcd, Netflix Eureka, etc, are the widely used open source service discovery tools.
Platform and database agnostic: Applications must be forward and backward compatible as well as deployable on any technology platform. They should be able to communicate with any data store.
For example, Jenkins is a continuous delivery tool that builds and tests software after every change. Jenkins can deploy new code to production, which helps in no downtime when making the upgraded product available to constituents.
PostGreSQL, MySQL, MongoDB and CouchBase are the widely used open source databases.
Microservices: The design of the business and information services layer of the enterprise application is developed using microservices architecture principles and cross-channel capabilities. Micro Services Architecture (MSA) allows the creation of services that are loosely coupled and have different programming language bases. These are scalable and have a quicker delivery time. MSA enables the development of new enterprise applications as reusable microservices based on open standards, which expose the standard recommended integration interfaces. This ensures independent scaling of individual services within an application with better resource utilisation.
Application life cycle automation tools like Ansible help in tracking, deploying and measuring the changes in and enhancements of microservices.
Mozilla, Jboss, AngularJS and Bootstrap are the frequently used open source development tools today. Other popular open source tools are Joomla, Jetty, OpenSSO, SOLR, Chef, Spring and WordPress.
Deployment architecture: The deployment platform chosen should be one that reduces the overall deployment complexity and supports open source based architectures. The suggestion is to consider using a dynamic component system for Java (e.g., OSGi).
Components can be installed, started, stopped, updated and be uninstalled without bringing down the whole system. This can significantly reduce deployment times.
Integration: The value of a strong integration system lies in its ability to connect to a wide range of backend systems. It provides mediation, transformation, protocol and routing capabilities, and acts as a gateway to integrate with core back-end systems. It also provides aggregation and broker communications. Therefore, it is important to consider an experienced integration solutions vendor who has the ability to connect to other databases, frameworks, applications and endpoints.
It is important to go with open standards and open interfaces while choosing the integration back-end as it should be free from vendor-specific modifications and proprietary hooks. Mule, JBoSS and WS02 are the famous open source integration products that can be used to establish the digital enterprise.
Security: Effective enterprise security is the need of the hour. It ensures that all the components of the cloud infrastructure are guarded against the fast growing security threats. From the application perspective, applications and endpoints need to be protected, and users granted access to applications as per the eligibility configured as part of the RBAC (role-based access control).
Oauth2 and OpenID are a few of the open source tools that can be used for enterprise security.
Customer experience: The customer experience is the sum of all the interactions between an organisation and a customer over the duration of their relationship. A good customer experience means that the individual’s experience at all points of contact matches expectations. While building applications, make sure that they meet the customer’s expectations when using the app.
Analytics: Enterprises may apply analytics to customer services to describe, predict and improve service performance. Predictive analytics and enterprise decision management helps the business services to be data-driven.
Scikit-learn and TensorFlow are a few open source machine learning tools.
PaaS: This category of cloud computing services provides a platform allowing customers to develop, run and manage applications without the complexity of building and maintaining the infrastructure typically associated with developing and launching an application. This is the core platform on which cloud native applications and supporting systems are based.
Cloud Foundry, Cloudify and OpenShift are a few open source PaaS platforms.
The key considerations when choosing an open source cloud platform are listed below:
- Deployment flexibility
- Ease of operations
- Choice of application stacks
- Language, database and framework support
- Scaling capabilities
- QoS
- Tooling for development and operations
- How well it meets the needs of the business
An open source cloud is designed and developed using open source technologies and software such as:
- An open source operating system
- An open source mobile OS
- Open source application servers
- Open source middleware
- Open source database
- Open source analytics database
- Open source software development frameworks
- Open source workflow and business applications
- Open source monitoring tools
- Open source virtualisation stack (hypervisor, virtualisation management)
- Open source security solutions
The following are some of the key open source cloud platforms.
OpenStack: This is open source software for creating private and public clouds, built and disseminated by a large and democratic community of developers, in collaboration with users. OpenStack is mostly deployed as Infrastructure-as-a-Service (IaaS), whereby virtual servers and other resources are made available to customers. The software platform consists of interrelated components that control diverse, multi-vendor hardware pools of processing, storage and networking resources throughout a data centre.
Cloud Foundry: This is an open Platform-as-a-Service (PaaS), which provides a choice of clouds, developer frameworks and application services. Cloud Foundry makes it faster and easier to build, test, deploy and scale applications. It has different distributions. A popular one is Pivotal, from IBM.
OpenShift: This is Red Hat’s cloud computing PaaS offering. It is an application platform in the cloud, where app developers and teams can build, test, deploy and run their applications.
Cloudify: Cloudify was developed and designed on the principles of openness to power the IT transformation revolution. It enables organisations to design, build and deliver various business applications and network services. The latest version of Cloudify is 4.3, and it incorporates enhanced features like advanced security, control and true self-service. Cloudify 4.3 introduced a totally new concept for container orchestration with Kubernetes (Kubernetes Cloud Native Orchestration).
WSO2: This is a Platform-as-a-Service (PaaS) framework from the Apache community. It provides the elastic scalability feature for any type of service, using the underlying infra cloud. WSO2 has a microservices based architecture that supports various services. It fosters agility and flexibility with open source.
Cloud Stack: This is an open source software platform designed to manage the cloud computing environment. It is an Infrastructure-as-a-Service (IaaS) cloud computing platform. Various service providers use Cloud Stack to offer public, private and hybrid cloud services.
By adopting open source, enterprises become FAST (flat, agile, streamlined, and tech-savvy). Open source helps to drive digital transformation in enterprises, helping them realise benefits like better business agility, improved customer experiences and enhanced quality of service. Open source based next-generation technologies enable the enterprise to move from transactions based services to relationship based services.
It also paves the way for new digital services to be rapidly built, changed, enhanced and deployed, so that new ideas for greater transparency, effectiveness and efficiency can be tried and refitted, if needed. Open source helps the enterprise application architecture to be technology independent and provides openness and transparency. It makes enterprise data available openly, so that external parties can build services, with adequate visibility of how the enterprise functions.
From the statistics, we can clearly make out that PaaS adoption is picking up very rapidly. Enterprises can now see the benefits PaaS provides by lowering capex and opex. PaaS enables the enterprise application to be run on any cloud platform, whether public or private.
Acknowledgements
The author would like to thank Hari Kishan Burle and Raju Alluri of the Global Enterprise Architecture Group of Wipro Technologies for giving their time and support to bring out this article as part of the Architecture Practices effort.
Disclaimer
The views expressed in this article are that of author’s and Wipro does not subscribe to the substance, veracity or truthfulness of the said opinions.
It’s often said that open source programs are free, but this isn’t entirely true. Open source software is free to install and use, but depending on the software, there could be hidden costs in maintaining and update it. Typically, however, open source communities provide free resources for users to operate the programs effectively. This means that building a cloud infrastructure on open source programs will still save you money in the end.