openstack foundations

Openstack Architecture in Cloud Computing

OpenStack Architecture in Cloud Computing

Cloud computing has revolutionized businesses' operations by providing flexible and scalable infrastructure for hosting applications and storing data. OpenStack, an open-source cloud computing platform, has gained significant popularity due to its robust architecture and comprehensive services.

In this blog post, we will explore the architecture of OpenStack and how it enables organizations to build and manage their own private or public clouds.

At its core, OpenStack comprises several interconnected components, each serving a specific purpose in the cloud infrastructure. The architecture follows a modular approach, allowing users to select and integrate the components that best fit their requirements.

Table of Contents

Highlights: OpenStack Architecture in Cloud Computing

The role of decoupling

The key to cloud computing is decoupling virtual resources from physical ones. The ability to abstract processors, memory, etc., from the underlying hardware enables on-demand/elastic provisioning and increased efficiency. This abstraction process has driven the cloud and led to various popular cloud flavors such as IaaS – Infrastructure-as-as-Service, PaaS – Platform-as-as-Service, and SaaS – Software-as-as-service, a base for OpenStack foundations.

The fundamentals have changed, and the emerging way of consuming I.T. ( compute, network, storage ) is the new “O.S.” for the data center in the cloud. The cloud cannot operate automatically and needs a management suite to control and deploy service-oriented infrastructures. Different companies deploy different teams specialized only in managing cloud computing. Those without an in-house team get it outsourced by firms like Global Storage. 

Related: You may find the following post of interest:

  1. OpenStack Neutron Security Groups
  2. OpenStack Neutron
  3. Network Security Components
  4. Hyperscale Networking



Openstack Architecture in Cloud Computing.

Key Openstack Architecture in Cloud Computing Discussion Points:


  • Introduction to OpenStack architecture in cloud computing and what is involved.

  • Highlighting the components of cloud computing.

  • Critical points on OpenStack foundations and operations.

  • Technical details on the use of APIs.

  • Technical details for the OpenStack deployment details.

Back to Basics: Cloud Adoption.

The adoption of cloud technology has transformed how companies run their IT services. By leveraging new strategies for resource use, several cloud solutions came into play with different categories: private, public, hybrid, and community.

OpenStack falls into the private cloud category. However, deploying OpenStack is still a difficult step, which requires a good understanding of its beneficial returns to a given organization concerning automation, orchestration, and flexibility.

The main components of OpenStack are:

1. Nova: Nova is the compute service responsible for managing and provisioning virtual machines (VMs) and other instances. It provides an interface to control and automate the deployment of instances across multiple hypervisors.

2. Neutron: Neutron is a networking service that enables creating and managing virtual networks within the cloud environment. It offers a range of networking options, including virtual routers, load balancers, and firewalls, allowing users to customize their network configurations.

3. Cinder: Cinder provides block storage to OpenStack instances. It allows users to create and manage persistent storage volumes, which can be attached to cases for data storage. Cinder supports various storage backends, including local disks and network-attached storage (NAS) devices.

4. Swift: Swift is an object storage service that provides scalable and durable storage for unstructured data. It enables users to store and retrieve large amounts of data, making it suitable for applications that require high scalability and fault tolerance.

5. Keystone: Keystone serves as the identity service for OpenStack, providing authentication and authorization mechanisms. It manages user credentials and assigns access rights to the various components and services within the cloud infrastructure.

6. Glance: Glance is an image service that enables users to discover, register, and retrieve virtual machine images. It provides a catalog of images that can be used to launch instances, making it easy to create and manage VM templates.

7. Horizon: Horizon is the web-based dashboard for OpenStack, providing a graphical user interface (GUI) for managing and monitoring the cloud infrastructure. It allows users to perform administrative tasks like launching instances, managing networks, and configuring security settings.

These components work together to provide a comprehensive cloud computing platform that offers scalability, high availability, and efficient resource management. OpenStack’s architecture is designed to be highly modular and extensible, allowing users to add or replace components per their specific requirements.

SDN Abstraction

These platforms rely on a new networking architecture known as software-defined networking. Traditional networking relies on manual administration, and its culture is based on a manual approach. Networking gear is managed box by box, and administrators maintain singular physical network hardware and connectivity. SDN, on the other hand, abstracts the network.

