Openstack

·

6 min read

Openstack

What is openstack?

Free and open source software platform for managing cloud services. It is mostly deployed as IaaS: infrasturcture as a Service for cloud computing. A software tool for managing and building cloud computing platform for public and private clouds. Control hardware pools for processing, storage and netoworking resources. Users can either manage it through a web-based dashboard, CLI tools and RESTful API.

Release history of Openstack components:

image.png

Components of Openstack:

Openstack consist of many componets wich provide up many services like : Dashboard, Networking, Computing, Block-Stoarge, Object Storage, Image Service, Orchesteration, Identity Service etc.

HORIZON: Dashboard Web based UI for managing and configuring different components and setting sccess controls.

NOVA: Compute Manage network of Vms, provides VM. It is designed to scale horizontally on standard hardware, downlaoding images for launching instances, spawning, scheduling Vms.

NEUTRON: Networking It provides connectivity between the interfaces of other Openstack services. User can create their own netowrk , control taffic and connect servers to other networks.

Storage Related:

SWIFT: Object Storage Allow user to store and retrive files. It allow horizontal scaling and provides redundancy as failure proofing. Data replication is managed by software, allowiing greater scalability and redundancy that dedicated hardwares.

CINDER: Block storage provides storage volumes to Vms. It is persistend block storage for instances running in Nova.

Shared Service:

KEYSTONE: identity Management provide authentication and authorization for other services of Openstack.

High Level Serviece Components:

HEAT: Orchestration It orchesterate multiple composite cloud applications using AWS CloudFormation template format, throught both a REST API and a CloudFoundation-compatible Query API. It integrates other core components of OpenStack into a one-file template system. The template allow creation of most OpenStack resource types( i.e. instances, floating APIs, volumes, security groups, users, etc.) as well as some more advanced sunctionality such as Instance High Availability, Instance Auto-Scaling and nested stacks.

GLANCE: Image Service It acts as a registry for VM images, allowing auers to copy servers images for immediate storage. Thses images can be used as templates when sitting up new instances.

CEILOMETER: Metering Monitors and meters the openstack cloud for billing, benchmarking, scalability and statistical purpose.

Some other components:

ZUN: Containers Service API for launching and managing containers backed by different container technologies

IRIONIC: Mare metal Provisioning Service

CYBORG: Lifecycle management of accelerators It provides a general purpose management framework for accelerators (including GPUs, FPGAs, ASIC-based devices, etc.)

MANILA: Shared filesystems Manila provides coordinated access to shared or distributed file systems.

OCTAVIA: Load Balancer The splits the load over different api for continuious functioning.

DESIGNATE: DNS serviece It provides a REST API with integrated keystone authentication. It can be configured to auto generate records based on NOVA and NEUTRON actions.

BARBICIAN: key management It is the OpenStack Key Manager service. It provides secure storage, provisioning and management of secret data. This includes keying material such as Symmetric Keys, Asymmetric Keys, Certificates and raw binary data.

SENLIN: Clustering Services It is a service to create and manage cluster of multiple cloud resources. It creates and operates clusters of homogeneous objects exposed by other OpenStack services. The goal is to make orchestration of collections of similar objects easier.

MISTRAL: Workflow service Most business processes consist of multiple distinct interconnected steps that need to be executed in a particular order in a distributed environment. One can describe such process as a set of tasks and task relations (via YAML-based language) and upload such description to Mistral so that it takes care of state management, correct execution order, parallelism, synchronization and high availability.

ZAQAR: Messanging Service Zaqar is a multi-tenant cloud messaging service for web and mobile developers. The service features a fully RESTful API, which developers can use to send messages between various components of their SaaS and mobile applications. Underlying this API is an efficient messaging engine designed with scalability and security in mind.

BLAZAR: Resource reservation Service Blazar enables users to reserve a specific type/amount of resources for a specific time period and it leases these resources to users based on their reservations.

AODH: Alarming Service Aodh's goal is to enable the ability to trigger actions based on defined rules against sample or event data collected by Ceilometer.

MAGNUM: Container Orchesteration Engine Provisioning Magnum makes container orchestration engines such as Docker Swarm, Kubernetes, and Apache Mesos available as first class resources in OpenStack. Magnum uses Heat to orchestrate an OS image which contains Docker and Kubernetes and runs that image in either virtual machines or bare metal in a cluster configuration.

SAHARA: Big Data Processing Framework Provisioning The sahara project aims to provide users with a simple means to provision data processing frameworks (such as Hadoop, Spark and Storm) on OpenStack. This is accomplished by specifying configuration parameters such as the framework version, cluster topology, node hardware details and more.

TROVE: Database as a Service Allowing users to quickly and easily utilize the features of a relational database without the burden of handling complex administrative tasks. Cloud users and database administrators can provision and manage multiple database instances as needed. Initially, the service will focus on providing resource isolation at high performance while automating complex administrative tasks including deployment, configuration, patching, backups, restores, and monitoring.

MASAKARI: Instances Hight Availability Service Masakari provides Instances High Availability Service for OpenStack clouds by automatically recovering failed Instances. Currently, Masakari can recover KVM-based Virtual Machine(VM)s from failure events such as VM process down, provisioning process down, and nova-compute host failure. Masakari also provides an API service to manage and control the automated rescue mechanism.

MURANO: Application Catalog It is an open source OpenStack project that combines an application catalog with versatile tooling to simplify and accelerate packaging and deployment. It can be used with almost any application and service in OpenStack.

SOLUM: Software Development Lifecycle Automation To make cloud services easier to consume and integrate with your application development process by automating the source-to-image process, and simplifying app-centric deployment.

FREEZER: Backup, Restore and Disaster Recovery Freezer is a distributed backup, restore and disaster recovery as a service platform. It is designed to be multi OS (Linux, Windows, OSX...), focused on providing efficiency and flexibility for block based backups, file based incremental backups, point-in-time actions, jobs synchronization (i.e. backup synchronization over multiple nodes) and many other features. It is aimed at being useful for all environments, including large ephemeral Clouds.

EC2API: proxy Provides E2C(Elastic Compute Cloud)-compatible API to openstack Nova.

SKYLINE: Next generation Dashboard kyline is an OpenStack dashboard optimized by UI and UE. It has a modern technology stack and ecology, is easier for developers to maintain and operate by users, and has higher concurrency performance.

Openstack Architecture:

image.png

  • Here you can see different components of openstack which are playing their different roles in following ways: Starting from Horizon, it porvides UI or Dashboard to the user through which user can manage different components, cusgtomizre them etc..
  • Here Keystone is used for authentication and autherisation of different elements within the architecture. Then Glance provides images and acts like registry then glance store that image in Object storage i.e. Swift. Swift backup the volumes in it. Nova pulls that images, create instances, provide VMs and do some networking etc.. Then Neutron connects different VMs with networking . Then Cinder(block storage) provides Volumes to the VMs . Ceilometer moniters the different components and Heat orchestrates different clouds.