# ManageIQ

ManageIQ is an open source cloud management platform. It was founded by Red Hat as a community project in 2014, and forms the basis for its CloudForms product. It allows centralized management of various virtualization, private cloud, public cloud, containers, and software defined networking technologies.

## History

The ManageIQ code base was originally developed by ManageIQ, Inc., from 2006 onwards. The product was first launched as Enterprise Virtualization Manager (EVM) Suite in 2007. One co-founder, Oleg Barenboim, had previously been lead architect at Novadigm, and became ManageIQ's CTO. The other co-founder, Joseph Fitzgerald, was CTO at Novadigm. The CEO of ManageIQ was Albion Fitzgerald, also CEO at Novadigm. The Register described ManageIQ as a "Novadigm redux for a cloudy world, rather than a physical one." ManageIQ became an enterprise cloud management company, providing "management solutions to deploy and optimize private, public, and hybrid clouds" for customers as of 2012. Over the next 5 years, ManageIQ improved the product and customers increased. ManageIQ, Inc. was named Gartner Cool Vendor in 2008. In 2012, ManageIQ was based in Mahwah, New Jersey and specialized in virtualization and cloud management tools.
In December 2012, Red Hat acquired ManageIQ, Inc. for $104m. When it was acquired, ManageIQ referred to both the company and its proprietary cloud management program of the same name. After purchasing the ManageIQ company and the ManageIQ software, Red Hat rebranded the software as CloudForms shortly afterwards. When Red Hat released the ManageIQ, Inc. code under the CloudForms product name, it replaced the previous implementation based on the Deltacloud and Aeolus projects. The first publicly available release was CloudForms 3.0, released in late 2013.
In June 2014, Red Hat open sourced the code base under the project name ManageIQ, and founded the ManageIQ project to oversee its development. When the source code was released, by May 2014, it could "handle cloud management tasks such as tag-based policy and orchestration, capacity management, and financial chargeback." The software could manage OpenStack-based clouds and also clouds running on VMware, Microsoft, and Amazon, according to PCWorld.

## Software and features

ManageIQ's software offers the following capabilities:
* Self-service, allowing IT staff to present a catalog to users from which they can select automated services, such as provisioning a new virtual machine.
* Compliance enforcement, allowing an IT department to enforce certain compliance policies.
* Optimization, allowing IT staff to optimize the resource utilization of an environment, for example using right sizing and capacity planning.

## Supported platforms

ManageIQ can manage the following platforms:
| Platform type | Supported platforms |
| Virtualization | VMware vSphere, oVirt/Red Hat Virtualization, System Center Virtual Machine Manager, IBM Power HMC |
| Private Cloud | OpenStack, VMware vCloud, Azure Stack, IBM PowerVC, IBM Cloud Infrastructure Center |
| Public Cloud | Amazon Web Services, Microsoft Azure, Google Cloud Platform, Oracle Cloud, IBM Cloud VPC and Power Virtual Servers |
| Physical Infrastructure | Lenovo XClarity, Redfish, Cisco Intersight |
| Software defined networking | OpenStack Neutron, Nuage Networks, VMware NSX-T |
| Software defined storage | OpenStack Cinder, OpenStack Swift |
| Containers | Kubernetes, OpenShift, Amazon Elastic Kubernetes Service (EKS), Microsoft Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), IBM Cloud Kubernetes Service (IKS), Oracle Container Engine for Kubernetes (OKE), VMware Tanzu Kubernetes Grid (TKG) |
| Automation/Configuration | Ansible Tower / AWX, Foreman, IBM Terraform (via IBM Cloud Pak for Watson AIOps) |

## Theory of operation

ManageIQ is a manager of managers and as such, it needs to connect to other management systems to function. These other management systems are called providers in ManageIQ parlance. ManageIQ will connect to the providers via their API.
For each configured provider, ManageIQ will continuously discover inventory. The type of inventory depends on the provider, for example in the case of VMware vSphere it will be virtual machines, hypervisors, and other relevant elements. It will also discover relationships between the elements, for example, the fact that a virtual machine runs on a hypervisor, and listen for events. Certain events that indicate a change in the environment will result in a full or partial refresh of the inventory. The end result is a mirror of the inventory that is nearly instantaneously up to date with respect to the original inventory managed by the provider.
If configured to do so, ManageIQ will also capture metrics like CPU and memory usage on the discovered inventory.
All captured information about a managed environment is stored in a database called the Virtual Management Database (VMDB). As of March 2016, the VMDB schema described in excess of 200 entities and relationships.