The switching infrastructure may still contain physical switch components but is managed like one switch. The data plane is operated as an entire entity rather than a loosely coupled connected device. SDN approach is often regarded as a prerequisite and necessary foundation for scalable cloud computing.

 

OpenStack Architecture in Cloud Computing

OpenStack Fundations and Origins

OpenStack Foundations is a software platform for orchestrating and automating data center environments. It provides APIs enabling users to create virtual machines, network topologies, and scale applications to business requirements. It does not just let you control your cloud; you may make it available to customers for unique self-service and management.

It’s a collection of projects (each has a specific mission) to create a shared cloud infrastructure maintained by a community. It enables any organization type to build its public or private cloud stack. A key differentiator from OpenStack and other platforms is that it’s open-source, run by an independent community continually updating and reviewing publicly accessible information. The key to its adoption is that customers do not fear vendor lock-in.

The pluggable framework is supported by multiple vendors, allowing customers to move away from the continuous path of yearly software license renewal costs. There is real momentum behind it. The lead-up to OpenStack and cloud computing started with Amazon Web Service (AWS) in 2006. They offered a public IaaS and virtual instances with an API. However, there was no SLA or data guarantee, so research academies mainly used it.

NASA and Rackspace

Historically, OpenStack was founded by NASA and Rackspace. NASA was creating a project called Nebula, which was used for computing. Rackspace was involved in a storage project ( object storage platform ) called Cloud Files. The two projects mentioned above led to a community of collaborating developers working on open projects and components.

There are plenty of vendors behind it and across the entire I.T. stack. For servers, we have Dell and H.P.; Storage consists of NetApp and SolidFire; Networking has Cisco and Software with VMware and IBM.

Initially, OpenStack foundations started with three primary services: NOVA computer service, SWIFT storage service, and GLANCE virtual disk image service. Soon after, many additional services, such as network connectivity, were added. The initial networking suffered simple implementations, providing only basic networking via Linux Layer 2 VLANs and IPtables.

Now, with the Neutron networks, you can achieve a variety of advanced topologies and rich network policies. Most networking is based on tunneling ( GRE or VXLAN ). Tunnels are used within the hypervisor, so it fits nicely with multi-tenancy. Tunnels are created between the host over the Layer 3 network within the hypervisor. As a result, tenancy V.M.s can spin up where they want and communicate over the tunnel.

 

What is an API?

The application programming interface ( API ) is the engine under the cloud hood. The messenger takes requests, tells the systems what you want to do, and then returns the response to you—ultimately creating connectivity.

openstack foundations

Each core project (compute, network, etc.) will expose one or more HTTP/RESTful interfaces for public or managed access. This is known as a Northbound REST API. Northbound API faces some programming interfaces. It conceptualizes lower-level detail functions. Southbound faces the forwarding plane and allows components to communicate with a lower-level part.

For example, a southbound protocol could be OpenFlow or NETCONF. Northbound and southbound are software directions from the reference point of the network operating systems. We now have an East-West interface. At the time of writing, this protocol is not fully standardized, but eventually, it will be used to communicate between federations of controllers for state synchronization and high availability.

 

OpenStack Architecture: The Foundations

  1. OpenStack Compute – Nova is comparable to AWS EC2. She is used to provisioning instances for applications.
  2. OpenStack Storage – Swift is comparable to AWS S3. Provides object storage functions for application objects.
  3. OpenStack Storage – Cinder is comparable to AWS Elastic Block Storage. Provides persistent block storage functions for stateless instances.
  4. OpenStack Orchestration – Heat is comparable to AWS Cloud formation. Orchestrates deployment of cloud services
  5. OpenStack Networking – Neutron Network is comparable to AWS VPC and ELB. Creates networks, topologies, ports, and routers.

There are others, such as Identity, Image Service, Trove, Ceilometer, and Sahara.

Each OpenStack foundation component has an API that can be called from either CURL, Python, or CLI. CURL is a command-line tool that lets you send HTTP requests and receive responses. Python is a widely-used programming language, and within the OpenStack ecosystem, Python automates scripts to create and manage resources in your OpenStack cloud. Finally, command-line interfaces (CLI) can access and send requests to APIs.

 

