Discover the story behind XCP-ng, the free community build of XenServer. Why we did it, and how we built it, from technical and community perspective. And finally, what's coming next.
2. About me
Olivier Lambert
CEO/founder of Vates since 2012
Linux/FreeBSD guy (former sysadmin NOT from sales)
Xen Orchestra and XCP-ng founder
I hate complex licensing or overly complex software
I like Open Source and building communities
Twitter
@xenorchestra
@xcpng
@OlivierLamber12
2 / 19
4. XenServer?
Note: it's now called "Citrix Hypervisor"
In short: turnkey hypervisor with an API, based on Xen
Xen is the hypervisor (Linux Foundation project)
Dom0 (Control Domain) is a modified CentOS
A lot of glue around (the whole "toolstack", including XAPI+scripts)
4 / 19
5. XenServer story
Xen acquired in 2007 by Citrix
Citrix is a close partner of MS, customers used mainly MS products ("Linux what?")
They tried to make an hypervisor that doesn't "sound" Linux:
everything hidden behind a formidable API, "XAPI"
made a Windows client, XenCenter
made a really weird update/pack system
Confusing for both Windows and Linux users
5 / 19
6. Why it's bad
To do something 100% "your own way" (not following standards), it requires a lot of
resources, but:
Citrix decided to stop competing directly with VMWare on server virt…
…but they forgot to really open the project to boost it (because… no OSS culture)
What's "really open"?
What it should be vs reality:
closest possible to the "upstream" (vs strange update pack system)
no complicate fork to maintain (vs QEMU fork)
easy to contribute (vs no contrib guidelines, no code change accepted)
sharing your "master" dev branch of your forks (vs refusing to do it)
sharing your nightly builds (vs refusing to do it)
your proprietary code doesn't break the open source version (vs EMU-manager)
not trying to insert trademarked content in your sources (vs trapped SRPMs)
6 / 19
7. The result
January 2018:
a niche but powerful hypervisor, mostly targeting vGPU load
"reverse" VMWare strategy (virt desktop is the flagship, offering XS underneath)
not a lot of innovation on the server virt part
still XenCenter client
still no external contribution (outside Xen itself)
license change and unclear strategy
new features aren't Open Source! (GFS2)
7 / 19
8. Leverage the potential (go back in 2013)
XAPI is really powerful
why not creating a good web client on top of it?
Xen Orchestra on XAPI is born (circa 2013)
8 / 19
9. Xen Orchestra
NOT a XenCenter clone
turnkey web solution to manage your XenServer
fully agentless
one controller for your whole infrastructure (up to 4000+ VMs)
virtual appliance (XOA) to deploy once in few seconds
bash -c "$(curl -s http://xoa.io/deploy)"
Updater embedded (new release every month!)
9 / 19
10. Since XO started…
innovation on all fronts
faster than XenCenter (improved only 5y later in XenCenter)
incremental backup features (4y before Citrix decide to officially support it)
delta replication
advanced ACLs and self service with quotas
and more! (monitoring, load balancing, perf alerts…)
Just by using their API, NO modifications on the hosts
large adoption
customers in 70+ countries
small but big names too (guess what? Citrix too!)
homelabers using version from the sources with all XO features (no support/no
XOA/no updater)
easy licensing model: it's FLAT (1 XOA for all)
3 plans: 70, 200 or 500 per month (better support, more features)
10 / 19
11. So what about XCP-ng?
It's a fork of XenServer, removing all features restrictions. Fork definition:
In software engineering, a project fork happens when developers take a copy of source code
from one software package and start independent development on it, creating a distinct and
separate piece of software.
The name
Before XenServer was Open Source: XCP was the "free/libre" version, but Citrix failed
to create a community around it (guess why? culture)
After XenServer been Open Source: XCP was shutdown (2013)
XCP-ng means "XCP next generation", this time a community backed project
11 / 19
12. The trigger
New XenServer licensing
Killing XS Free tier (3 hosts max per pool, important features removed)
Vast majority of our paid XOA customers are/were using XenServer Free (even big
ones)
Vast majority of them unhappy with this change (not only for budget reasons, also bad
support etc.)
mainly because XS isn't a priority/flagship product for Citrix
no dedicated sales, marketing, XS "entity" isn't a business unit, "just" a tech one
See the problem for us? First idea was a defensive move (protect our XOA user base)
12 / 19
13. The opportunity
Why stay defensive if the threat can become an opportunity!
Market recon: Kickstarter
Result will tell if there is a market opportunity
The result: 50k€+ (KS+extra sponsors)
13 / 19
14. Opportunity to do what?
Not just a clone! Remember XenCenter vs Xen Orchestra?
Full stack solution: from HV to the management platform
Full scale innovation: Research and Dev on Xen, XAPI, Storage…
Already delivered improvements weeks after the fork!
14 / 19
15. What's already done
Since first release in April:
Better update mechanism ✔ (yum)
No more licensed features ✔
Upgrade works from all existing XS versions ✔
ZFS experimental integration ✔
Ceph experimental integration ✔
Software RAID install support ✔
CloudStack compatibility ✔
XCP-ng Center ✔
But also:
some code merged in XenServer
a dozen of XS bugs fixed by XCP-ng team
fixes available in XCP-ng faster than in XenServer
15 / 19
16. Fast growing community
Forum: 700 registered users, 5k unique visitors, 1k posts and 100 new topics monthly
GitHub contributions, from code to Wiki/doc update
Ecosystem: Puppet Facter, Cloudstack and others added XCP-ng support
Community places
Forum: https://xcp-ng.org/forum
GitHub: http://github.com/xcp-ng
16 / 19
17. Roadmap: what's next
Growing dedicated team, so even more to come!
Getting closer to upstream (CentOS), more packages available
Automated build process
Contribute to XAPI, Xen and other components
Stay friendly toward the original project (PRs, reducing fork size)
More turnkey than ever! (XCP-ng+XOA combo)
Add more storage capabilities (XFS, ZFS etc.)
Improve integration with other projects (app catalog, automation tools…)
Improve performances and compatibility
Example on current work:
zstd compression support for VM export
better VM snapshot mechanism with disk exclusion
17 / 19
18. Pro Support
Credibility comes from Pro Support
Support model ("RedhHat"-like)
NO feature restrictions (broader adoption)
Extra fast and skilled support (already half of XO's tickets are XS related)
Level 2 support done by XCP-ng dev team directly
18 / 19