Managed by the non-profit OpenStack Foundation , Openstack is a set of software tools for building and managing cloud computing platforms for public, private and hybrid clouds. Backed by some of the biggest companies in software development and hosting, as well as thousands of individual community members, many think that it is the future of cloud computing.
The cloud is all about providing computing for end users in a remote environment, where the actual software runs as a service on reliable and scalable servers rather than on each end users computer. Cloud computing can refer to a lot of different things, but typically the industry talks about running different items “as a service”—software, platforms, and infrastructure. OpenStack falls into the latter category and is considered “Infrastructure as a Service” (IaaS).
Providing infrastructure means that OpenStack makes it easy for users to quickly add new instance, upon which other cloud components can run. Typically, the infrastructure then runs a “platform” upon which a developer can create software applications which are delivered to the end users. Openstack is comprised of many different parts (Figure 1 ).
Figure 1. Openstack has a core of seven basic services.
Because of its open nature, anyone can add additional components to OpenStack to help it to meet their needs. To create a standard set of services that developers can use interchangeably, the OpenStack community has collaboratively identified nine key components that are a part of the “core” of the platform, and which are distributed as a part of any OpenStack system and officially maintained by the OpenStack community. OpenStack currently consists of seven core projects:
1) Compute (Nova)
2) Networking (Neutron/Quantum)
3) Identity Management (Keystone)
4) Object Storage (Swift)
5) Block Storage (Cinder)
6) Image Service (Glance)
7) User Interface Dashboard (Horizon)
Nova OpenStack Compute (Nova) controls the cloud computing fabric (the core component of an infrastructure service). Written in Python, it creates an abstraction layer for virtualizing commodity server resources such as CPU, RAM, network adapters, and hard drives, with functions to improve utilization and automation.
Swift OpenStack Object Storage (Swift) is based on the Rackspace Cloud Files product and is a redundant storage system ideal for scale-out storage. This makes scaling easy, as developers don’t have the worry about the capacity on a single system behind the software. It also allows the system, rather than the developer, to worry about how best to make sure that data is backed up in case of the failure of a machine or network connection.
Cinder OpenStack Block Storage (Cinder) provides persistent block-level storage devices for use with OpenStack compute instances. This more traditional way of accessing files might be important in scenarios in which data access speed is the most important consideration.
Neutron/Quantum Networking (Neutron), formerly called Quantum, includes the capability to manage LANs with capabilities for virtual LAN (VLAN), Dynamic Host Configuration Protocol, and Internet Protocol version 6. Users can define networks, subnets, and routers to configure their internal topology, and then allocate IP addresses and VLANs to these networks. Floating IP addresses allow users to assign (and reassign) fixed external IP addresses to the VMs.
Horizon is the dashboard behind OpenStack. It is the only graphical interface to OpenStack, so for users wanting to give OpenStack a try, this may be the first component they actually “see.” Developers can access all of the components of OpenStack individually through an application programming interface (API), but the dashboard provides system administrators a look at what is going on in the cloud, and to manage it as needed.
Keystone is a group of internal services exposed on one or many points. It provides multiple means of access, meaning developers can easily map their existing user access methods against Keystone.
Glance provides image services to OpenStack. In this case, “images” refers to images (or virtual copies) of hard disks. Glance allows these images to be used as templates when deploying new virtual machine instances.
Ceilometer provides telemetry services, which allow the cloud to provide billing services to individual users of the cloud. It also keeps a verifiable count of each user’s system usage of each of the various components of an OpenStack cloud. Think metering and usage reporting.
Heat is the orchestration component of OpenStack, which allows developers to store the requirements of a cloud application in a file that defines what resources are necessary for that application. In this way, it helps to manage the infrastructure needed for a cloud service to run.
OpenStack dominated as the top open-source Infrastructure-as-a-Service (IaaS) platform in 2014, gaining global adoption in many different industries. My prediction is that in 2015 OpenStack is going to dramatically change the Integrated System landscape, particularly for establishing clouds and data centers.
The advantages of OpenStack are openness and higher levels of scalability and agility that address the needs of many applications. Existing Converged Systems are based on closed cloud orchestration software and thus don't provide the openness and choice that customers expect. And just retrofitting Converged Systems to leverage OpenStack is not a trivial task and cannot meet the scalability and agility levels of Hyper-Convergence.
OpenStack vendors are already seeing actual revenues, and some estimates project that the platform may generate as much as $5 billion estimated revenue by 2018. For this to happen key development to watch for include:
1) Attention from bigger vendors will increase confidence among larger enterprise customers in OpenStack.
2) OpenStack is expected to gain adoption at managed service providers, cloud service providers, and large enterprises. Over time, as the OpenStack user base grows, and the eco-system solidifies and simplifies OpenStack deployments, more enterprises as well as SMBs will leverage it too.
3) More focus will be given to an introduction to database-as-a-service with an emphasis on Openstack using Trove.
During 2014 OpenStack shifted from being a so called developer driven project to one that is more customer-friendly. During 2015, OpenStack will be easier to use, manage, and scale. As a result, despite its pain points and deficiencies, OpenStack now has a level of product maturity and features that make it a serious option for use in cloud based applications.
Rajeev Tiwari is a Technical Architect at Technicolor, Inc. and has more than 13 years of experience in IPTV, Set Top Box, Video, Audio, Multimedia design. He has written extensively about such topics as SDN/NFV and HEVC and has multiple US patents related to video technology. He worked for Freescale Samsung and has broad experience ranging from the development of low level drivers, custom HW and multithreaded applications to high availability multiprocessor system architectures, video and web servers and networking management systems.