OpenStack is open source software with a set of tools for building and managing cloud computing platforms for private and public clouds. Anyone who wants to access the open code, can do it, make the changes or modifications and share changes to the community.
The software is built by a community of thousands of developers and users all over the world. Hundreds of the world’s largest companies use OpenStack to run their business daily, reducing costs and helping them move quickly.
OpenStack was written in Python and was developed under the Apache license.
OpenStack Key Features
OpenStack is a key enabler in the adoption of cloud technology and has several common deployment use cases. These are commonly known as Public, Private, and Hybrid models.
According to NIST, a public cloud is one in which the infrastructure is open to the general public for consumption. OpenStack public clouds are typically run by a service provider and can be consumed by individuals, corporations, or any paying customer. A public-cloud provider might expose a full set of features such as software-defined networking or block storage, in addition to multiple instance types.
At the opposite end of the spectrum is the private cloud. As NIST defines it, a private cloud is provisioned for exclusive use by a single organization comprising multiple consumers, such as business units. The cloud may be owned, managed, and operated by the organization, a third-party, or some combination of them, and it may exist on or off premises. Private-cloud use cases are diverse and, as such, their individual security concerns vary.
NIST defines a community cloud as one whose infrastructure is provisioned for the exclusive use by a specific community of consumers from organizations that have shared concerns (for example, mission, security requirements, policy, or compliance considerations). The cloud might be owned, managed, and operated by one or more of organizations in the community, a third-party, or some combination of them, and it may exist on or off premises.
A hybrid cloud is defined by NIST as a composition of two or more distinct cloud infrastructures, such as private, community, or public, that remain unique entities, but are bound together by standardized or proprietary technology that enables data and application portability, such as cloud bursting for load balancing between clouds. For example, an online retailer might present their advertising and catalogue on a public cloud that allows for elastic provisioning. This would enable them to handle seasonal loads in a flexible, cost-effective fashion. Once a customer begins to process their order, they are transferred to a more secure private cloud that is PCI compliant.
OpenStack embraces a modular architecture to provide a set of core services that facilitates scalability and elasticity as core design tenets.
OpenStack Compute service (nova) provides services to support the management of virtual machine instances at scale, instances that host multi-tiered applications, dev or test environments, “Big Data” crunching Hadoop clusters, or high-performance computing.
- Object Storage
The OpenStack Object Storage service (swift) provides support for storing and retrieving arbitrary data in the cloud. The Object Storage service provides both a native API and an Amazon Web Services S3-compatible API. The service provides a high degree of resiliency through data replication and can handle petabytes of data.
- Block Storage
The OpenStack Block Storage service (cinder) provides persistent block storage for compute instances. The Block Storage service is responsible for managing the life-cycle of block devices, from the creation and attachment of volumes to instances, to their release.
- Shared File Systems
The Shared File Systems service (manila) provides a set of services for managing shared file systems in a multi-tenant cloud environment, similar to how OpenStack provides for block-based storage management through the OpenStack Block Storage service project. With the Shared File Systems service, you can create a remote file system, mount the file system on your instances, and then read and write data from your instances to and from your file system.
The OpenStack Networking service (neutron, previously called quantum) provides various networking services to cloud users (tenants) such as IP address management, DNS, DHCP, load balancing, and security groups (network access rules, like firewall policies). This service provides a framework for software defined networking (SDN) that allows for pluggable integration with various networking solutions.
The OpenStack Dashboard (horizon) provides a web-based interface for both cloud administrators and cloud tenants. Using this interface, administrators and tenants can provision, manage, and monitor cloud resources. The dashboard is commonly deployed in a public-facing manner with all the usual security concerns of public web portals.
- Identity service
The OpenStack Identity service (keystone) is a shared service that provides authentication and authorization services throughout the entire cloud infrastructure. The Identity service has pluggable support for multiple forms of authentication.
- Image service
The OpenStack Image service (glance) provides disk-image management services, including image discovery, registration, and delivery services to the Compute service, as needed.
- Data processing service
The Data Processing service (sahara) provides a platform for the provisioning, management, and usage of clusters running popular processing frameworks.
- Other supporting technology
Messaging is used for internal communication between several OpenStack services. By default, OpenStack uses message queues based on the AMQP. Like most OpenStack services, AMQP supports pluggable components. Today the implementation back end could be RabbitMQ, Qpid, or ZeroMQ.
Price starting at: $XX.YY