OpenStack is an open source cloud computing project to provide an infrastructure as a service (IaaS). This integration is facilitated through public application programming interfaces (APIs) that each service offers (and in turn can consume).
OpenStack controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface. It delivers a massively scalable cloud operating system.
The technology consists of a series of connected projects that control pools of processing, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering its users to provision resources through a web interface.
OpenStack is written in Python.
- Compute (Nova) – provides virtual servers upon demand with a flexible architecture:
- Start, resize, stop and query virtual machines (“instances”) in a live environment.
- Manage Local Area Networks (LAN) – Flat, Flat DHCP, VLAN DHCP, IPv6.
- Assign and remove public IP addresses.
- Attach and detach block storage.
- Add, modify and delete security groups.
- Role Based Access Control (RBAC).
- Show instance consoles.
- Snapshot running instances.
- API with rate limiting and authentication.
- Distributed and asynchronous architecture.
- Projects & Quotas.
- Object Storage (Swift) – allows you to store or retrieve files. It is designed to provide large scale storage of data that is accessible via APIs:
- Stores and retrieves objects (files).
- Sets and modifies metadata on objects (tags).
- Versions objects.
- Serve static web pages and objects via HTTP.
- HDD/node failure agnostic.
- Multi-dimensional scalability.
- Built-in replication.
- Built-in management utilities.
- Drive auditing.
- Block Storage (Cinder) – provides persistent block storage to guest VMs:
- Create, modify and delete volumes.
- Snapshot or backup volumes.
- Query volume status and metadata.
- Networking (Neutron) – provides “network connectivity as a service” between interface devices managed by other OpenStack services:
- Users can create their own networks and then attach server interfaces to them.
- Pluggable backend architecture lets users take advantage of commodity gear or vendor supported equipment.
- Extension framework allows additional network services like load balancing.
- Pluggable backend architecture.
- Dashboard (Horizon) – a modular Django web application that provides an end user and cloud operator interface to OpenStack services. It provides an overall view of the size and state of your cloud, and provides users a self-service portal to provision their own resources within the limits set by administrators.
- Identity Service (Keystone) – provides authentication and authorization for all the OpenStack services. It also provides a service catalog of services within a particular OpenStack cloud:
- Authenticate users and issue tokens for access to services.
- Store users and tenants for a role-based access control (RBAC).
- Provides a catalog of the services (and their API endpoints) in the cloud.
- Create policies across users and services.
- Image Service (Glance) – provides a catalog and repository for virtual disk images:
- Stores public and private images that users can utilize to start instances.
- Users can query and list available images for use.
- Delivers images to Nova to start instances.
- Snapshots from running instances can be stored so that virtual machines can be backed.
- All the services authenticate with Identity.
|Read our complete collection of recommended free and open source software. The collection covers all categories of software.|