Friday Jul 25, 2008

Planes, Virtualization Pools and Automobiles

The readers of the previous blog entry will remember that our brave xVM CTO was flying out to battle the denizens of user experience and UI implementation for xVM. Armed with the trusty weapon (sharp tongued wit) battle ensued.

It actually turned out to be a total anti-climax. Meetings that were thought to take a few days were over in hours, consensus was reached, understanding was had and people left happy.

Which brings me to think of how did we get to this point? The obvious reasons are around the ability to communicate across distance effectively, while these days we are armed with many forms of communication, webex, remote whiteboards, video conferencing.... how many of these really work in day to day communication. If I were to rationalize this particular case the problems were probably based in context and background. I was trying to explain things from a context and background that the engineering team probably didn't have or appreciate, so no end of phone calls or emails were going to get us through it. So how do we avoid this in the future? <sigh> You need to communicate more Mike!

One of the subjects of much UI discussion was a concept in Ops Center 2: Virtualization Pools. 

A virtualization pool is one of the critical constructs in Ops Center 2, it allows you to gather a number of xVM Servers together in a resource pool and apply resource configurations to them as a pool. These things are actually pretty cool, you are constrained by a number of rules as to which xVM Servers can be added into a pool, but once configured, the pool and its operations will look after many of the features of virtualization that otherwise a user would have to specifically manage. To be added to a virtualization pool an xVM Server must meet the following constraints:

  • Be on the same physical network as other xVM Servers in the pool. The xVM Server may be on many physical networks (multiple NICs) but one has to be common across all of the xVM Servers in the pool. Good practice suggests that this is often a dedicated physical migration network.
  • Be able to see the same storage source for guests. A really great feature is that Ops Center will manage and track the location of all of your guest storage, it will even move it around for you (cold migration) if you so desire (more on this in a future blog). These storage sources in Ops Center are called Storage Libraries, storage libraries are associated with Virtualization Pools and guests, ISOs, virtual appliances are all managed within storage libraries.
  • Be of the same same chip architecture, its pretty difficult to live migrate between an Intel instruction set with its extensions to an AMD instruction set with its extensions

If these are all fulfilled, Ops Center will manage all of the live / warm migrations between the guests and they can be done in confidence as all of the relationships are being managed that help such migrations succeed. Once you have these setup you can apply policies to the Virtualization Pool to load balance, pack load etc. These can then recommend or automatically enact migration actions across the pools.

How does this relate to UI design? Well consider the fact that Ops Center is designed to manage physical and virtual aspects of your environment, it can manage the Lights Out Management features of your hardware as well as migrate your virtualized operating system between xVM Servers. Original UI designs had all of this information bundled together in a navigation pane. So effectively from the same UI construct you could view the health of your blade and be able to migrate a windows operating system. I argued that they should be split up, as they were in fact two very distinct user interactions. One was related with status, configuration and organization of hardware and software, the other with the runtime resource management of your virtualized environment - I won :-)

Obligatory disclaimer: all screenshots are from development systems and are incomplete.

Both of these images are from the navigation pane in Ops Center 2. The image on the left shows a navigation tree sample for the hardware and software inventory. You can view all of the assets in a natural hierarchy, e.g. System Chassis -> Blade -> OS -> Applications, or you can create your own groups at whatever level you wish. Groups can be homegenous (e.g. all Operating system entries) in which case you can take actions across assets or they can be heterogeneous for organizational display purposes. Groups can obviously include other groups.

On the right, we have the afore-mentioned resource management view. Here we are showing Virtualization Pools containing xVM Servers running guest operating systems. Note: the naming structure of the tree nodes is not up to specification in these images. Selecting any item in the navigation panes will change to reveal the details in the content panel, together with actions that can be taken.


 The image above gives an overall view of a selected virtualization pool for context.

Which brings me back to communication: emails with inclusions. My email volume seems to be on the continuous uptick and no amount of filtering and smart email boxes is helping. In fact my main pain point is email conversations where people always reply to the entire email message including their comments inline through the email. Do this enough times and try and read this on your iphone and you will be quickly looking for the local padded cell. I was going to include such an email example here, but decided not to for obvious reasons ;-)



Planes: flying back from Colorado was tortuous, which leads to a question: what is the difference between these two airlines?

The one on the right is proud of its name? Maybe. The one on the left is late? Probably.