OpenStack Architecture & Deployment

OpenStack has a very modular design, and the diagram below displays key OpenStack components. Logically, it can be divided into three groups: a) Control, b) Network, and c) Compute. All of the features use a database or a message bus. The database can either be MySQL, MariaDB, or PostgreSQL. The message bus can be RabbitMQ, Qpid, and ActiveMQ.

The messaging and database could run on the same control node for small or DevOps deployments but could be separated for redundancy. The cloud controller on the left consists of numerous components, which are often disaggregated into separate nodes. It is the logical interface to the cloud and provides the API service.

Openstack Deployment

The network controller includes the networking service known as Neutron. It offers an API for orchestrating network connectivity. Extension plugins provide additional network services such as VPNs, NAT, security firewalls, and load balancing. Generally, it is separate from the cloud controller as traffic may flow through it. The compute nodes are the instances. This is where the application instances are deployed. 

 

Leverage vagrant 

A vagrant is a valuable tool for setting up Dev OpenStack environments to automate and build virtual machines ( with OpenStack ). It’s a wrapper around a virtualization platform, so you are not running the virtualization in Vagrant. The Vagrant V.M. gives you a pure environment to work with as it isolates dependencies from other V.M. applications. Nothing can interfere with the V.M., offering full testing scope. An excellent place to start is Devstack. It’s the best tool for setting up small single-node non-production/testing installs.

Summary: OpenStack Architecture in Cloud Computing

In the fast-evolving world of cloud computing, OpenStack has emerged as a powerful open-source platform that enables efficient management and deployment of cloud infrastructure. Understanding the architecture of OpenStack is essential for developers, administrators, and cloud enthusiasts alike. This blog post delved into the various components and layers of OpenStack architecture, providing a comprehensive overview of its inner workings.

Section 1: OpenStack Components

OpenStack comprises several key components, each serving a specific purpose in the cloud infrastructure. These components include:

1. Nova (Compute Service): Nova is the heart of OpenStack, responsible for managing and provisioning virtual machines (VMs) and controlling compute resources.

2. Neutron (Networking Service): Neutron handles networking functionalities, providing virtual network services, routers, and load balancers.

3. Cinder (Block Storage Service): Cinder offers block storage capabilities, allowing users to attach and manage persistent storage volumes to their instances.

4. Swift (Object Storage Service): Swift provides scalable and durable object storage, ideal for storing large amounts of unstructured data.

Section 2: OpenStack Architecture Layers

The OpenStack architecture is structured into multiple layers, each playing a crucial role in the overall functioning of the platform. These layers include:

1. Infrastructure Layer: This layer comprises the physical hardware resources such as servers, storage devices, and switches that form the foundation of the cloud infrastructure.

2. Control Layer: The control layer comprises services that manage and orchestrate the infrastructure layer. It includes components like Nova, Neutron, and Cinder, which control and coordinate resource allocation and network connectivity.

3. Application Layer: At the topmost layer, the application layer consists of software applications and services that run on the OpenStack infrastructure. These can range from web applications to databases, all utilizing the underlying resources OpenStack provides.

Section 3: OpenStack Deployment Models

OpenStack offers various deployment models to cater to different needs and requirements. These models include:

1. Public Cloud: OpenStack is operated and managed by a third-party service provider in a public cloud deployment, offering cloud services to multiple organizations or individuals over the internet.

2. Private Cloud: A private cloud deployment involves setting up an OpenStack infrastructure exclusively for a single organization. It provides enhanced security and control over data and resources.

3. Hybrid Cloud: A hybrid cloud deployment combines both public and private clouds, allowing organizations to leverage the benefits of both models. This provides flexibility and scalability while ensuring data security and control.

Conclusion:

OpenStack architecture is a complex yet robust framework that powers cloud computing environments. Understanding its components, layers, and deployment models is crucial for effectively utilizing and managing OpenStack infrastructure. Whether you are a developer, administrator, or simply curious about cloud computing, exploring OpenStack architecture opens up a world of possibilities for building scalable and efficient cloud environments.