Discussion on the state of cloud computing and open source software that helps build, manage, and deliver everything-as-a-service.
Knowing what you've got - Avoiding the Xen vs XenServer confusion
Quite a few years ago I made a rather nice living coding things up. Some were big projects used in regulated industries, and others a bit more mundane, but in all cases I tried to ensure confusion over what the point of the project was could be minimized. After all, the last thing I wanted was a prospective user or partner investing in something which wouldn't meet their needs.
Fast-forward to today, and as the XenServer evangelist I want to accomplish the same task, but scope is a bit broader. I want people to be using XenServer, and I want many tens of thousands of them doing so. By the same token, I also want those same users to know they are using XenServer, and not something else. After all, its equally bad if someone thinks they're using XenServer when they aren't, or are using something different when they are in fact using XenServer.
A perfect case in point is the confusion over what "Xen" and "XenServer" are. For years I've heard people who want XenServer referring to it as "Xen" and occasionally as "Xen Server". While many of those people aren't technical, and for them the distinction is largely irrelevant, the fact of the matter is the distinction does matter. For example, if someone is working on a project which they wish to integrate with XenServer, it does them no good to see references to "Xen" all over XenServer content, or to look at examples which reference "Xen"; even if the actual code is for XenServer and not "Xen". Even more significant is that, with the move of the "Xen" hypervisor to the Linux Foundation last year, what was once known as the "Xen" hypervisor has now become the Xen Project hypervisor.
All of which gets me to Apache CloudStack. Apache CloudStack is a wonderful solution for anyone looking to get a cloud up and running quickly, particularly those looking to have multiple hypervisors in their cloud and managed from a single console. Unfortunately, Apache CloudStack is also a perfect example of the problem I'm highlighting here. Within the UI, documentation and code, the term "Xen" and "XenServer" are used interchangeably, when in reality Apache CloudStack only supports XenServer; or more precisely XAPI based toolstacks for the Xen Project hypervisor. To resolve this problem, and to pave the way for the Xen Project hypervisor to become a full citizen of Apache CloudStack, I put forth a proposal to distinguish and disambiguate "Xen" and "XenServer". The design document can be found on the CloudStack wiki. To give an example of the cost of resolving these things after the fact; the initial patch consisted of over 17,000 lines, subsequent patches will be needed following extensive testing, all with the result of no new functionality. If you're interested in following the progress of this activity, please do so on the CloudStack mailing lists, and on the wiki.
The point I hope I'm making here is that when there is the potential for confusion, someone will eventually become confused. If you are working on something which references "Xen" or "XenServer", I hope you'll take a few minutes to see if you're using the right references and if not plan on clarifying things for your customers and users. To assist, please refer to this handy-dandy list:
- "Xen" is a bare metal hypervisor which since April 2013 is a Linux Foundation Collaborative Project and has been renamed as the "Xen Project hypervisor". You can find more information about Xen Project at http://xenproject.org. Importantly, while "Xen" was the name Citrix used for the hypervisor, when "Xen" moved to the Linux Foundation, Citrix granted the Linux Foundation the limited rights to use the word "Xen" as part of the "Xen Project".
- Citrix continues to use the "Xen" mark in connection with a variety of products such as XenApp and XenDesktop, so if you are working on a project with integration into other Citrix products, and are referring to them as "Xen", you risk further confusion with the hypervisor work occurring with both XenServer and the Xen Project.
- XAPI, or XenAPI, is a toolstack for use with the Xen Project hypervisor and is a sub-project under Xen Project at the Linux Foundation. You can find more information about XAPI at http://xenproject.org/developers/teams/xapi.html
- XenServer is a packaged virtualization solution from Citrix which in June 2013 was made completely open source. XenServer uses the Xen Project hypervisor and API support is provided via XAPI. Commercial support for XenServer is available from Citrix, and open source activities can be found on xenserver.org.
- XCP, or Xen Cloud Platform, was a previous attempt at making XenServer open-source. With XenServer becoming open source in June of 2013, XCP development transitioned to XenServer.