Actually the airline on the left managed to cancel my first flight out, reschedule me on a flight 6 hours later and then cancel that flight. The airline on the right managed to keep all its scheduled flights that day and got me home. Somehow, like many I expect, I remain tied to the airline on the left through years of frequent flyer miles, a credit card that builds up frequent flyer miles etc. etc.  The conflicting part of this, is that I seem to have lost my status with United, which is good from the perspective of I obviously haven't been doing that much business travel recently, but bad because I get to enjoy the rear of the plane where my 17" MacBook Pro can't physically open. This however appears to be on the change as next week I set off on a business trip to Europe, when we will be playing where in the world will this blog come from next?


Automobiles: A passion, I recently bought a Lexus ISF, even more recently its been tuned and modified. I took it to Laguna Seca, 0-60 in 3.9 seconds.

More from Europe....... 


Monday Jul 21, 2008

UI whirlwind

Tomorrow, I head out on the 7:34am (ugh) flight out to Broomfield, CO to have a whirlwind meeting about the Ops Center UI currently in development. User Interface design has always been one of my passions, like may others I appreciate well structured, well designed user interfaces and in xVM Ops Center and xVM Server its something we are focusing on.

We are now at a point where opinions and concepts have diverged, so phone and email doesn't work, so face to face it is!

Our hosted inventory service was our first attempt to bring a more usable experience to the browser, it was built using mostly server side technology which generated client side javascript.

Sun Inventory UI

One of the main challenges was scale, the Inventory service at Sun is intended to be a simple asset management service, that is free, that reflects the software and hardware you have registered with us. Of course success has its problems in terms of scalability and some pretty fast footwork had to be done to allow some of the normally most basic UI components to scale up to the real use. For example having a table scale into thousands of entries is no big deal when the UI client is local or across a persistent network connection, putting it in a browser required some thought in terms of protocol and memory management. Overall it came out pretty well but like all early attempts of this style of interface, there is room for improvement which is happening release after release.


xVM Ops Center 1.x attempted to build on the inventory service, using the same concepts and taking advantage of some of the work that was done in scalability. From a style perspective we deliberately kept it very similar to the inventory service hoping that the synergy would be appreciated between the two applications. The richness of functionality and layering of user interaction in the flows however caused us significant design challenges and compromises were made to make things operational that turned out to be far from ideal. The core challenge has always been around the user model. Ops Center is a systems management application at its core and many of these applications struggle to identify with what leads from a user experience the hardware / software under management or the action the user wishes to take. Obviously both are needed, but ultimately which leads, asset or task. In Ops Center 1.x we tried to apply a task based model but instead ended up with a hybrid model, where at times the hybrid nature was inconsistent. Overall the user experience was a great step forward but we knew we had to something more in the next release.

xVM Ops Center 2 is a major upgrade and re-work of Ops Center 1.x. At the outset we had the core objective of adding virtualization management and a high performance user interface that would be familiar to users and would hopefully require minimal training to operate. I will comment about the functional capabilities and how we achieved some of them in future posts, but from a UI perspective we have completely reworked it.

The first basic decision was to place considerable more focus on information segmentation and the general flow in which a user operates. Next we had to develop the UI in a way that we knew we could make perform. Creating AJAX applications still seems to be much more towards the art end of the computer science scale and we made the decision to focus much more on Javascript expertise and development.  Leveraging open source toolkits we are able to create sophisticated user interfaces that are actually looking really good. These interfaces are a complete departure from the Ops Center 1.x interfaces although we have been careful to ensure that the concepts are similar to someone who has used the previous versions.

The screenshots here are far from final and represent some views into our ongoing work on Ops Center 2. The left hand side of the browser window offers a familiar accordion  style category selection model, where the user can select from the category of information they are looking for. Within a category, the user may select their area of interest, this could range from a group of virtual guests to a physical network configuration. The Center pane reflects the relevant content about the selection and optional content tabs are available based on the amount and type / category of content. The right hand of the user interface reflects the contextual tasks or workflows the user can undertake. What is great is that all of this works in the browser and is pretty "snappy".

Wizards are used when complex configurations with many steps are required and we have really tried hard to make the most complex actions as simple as possible, although granted this is an area for continual refinement. 

The wizard to the left shows a virtual guest being created through xVM Ops Center. The great thing about this, is that if you were creating a virtual guest using our standalone xVM Server interface, it would look exactly the same (except for the name in the top right hand corner).

Airline travel beckons followed by many discussions around user interactions, layout style and modality.


Perspectives on Systems Management, Virtualization and a whole host of other things, mostly related to technology of some sort which kinda of defines life for me.


« July 2016