Archive for the 'twisted' Category

Ganeti Web Manager 0.5

We’ve released Ganeti Web Manager 0.5.  Ganeti Web Manager is a Django based web application that allows administrators and clients access to their ganeti clusters. It includes a permissions and quota system that allows administrators to grant access to both clusters and virtual machines. It also includes user groups for structuring access to organizations.

Here are some notable changes in the second release of Ganeti Web Manager:

  • New status Dashboard
  • NoVNC Integration
  • Virtual Machine Re-installation
  • Numerous bug fixes and improvements.

Read the full change log for more details.

Status Dashboard

The front page of Ganeti Web Manager is now a status dashboard for both admins and users.  This is the first thing users will see when they log into Ganeti Web manager.  It enables them to quickly assess what is happening within their cluster, or their portion of it.  The information is filtered by permissions to give each user a custom view.  Here is a list of things it shows:

  • Cluster status – highlights running virtual machines, nodes, and resource usage.
  • Personal resource usage – a summary of resources used, and if applicable, remaining resource quota.
  • Errors – A single place to view any errors connecting to ganeti, or deploying and managing virtual machines.

NoVNC Integration


Our in browser console now uses NoVNC, an HTML5 VNC client.  This replaces an older applet, that required the java runtime be installed.  Now users will be able to view the console natively within their browser.  NoVNC uses web sockets for communication so it works best in Chrome, but Firefox is also supported through the use of a Flash applet.  We’re looking forward to Firefox 4.0 and it’s native web socket support.

Behind the scenes we use a VNC proxy that sits between our secure network and the web.  It securely handles connection requests from NoVNC.  This proxy allows you to keep your Ganeti cluster on a protected network, but expose secure access to a console as needed.

Touchscreen 2.0

Touchscreen is a platform building interactive kiosk displays.  We built it to show off our data center, which houses some of the worlds most important open source projects, and for status displays within our network operations center.  We have plans to build a status dashboard for our development team as well.

Touchscreen 2.0 is nearly complete rewrite of the framework.  The original version was written using OpenLaszlo a language that compiles XML and Javascript into Flash applications.  OpenLaszlo served its purpose but was a niche language that very few people knew, or would use elsewhere.  Ever increasing browser speeds, better support for SVG & canvas, along with great Javascript libraries such as Jquery and Raphael have enabled us to rewrite touchscreen using well known technologies.

Continue reading ‘Touchscreen 2.0′

AJAX Requests for Realtime Messaging

AJAX is ubiquitous these days.  Its incredibly common to see pages update themselves.  Your Twitter homepage, or Facebook timeline will periodically update itself seamlessly integrating the new content into the interface.

Websites with realtime updates often poll for new updates.  They do this because HTTP is a stateless protocol, as soon as your request completes the server can send no more information unless you make another request.  It works, but your stream is not realtime, your content is delayed.  Delay is fine for a news article, but not something interactive like chat or a game.  Interactive applications are negatively affected by latency in message delivery.  Realtime messaging is required for a good experience.

The interactive display outside the Open Source Lab’s server room needed realtime messaging for the display to quickly respond to user input.  It’s powered by Touchscreen 2.0, which ships with a realtime messaging server; a message queue which clients can push and pop via a REST API.  It responds in 100ms providing seamless interaction between two web browsers.  Let’s talk about how it works.

Continue reading ‘AJAX Requests for Realtime Messaging’