## Architecture

ManageIQ is written in the Ruby programming language and uses the Ruby on Rails framework. The ManageIQ software is shipped as a pre-built virtual appliance, roughly 1GB in size. The appliance is based on the CentOS operating system, and includes an embedded PostgreSQL database. Since the Darga release, a container-based version has also been made available. In the Jansa release, a modified version was built that can run on Kubernetes and OpenShift.
An appliance can be used on its own, or it can be part of a distributed architecture. In this case, the administrator would configure zones, regions, and a single global region. Appliances can be assigned to a specific zone or region, and are configured with specific roles so that work is coordinated with the region. Most roles are multiserver and work is distributed automatically via a queue, but some roles like the database are singletons. Appliance roles can also be configured for failover in order to provide high availability.

## Releases

The ManageIQ project uses a time based release cycle where a new version is released approximately every 6 months.
Releases are named after chess grandmasters, where subsequent releases names start with consecutive letters of the alphabet. The following versions have been released so far:
| Release name | Release date | New features introduced |
| Anand | 2 September 2014 | First open source release of the ManageIQ, Inc. code base |
| Botvinnik | 12 June 2015 | Support for OpenStack undercloud, Foreman; improved AWS support; REST API supersedes SOAP API |
| Capablanca | 5 December 2015 | Support for Azure, Kubernetes, OpenShift; new self-service UI |
| Darga | 7 June 2016 | Support for Google Cloud Platform, Ansible Tower; Software-defined networking support for Neutron, public clouds |
| Euwe | 20 December 2016 | Support for new provider types Storage and Middleware; improved Container Management and Public Cloud Support |
| Fine | 17 May 2017 | Automation with Ansible, improved AWS support including storage, new Physical Infrastructure provider type |
| Gaprindashvili | 30 January 2018 | Generic Objects, Lenovo XClarity Provider, Alerts Management |
| Hammer | 15 January 2019 | Support for Ansible Tower Workflows, New Network Providers for Nuage and Redfish, virtual-to-virtual (V2V) transformations |
| Ivanchuk | 18 September 2019 | Improved user experience, leveraging ansible-runner, better OpenStack tenant integration |
| Jansa | 22 September 2020 | Podified build, RPM based builds, OpenShift 4.x support |
| Kasparov | 4 February 2021 | Support for IBM Cloud VPC and Power Virtual Servers, IBM Terraform, IBM AutoSDE (now Kyndryl AutoSDE), and VMware NSX-T providers, VMware Content Library, improved UI, and backup/restore for modified builds. |
| Lasker | 21 July 2021 | Support for Amazon EKS, physical storage hosts, chargeback for containers and configured systems, Kubernetes operator, performance and security enhancements for podified builds, and accessibility improvements. |
| Morphy | 14 February 2022 | Support for IBM PowerVC, Oracle Cloud, cloud Kubernetes services (AKS, GKE, IKS, OKE), and cloud database services (Amazon RDS, Azure Databases, Google Cloud SQL, IBM Cloud Databases, Oracle Cloud Databases) |
| Najdorf | 18 July 2022 | Support for IBM Power HMC, IBM Cloud Infrastructure Center, Cisco Intersight, VMware Tanzu Kubernetes Grid, cross cloud-provider image import, and standalone object storage managers. |
| Oparin | 6 Jan 2023 | Independent oVirt and AWX providers, update to Rails 6.1, support for PostgreSQL 13 and Ruby 3, and general security and maintenance improvements. |
| Petrosian | 14 Sept 2023 | Embedded Workflows prototype, various provider updates including service catalog support, Storage Services, Cloud Object Store Objects. |
| Quinteros | 29 May 2024 | Embedded Workflows phase 1, non-Rails provider workers, various provider updates. |
| Radjabov | | |