Xen Orchestra: a Web interface for XCP

Maybe you heard few years ago, a project called Xen Orchesta. It was designed to provide a web interface for Xen hypervisor with Xend backend. The project started in 2009, but paused one year later, due to lack of time from the original designer. As you can read on the project website, XO is now re-developed from scratch. But its goal now is to provide an interface for XCP. Why XCP? Because, with XAPI, it offers a full set of features with unmatched possibilities for a Open Source product.
Despite this, XCP lacks of a free, simple and open source interface. That’s why the project reboot. Other interesting projects are now dead (like OpenXenManager, a clone of XenCenter). To avoid this kind of scenario, a clear intention for XO team is to provide a living project: “release often” policy, listening to the community, and deliver commercial support to getting resources needed for the project life. The original team behind XO have created their own company to sustain this durability to XO. Furthermore, XO license is AGPL.

Current state

XO was just rebooted in December. But we want a first version rapidly, at least for testing purpose (architecture validation, feedback, suggestions). That’s why this release is quite light: we focused on global design, picking right technologies for the future. Because we think it’s better to analyse and implement a strong basis rather than doing ugly stuff which can jeopardize the project later. So, we are proud to present you XO “Archlute” which is the first step in web management for XCP.

Under the hood

Architecture

The first version of XO had an important scalability problem: each client (PHP page) connected to each XCP server leading to an exponential number of connections (see figure below). Furthermore the information was transmitted in its wholeness regardless of what the client already knew.

In the new version of XO we have decided to create a new component, XO-Server, which has for primary function to serve has a pseudo-proxy server between the clients and the XCP servers. Thanks to Xen-API events, it stores an up-to-date cache of the XCP servers’ state and permits XO to be very responsive.
Additionally, because it knows which data the clients already have, it can transmit only what changed since the last update and preserve has much as possible its clients’ bandwidth.

There is much advantage to this new architecture:

  • XO-Server contains all XO logics (such as users management, pools management, …) so the client code can stay as simple as possible;
  • if need be, a new client (dedicated to smartphones for instance) could be created very easily and share its configuration with the current one.

The other benefice of XO-Server is its position: on the top of all your servers. It guarantees the possibility to add exciting features for XO, like fine grained statistics, energy management, tasks automation, transparent migration between pools etc.

Technical choices

We have chosen proven components to build XO on it to guarantee its robustness and is evolutivity.
PHP 5.3 is the main language used as much for XO-Server as XO-Web. We do not use any PHP frameworks but we try to keep our code as modular as possible thanks to the wonderful tool which is Composer.
The design of XO-Web is built using the Bootstrap framework which permits XO to be almost as easy to use on smartphones/tablets as it is on desktop computers.
We also use Backbone.js to provide a dynamic interface which stays always up to date. In later versions we will probably extends its usage to make the interface as responsive as possible in limiting round-trips to the web server.
In the future, we will look into using Processing.js to provide advanced visualizations of your Xen infrastructure, like this “molecule” design:

More resources:

Get involved

Express your ideas: go on this page to post ideas of features you will like included on XO. More you express your interest, more the project will be great.
Download
For now, if you are a user, you can download the tarball here, and follow the README for install steps. If you are a developer, you can clone our git repo (xo-server here and xo-web here). For bug reports, please use this repository.
This release is a great opportunity for you to express what do you expect from a XCP web UI.

What’s next?

Well, first, we’ll add missing views, reorganize some pages, refactoring data and correct reported bugs (that’s why your feedback is essential!). We’ll publish then a roadmap, extending the project visibility. All project news are available on the main project page, and major announcements will be also published on Xen blog.

Read more

Xen Project Announces Performance and Security Advancements with Release of 4.19
Aug 05 2024

New release marks significant enhancements in performance, security, and versatility across various architectures.  SAN FRANCISCO – July 31st, 2024 – The Xen Project, an open source project under the Linux Foundation, is proud to announce the release of Xen Project 4.19. This release marks a significant milestone in enhancing performance, security,

Upcoming Closure of Xen Project Colo Facility
Jul 10 2024

Dear Xen Community, We regret to inform you that the Xen Project is currently experiencing unexpected changes due to the sudden shutdown of our colocated (colo) data center facility by Synoptek. This incident is beyond our control and will impact the continuity of OSSTest (the gating Xen Project CI loop)

Xen Summit Talks Now Live on YouTube!
Jun 18 2024

Hello Xen Community! We have some thrilling news to share with you all. The highly anticipated talks from this year’s Xen Summit are now live on YouTube! Whether you attended the summit in person or couldn’t make it this time, you can now access all the insightful presentations

Get ready for Xen Summit 2024!
May 24 2024

With less than 2 weeks to go, are you ready? The Xen Project is gearing up for a summit full of discussions, collaboration and innovation. If you haven’t already done so – get involved by submitting a design session topic. Don’t worry if you can’t attend in person,