Abiquo at a glance• Cloud computing plattform that uses our own physical infrastructure.• Hypervisor agnostic model (vendor lock-in)• Provides an unified interface for managing: o Image templates o Compute o Network o Storage o Eventing
What is the problem to solve?Datacenter receipt• A set of hypervisors• Storage servers• Network File System (NFS)• DHCP• Abiquo remote services Abiquo must be able to manage multiple data centers. How to manage N datacenters?
Hypervisors• Managed by vendor provided API o ESXi, XenServer, Hyper-V, VirtualBox• Managed by Abiquo AIM (libvirt based agent) o KVM, XEN Libvirt XenServer ESXi Hyper-V VBox
AIMProvides disk copy, vlan configuration and virtual machinemonitoring capabilities to KVM an Xen hypervisors.• Apache thrift based server.• Written in C++.
Appliance managerProvides the ability to upload and download image templatesinto repositories available for our datacenter.• Exposes its data and operations via a REST API implemented with Apache Wink.
Bussiness process managerConversion of virtual image between disk formats supported byhypervisors, thus eliminating vendor lock-in.• Conversion requests and responses are submitted via message queues.• Each request is processed once a time, since working at NFS level implies taking care about I/O conflicts.• Uses RabbitMQ as message broker.
Discovery managerHypervisor discoverin:• Hypervisor type.• Deployed virtual machines.• Physical machine capabilities and resources.• Uses hypervisor vendor provided API.• Exposes its data and operations via a REST API implemented with Apache Wink.
Tarantino (2.0 main character!!)Common layer to unify and manage the virtualizationcapabilities of each hypervisor type.• Life cycle of a virtual machine.• Network and storage configuration for virtual machines.• Jobs request and response are submitted via message queues (RabbitMQ).• Actor based model using Akka
Storage system managerCommon layer to unify and manage the storage capabilities ofthe storage servers.• Management of ISCSI volumes.• Exposes its data and operations via a REST API implemented with Apache Wink.
Virtual system monitorManage a set of monitors. Each monitor looks at the state ofvirtual machines and notify about changes.• Uses Redis as subscription store and the pubsub mechanism for event notifications from each monitor.• State changes are notified via message queues (RabbitMQ).• Exposes its data and operations via a REST API implemented with Apache Wink.
Server "the boss"Manage an arbitrary number of datacenters by accessing theirremote services.• Communications between modules and datacenters via RabbitMQ• MySQL stores our system configuration and state.• Enterprise functionalities: pricing, scheduling, security...Exposes its data and operations via a REST API implementedwith Apache Wink being consumed by our FLEX based client.