Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Abiquo at a Glance

Abiquo is a Cloud computing platform that allows you to 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

A datacenter consists of:

  • A set of hypervisors
  • Storage servers
  • Network File System (NFS)
  • DHCP
  • Abiquo remote services


Abiquo is designed to manage multiple datacenters.

Hypervisors

Abiquo manages multiple hypervisors and conversions between hypervisors.
Managed by vendor-provided API:

  • ESXi
  • XenServer
  • Hyper-V
  • VirtualBox

Managed by Abiquo AIM (libvirt-based agent)

  • KVM
  • Xen

AIM

AIM is the Abiquo Infrastructure Management agent for hypervisors without an API.
For KVM and Xen hypervisors, AIM provides:

  • disk copy
  • VLAN configuration
  • virtual machine monitoring capabilities

AIM is an Apache thrift-based server and it is written in C++

Abiquo Remote Services

The Abiquo platform uses Remotes Services to manage the hypervisors. The remote services found in each datacenter are:

  • Appliance Manager
  • Business Process Manager
  • Discovery Manager
  • Virtualization Manager
  • Storage System Manager
  • Virtual System Monitor

Appliance Manager

Provides the ability to upload and download VM templates into repositories available to our datacenter. Exposes its data and operations via a REST API implemented with Apache Wink

Business Process Manager

Provides conversion of VM templates between disk formats supported by hypervisors, thus eliminating vendor lock-in.

  • Conversion requests and responses are submitted via message queues
  • Requests are processed one a time, because working at NFS level implies being careful of I/O conflicts
  • Uses RabbitMQ as message broker

Discovery Manager

Provides hypervisor discovery of the following:

  • Hypervisor type
  • Deployed virtual machines
  • Physical machine capabilities and resources

Uses API provided by hypervisor vendor. Exposes its data and operations via a REST API implemented with Apache Wink

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 virtual machines and network and storage configuration for virtual machines. Job requests and responses are submitted via message queues (RabbitMQ) with an actor-based model using Akka.

Storage System Manager

This is the common layer to unify and manage the storage capabilities of the storage servers through management of iSCSI volumes.
It exposes its data and operations via a REST API implemented with Apache Wink.

Virtual System Monitor

Manages a set of monitors. Each monitor looks at the state of virtual machines 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). It exposes its data and operations via a REST API implemented with Apache Wink

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 implemented with Apache Wink being consumed by our FLEX client.

Architecture Diagram

Technology Stack

  • Apache projects
    • Wink 
    • Thrift 
    • Commons
  • Others
    • MySQL
    • Redis 
    • RabbitMQ
    • Akka 
    • Libvirt
  • No labels