Abiquo at a Glance
Abiquo is a cloud computing platform that enables you to manage public clouds and private clouds. You can use your own physical infrastructure to provide infrastructure as a service. It is a hypervisor agnostic model (no vendor lock-in) and it provides a unified interface for managing:
- VM templates
- Compute
- Network
- Storage
- Events
Abiquo Datacenters
In private cloud, a datacenter consists of:
- A set of hypervisors
- Storage servers (for optional managed storage)
- Network File System (NFS)
- DHCP
- Abiquo remote services
Abiquo is designed to manage multiple datacenters and public cloud providers.
Hypervisors
Abiquo manages multiple hypervisors and conversions between hypervisors.
Managed by the vendor-provided API:
- ESXi
- XenServer
- Hyper-V
- Oracle VM
Managed by the Abiquo AIM agent using libvirt
- KVM
Abiquo Remote Services
The Abiquo platform uses Remotes Services to manage the hypervisors. The Abiquo remote services found in each datacenter are:
- Appliance Manager
- Business Process Manager
- Discovery Manager
- Virtualization Manager
- Virtual System Monitor
- Remote Access Manager
Appliance Manager
Provides the ability to upload and download VM templates into repositories available to the datacenter. Administrators may use the AM API to manage templates.
Business Process Manager
Provides conversion of VM templates between disk formats supported by hypervisors and export to public cloud providers, thus eliminating vendor lock-in.
- Conversion requests and responses are submitted via message queues
- Requests are processed one at a time, because working at NFS level implies being careful of I/O conflicts
- Uses RabbitMQ as a message broker
Discovery Manager
Provides hypervisor discovery of the following:
- Hypervisor type
- Deployed VMs
- Physical machine capabilities and resources
Uses the API provided by the hypervisor vendor.
Also manages external storage.
Virtualization Manager (Virtual Factory Remote Service)
This is the common layer to unify and manage the virtualization capabilities of each hypervisor type. Manages the life cycle of the VMs and network and storage configuration for VMs. Job requests and responses are submitted via message queues (RabbitMQ) with an actor-based model using Akka.
Virtual System Monitor
Manages a set of monitors. Each monitor examines the state of VMs and notifies changes. It uses Redis as a subscription store and the pubsub mechanism for event notifications from each monitor. State changes are notified via message queues (RabbitMQ).
Server
The Abiquo Server manages an arbitrary number of datacenters by accessing their remote services. Communications between modules and datacenters are performed via RabbitMQ. MySQL stores the system configuration and state. The platform also offers enterprise functionality: pricing, scheduling, security. The server exposes its data and operations via a REST API.
Architecture Diagram
Technology Stack
The Abiquo technology stack includes the following projects.
- Apache projects
- Thrift
- Commons
- Jclouds
- Others
- MySQL (MariaDB)
- Redis
- RabbitMQ
- Akka
- Libvirt
- Jersey