Bringing technologies from outer space.

Everything is about real time

One of the most important thing about Archipel is real time. Every event is pushed as soon as it occurs. Nothing is polled. When an entity - virtual machine, hypervisor or whatever - has something to say, the information is sent over the platform. If nothing happens, well, nothing happens. For the needs of Archipel, we wrote a port of Growl for Cappuccino applications, smartly named GrowlCappuccino. Thanks to this framework, you are notified as soon as an event occurs, wherever you are doing on the application.

All the real time stuff is done thanks to XMPP (formely known as Jabber). Each virtual machine, hypervisor or controller is a XMPP entity able to send and receive messages, commands and information from other entities, real or virtual.

Like GrowlCappuccino, for Archipel needs, we also wrote a Cappuccino framework to provide high level abstraction layer of XMPP commands. It relies on Strophe.js, a pure javascript framework, and turns it into Cappuccino objects. This framework, StropheCappuccino is also available for free.

Libvirt, the universal translator

Libvirt is an open source library that allows applications to drive virtualization engines using an unified protocol. We are not only talking about starting or shutdowning a virtual machine, but also defining them, setting hypervisor's networks and creating storage pools. Libvirt is compatible with KVM, OpenVZ, Sun's VirtualBox, Xen and even with VMware. And so is Archipel (note that all hypervisors haven't the same level of support. We strongly suggest to use KVM). You can use different virtualization engines and control them all from the same web interface.

Libvirt is packaged in a majority of Linux distributions. It is very easy to install and configure.

Current support

Note that at the moment we only support KVM/QEMU. This is due to lack of features or bugs on other libvirt's drivers. Xen support is coming soon.

Designed to be modular

Because extensability is great, Archipel is built around a foundation (Archipel Core) basically a XMPP roster and a module loading system. No less, no more. All virtualization features are bundled into a set of modules that extends functionalities step by step. You can load the "Virtual Machine Controls" module then you'll be able to control your virtual machines ; Load the "Hypervisor Networks" modules, and you'll be able to manage the hypervisor's networks etc. Archipel comes with a set of modules to manage your virtual infrastructure. But if you have some very specific needs, creating your module is very easy.

On the hypervisor part, we also support modules using python's code injection. This method is very flexible and makes development easy because there is no plotted API. You can use all the core features, right from your module.

Download the SDK

Archipel has different types of sample modules, for both GUI and hypervisor sides. You can download these samples if you want to try to build your own great features.

Learn the basics

Once you get the SDK, you may need to learn how it works. Follow this tutorial in order to learn the basics of Archipel bundle development.

VNC anytime, anywhere

Archipel includes a VNC client right from one of its module. You can control your virtual machine's screens. If your virtual machine is a graphical terminal (Linux Xorg or Windows), you can use your mouse right from your browser to do anything you want, just like you were in front of a real computer. This VNC module uses only Javascript, thanks to noVNC. No Java anymore.



Worldwide connectivity

Archipel completely relies on XMPP so its entities can communicate all over the world, in a secure way using XMPP Server-to-Server communication (s2s) feature. You can remotely control your distant datacenters – from your garage to the other side of the world – in real time. Create and run a virtual machine, check distant hypervisors' health and stats, move virtual machine from a host to another, without moving from your chair. Archipel doesn't know distance.

Learn how to configure s2s

If you want to configure a multi-site virtual infrastructure, follow this tutorial to learn how to configure your XMPP servers to handle server to server secure communication.

Put servers in cluster

Even if you have only one datacenter, you can avoid the presence of a single point of failure (SPOF) by building. Learn how!

The dark side of the moon

On the server side, Archipel uses exclusively Python. This language is fast, easy and have a bunch of modules. Python runs under every operating system. The principal module used by Archipel is xmpppy, the StropheCappuccino equivalent in Python. All the code is bundled into one folder that can be anywhere on the file system. Deployment is incredibly easy. No database, no webserver, nothing. All is already packaged in Archipel.

Archipel runs as daemon, and support network or XMPP servers failures. If your network goes down, Archipel will wait for services to be up again and will reconnect by itself, keeping safe your virtual.

The beauty of Cocoa in a browser

Objective-J – the main user interface technology – is to Javascript what Objective-C is to C and Cappuccino mimics Cocoa. It embeds Foundation, AppKit, Core Animation, MapKit and many more Frameworks. If you know Mac or iPhone development, you surely already know Cappuccino.

All of these tools allow to build really great applications in no time, focusing on the features, not on the code.

Last news

Common error tracking

I notice that most of people don’t know how to deal with errors in Archipel. This post will try to help people to know how to manage problems in Archipel, track the origin of the errors, and how to fix them, or at least being able to report a correct issue. First let’s see how I organize my desktop. This is my personal preference, but I guess it’s a good starting point. I have two screens, and this is sincerely the bare minimum for me. Screen 1: Screen 2: As you can see, on the first screen, I have my [...]

The power of XMPP XMPP is an instant messaging protocol. That is the one used by many messaging services, including Google Talk. Archipel uses this technology to communicate with virtual machines, hypervisors and you. All events – whatever they are – are pushed in real time over XMPP.
The unicity of Libvirt Libvirt is a project that provides an abstraction layer in order to send commands to virtualization engines. Ok that was technical. To simplify, thanks to libvirt, you can pilot KVM, QEMU, Xen, VMWare, OpenVZ, Virtual Box and many more from a unique system.
Open Source And guess what? All this work is released under an open source licence (AGPL). So anybody can participate to improve Archipel's code, features and documentation. If you want to enroll, send us an email to explain what you may be able to bring to the project.
  • Professional Support We will provide companies with professional support soon.
  • Contact us Contact us for any question about the project. For community support, please use the mailing list).