“OpenStack is a set of software tools for
building and managing cloud computing platforms
for public and private clouds.”
OpenStack is managed by the Openstack Foundation,a non-profit which oversees both development and community-building around the project.
OpenStack capabilities –
- Self-service Instance life cycle management: run, reboot, suspend, resize and terminate instances.
- Management of compute resources: CPU, memory, disk, and network interfaces.
- Management of Local Area Networks (Flat, Flat DHCP, VLAN DHCP and IPv6) through programmatically allocated IPs and VLANs.
- API with rate limiting and authentication to manage who has access to compute resources and prevent users from impacting each other with excessive API utilization.
- Distributed and asynchronous architecture for massively scalable and highly available system.
- Virtual Machine (VM) image management i.e. store, import, share, and query images.
- Floating IP addresses i.e. Ability to assign (and re-assign) IP addresses to VMs.
- Security Groups i.e. flexibility to assign and control access to VM instances by creating separation between resource pools.
- Role Based Access Control (RBAC) to ensure security by user, role and project.
- Projects & Quotas i.e. ability to allocate, track and limit resource utilization.
- REST-based API which is key to automation, a key characteristic of clouds, and which is very simple to implement using any computer language.
OpenStack Release history –
What are the components of OpenStack?
OpenStack is made up of many different moving parts. Because of its open nature, anyone can add additional components to OpenStack to help it to meet their needs. But the OpenStack community has collaboratively identified nine key components that are a part of the “core” of OpenStack, which are distributed as a part of any OpenStack system and officially maintained by the OpenStack community.
- Nova is the primary computing engine behind OpenStack. It is used for deploying and managing large numbers of virtual machines and other instances to handle computing tasks.
- Swift is a storage system for objects and files. Rather than the traditional idea of a referring to files by their location on a disk drive, developers can instead refer to a unique identifier referring to the file or piece of information and let OpenStack decide where to store this information. This makes scaling easy, as developers don’t have the worry about the capacity on a single system behind the software. It also allows the system, rather than the developer, to worry about how best to make sure that data is backed up in case of the failure of a machine or network connection.
- Cinder is a block storage component, which is more analogous to the traditional notion of a computer being able to access specific locations on a disk drive. This more traditional way of accessing files might be important in scenarios in which data access speed is the most important consideration.
- Neutron provides the networking capability for OpenStack. It helps to ensure that each of the components of an OpenStack deployment can communicate with one another quickly and efficiently.
- Horizon is the dashboard behind OpenStack. It is the only graphical interface to OpenStack, so for users wanting to give OpenStack a try, this may be the first component they actually “see.” Developers can access all of the components of OpenStack individually through an application programming interface (API), but the dashboard provides system administrators a look at what is going on in the cloud, and to manage it as needed.
- Keystone provides identity services for OpenStack. It is essentially a central list of all of the users of the OpenStack cloud, mapped against all of the services provided by the cloud, which they have permission to use. It provides multiple means of access, meaning developers can easily map their existing user access methods against Keystone.
- Glance provides image services to OpenStack. In this case, “images” refers to images (or virtual copies) of hard disks. Glance allows these images to be used as templates when deploying new virtual machine instances.
- Ceilometer provides telemetry services, which allow the cloud to provide billing services to individual users of the cloud. It also keeps a verifiable count of each user’s system usage of each of the various components of an OpenStack cloud. Think metering and usage reporting.
- Heat is the orchestration component of OpenStack, which allows developers to store the requirements of a cloud application in a file that defines what resources are necessary for that application. In this way, it helps to manage the infrastructure needed for a cloud service to run.
OpenStack Logical architecture –
Openstack introduction – recap
- OpenStack – open source software for building IaaS
- OpenStack release cycle is every 6 months.
- OpenStack is an umbrella over multiple independent programs (components).
- All OpenStack components talk RESTful API.
- Most OpenStack components have dedicated DB.
- (SQL) and MQ (QP), some talk to 3rd party components using their native APIs