OpenStack , Simplified!
Chief Technical Officer & Technology Evangelist
The cloud computing is an essential enabler of digital revolution today, the optimum use of available resources that run and scale on demand has fuelled the way information systems, emerging technologies and automation toolchains adoption curve. The mobility of the workloads, distributed architectures and devops ecosystems made a mark on the way applications are designed, deployed and delivered. OpenStack , an open-source cloud management system, is being now getting a lot traction and is widely adopted as an IaaS platform playing an increasingly significant role in cloud computing. It has grown approximately 10 times in code size since its inception in just couple of years. The community so engaged has taken the equation beyond hypervisors and now OpenStack supports baremetal, virtualized and containerized workloads with “Software defined everything” principle. From its inception, OpenStack was designed to support modular approach and thus can be upgraded and integrated with latest tools and plugins via APIs.
Why OpenStack ?
- IT’s Open source -OpenStack is a top-level open infrastructure project supported by the Open Infrastructure Foundation (OpenInfra Foundation) The biggest strength of OpenStack is its vibrant community with thousands of individual contributors from more than 177 countries and more than 70 user groups worldwide. Some say that OpenStack is the largest open source project ever. It combines computing, networking, and storage subsystems in layers via APIs within a single platform. The open source environment allows you to create a truly software defined data center. For instance, you can modify the APIs to enhance integration and subsystem usage as well as extend resource orchestration beyond your OpenStack environment to the public cloud. Some vendors, such as RedHat, have developed and continue to support their own distributions of OpenStack . And with a community of over 200 active enterprise participants, you should have no trouble finding tailored OpenStack solutions to fit your needs along with the necessary support. Most importantly the OpenStack software is available under Apache License, on a bi-annual release schedule April/May, Oct/Nov etc.
- Orchestration, Infrastructure-as-a-Service (IaaS) platforms remain stuck in confined environments. Orchestration is the comprehensive automated provisioning of infrastructure based on specific application requirements such as support for multi-tier, distributed applications that can utilize sporadic resources for particular independent subsets (services) such as virtualization or containers. Typically when a customer required to deploy a hybrid cloud the OpenStack becomes seamless deployment choice since all services are distributed, software defined and deployable across multiple hosts, locations and tenants.
- Scalability by design Putting the intelligence of installation and integration complexity directly into the tools themselves is how you make OpenStack easy and achieve economical scalability. Successful early cloud adopters have now realized that remote locations may have each of their own small cloud infrastructure and for scalability and redundancy, even within their own single datacentre, they will end up building and managing many, even dozens, of cloud clusters. Everyone needs to do these builds consistently, in a repeatable fashion, many times, the OpenStack would
- Simplification — OpenStack works with standard or commodity hardware, without the need for specialized vendor hardware, if you already have invested in specific enterprise-grade hardware, the supported drivers are available on the OpenStack website, in the Marketplace. OpenStack integrates well with popular third-party cloud stacks, development, and management tools. Third-party tools may include Software Developer Kits (SDKs) for the OpenStack APIs, orchestration tools, monitoring tools, logging tools, and provisioning tools thereof.
- OpenStack Application Support — There are purpose specific OpenStack modules for streamlining database access, big data analysis, or shared information. In particular, these OpenStack modules will spin up new Nova instances and would work well running within containers, such as Docker containers, especially because in most cases the user does not have direct access to these instances: for example Trove that provides Database-as-a-Service (DBaaS) capabilities on the OpenStack cloud infrastructure, or Sahara makes up a scalable data-processing stack and its associated management interfaces. We have Manila that provides shared file-system services and works well with Samba (a Linux implementation of Windows file sharing) and others etc.
What makes an OpenStack ?
Just to define OpenStack , it is a fully distributed infrastructure-as-a-service software eco-system that controls large pools of compute, storage, and networking resources throughout any datacentre and managed through a simple dashboard or via the OpenStack API and globally “promoted” by The OpenStack Foundation that promotes the global development, distribution and adoption of OpenStack.
Each of the following key component that make OpenStack communicate via REST, SQL, and AMQP (Advanced Message Queuing Protocol) to perform cluster operations namely..
- Compute (Nova) is the main powerhouse of OpenStack , fabric controller, which manages pools of computing resources to work with HPCs, virtualization/hypervisor stacks or even bare metal configurations to deliver the ability of integration of the legacy systems and third-party products as cohesive bundle. The supported technologies such as KVM, VMware, LXC, XenServer, etc. It is used to manage numerous virtual machines and other instances that handle various computations.
- Image Service (Glance) — it the OpenStack image repository that offers discovering, registering, and restoring virtual machine images via REST API, which allows querying of virtual machine image metadata and also retrieval of the actual image. While deploying new virtual machine instances, Glance uses the stored images as templates. Glance seamlessly supports Raw, VirtualBox (VDI), VMWare (VMDK, OVF), Hyper-V (VHD), and Qemu/KVM (qcow2) virtual machine images making it easier for quick deployment and centralized manageability.
- Object Storage (Swift) is redundant, scalable data storage to store petabytes of accessible data. The stored data can be leveraged, retrieved and updated. It has a distributed architecture, providing greater redundancy, scalability, and performance, with no central point of control. There are OpenStack distributions supporting the CEPH as well. Both Ceph and Swift ensure native data replication and distribution over various commodity hardware ( Read, data nodes), which makes it ideal for cost-effective, scale-out native storage. A good comparison of CEPH vs SWIFT can provide more insight.
- Dashboard (Horizon) is the graphical interface to automate cloud-based resources and activities thereon with ability of monitoring, billing, and other management tools as an integrated productivity tool.
- Identity Service (Keystone) is a native common authentication system that provides a central list of authenticated users, mapped against all their respective OpenStack services such as API client authentication, service discovery, and distributed multi-tenant authorization via OpenStack ‘s Identity API. This identity service used by OpenStack for authentication (authN) and high-level authorization (authZ) currently supports token-based authN and user-service authorization and recently been rearchitected to allow for expansion to support proxying external services and AuthN/AuthZ mechanisms such as oAuth, SAML and openID etc.
- Networking (Neutron) provides networking capability like managing networks and IP addresses for OpenStack . It ensures that the network is not a limiting factor in a cloud deployment and offers users with self-service ability over network configurations. OpenStack networking allows users to create their own networks ( Read, Overlay networks that decouples network services from the underlying infrastructure by encapsulating one packet inside of another packet and help connect devices and servers to one or more networks yet maintaining isolation between two logical networks, since these are purely software defined networks developers can leverage great levels of multi-tenancy and massive scale with ability to deploy and manage of other network services such as virtual private networks (VPN), firewalls, load balancing, and intrusion detection system (IDS) service integrations.
- Block Storage (Cinder) delivers determined block-level storage devices for application with OpenStack compute instances. A cloud user can manage their storage needs by integrating block storage volumes with Dashboard and Nova.
- Telemetry (Ceilometer) delivers a single point of reference for resource and service utilization for billing systems obtaining all of the measurements of customers usage across all OpenStack core components. Additionally by monitoring notifications from existing services, one can collect the data and may create insights required for operations.
- Orchestration (Heat) is another key to orchestrate multiple composite workflows of cloud applications and services thereof through both the CloudFormation-compatible Query API and OpenStack -native REST API, using the template format.
In fact, The list does not end here, the latest release of OpenStack named Ussuri released in May 2020 has more than 44 supported components / services such as Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara (elastic map reduce), Ironic, Zaqar, Manila, Designate, Barbican, Searchlight, Magnum, aodh, cloudkitty, congress, freezer, mistral, monasca-api, murano, panko, senlin, solum, tacker, vitrage, Watcher, blazar, karbor, octavia, storlets, tricircle, zun, Cyborg, ec2-api, Masakari, Qinling, monasca-events-api, placement, adjutant etc, the list keeps growing to ensure OpenStack stays relevant and offer better informed choices to the user community.
Due to its widespread integration into enterprise-level infrastructures, monitoring OpenStack performance in general, and Nova performance in particular, scaling has become an increasingly important issue. Monitoring end-to-end performance requires tracking metrics from Nova, Keystone, Neutron, Cinder, Swift and all other services mentioned above.
Due to OpenStack ‘s multi-project development approach, the complexity involved in synchronising the different projects during an upgrade implementation may thus need an automated patching, rolling upgrades and maintenance mechanism, this requirement thus becomes the key differentiators of adoption of enterprise OpenStack players and an obvious choice for an organization wishing to implement OpenStack would be to go with a vendor, and source an OpenStack appliance or distribution.
OpenStack “distros” and use case verticals
A “Distro” is an open source distribution is simply a packaging of an upstream, multi-featured, collaborative open source project sold and supported by a vendor as a value addition. OpenStack requires multiple services and infrastructure and the only way to get those all co-originated is to use some kind of automated tooling, which is typically what these “ distros “ provide.
Remember, deploying OpenStack isn’t as simple as clicking the ‘next’ button until it’s finished. It is bit complex during the install phase because it’s a suite of projects and each of those applications needs to be configured to suit the user’s requirements and is a job of an expert having range of complimentary skill required for an optimal setup and ongoing easier manageability. There are of course vendors who provide a full package software, expertise along with their preconfigured distros making the process much more streamlined leading easier adoption, upgrades and long term support. There are enterprise grade OpenStack distros that are famous and picked up the market making it easier adoption curve and first few that come to my mind are they are REDHAT, MIRANTIS, CANONICAL… list is longer with 35+ participants. These players differentiate via multiple parameters such as underlying technologies, subscriptions and support costs, Release cadence, Bare-metal provisioning tools, Supported hypervisors, storage and SDN platforms etc. Since OpenStack functions well across multiple industry verticals / across diverse use cases, it becoming popular choice for CSPs, TELCOs and even App engineering fraternity for DevOps / DevCloud paradigms.
For CSPs, it provides opportunity as scalable virtual infrastructure as a service (IaaS). A typical stack of this type includes open source tools such as KVM (hypervisor), Ubuntu (OS), OpenStack (cloud management layer), Nagios (monitoring), LogStash (Logging), Kibana (Analytics), Chef (Orchestration), HAProxy (Load Balancers) along with few home-grown components. Commodity hardware generally is used to provide compute functionality and certain kinds of storage; however, multiple hardware configurations could be deployed.
For TELCOs which are quick adopters of OpenStack for their private cloud requirements. That support their standard “IT-as-a-Service” to internal use or providing advanced capabilities specific to Telco infrastructure as Network Function Virtualization, or NFV to sight an example.
Another common use case of OpenStack is to enable Continuous Integration/Continuous Development (CI/CD) in App Development workflows which enables business agility, and increases customer confidence about developing and running Line of Business (LOB) applications on OpenStack . These LOB applications and workloads typically involve some kind of source code repository (for instance, github.com), test harness (e.g., Jenkins), bug database (e.g., Atlassian), and other related deployment tools, all as part of the unified OpenStack ecosystem.
Looking forward to the Smart OpenStack ..
In Summary, Today OpenStack has been widely adopted across the IT community, driving innovation and robustness. OpenStack global community includes more than 11,000 individual members and 250 supporting organizations spanning 130 countries due to its enablement of accelerating the time-to-market, integrating with a variety of key technologies and services, and thus delivering the most value from the cloud. So, enterprises are keen to consider building their cloud platform with OpenStack riding the wave of “Software Defined everything” that enables changing the tyres of the car while car is in motion without losing lives of the passengers, of course!
***
Dec 2020. Compilation from various publicly available internet sources, authors views are personal.
Published By
Originally published at https://www.linkedin.com.