XPDS16: Xen Orchestra: building a Cloud on top of Xen - Olivier Lambert & Julien Fontanet, Vates
-
Upload
the-linux-foundation -
Category
Technology
-
view
274 -
download
4
Transcript of XPDS16: Xen Orchestra: building a Cloud on top of Xen - Olivier Lambert & Julien Fontanet, Vates
Introduction
At first
an easy to use administration tool (10s of VMs)
Today
still an administration tool (100s to 1000s of VMs) ;)self service portalbackup solutionbasic load balancer
Tomorrow
more and more a simple cloud solutioneasy-to-use API to manage Xen Serversadvanced load balancer
2 / 27
History
2009
Initially created by Olivier as a student for personal useBased on xendStatic pages generated by PHP
2013
Still no nice and easy Web UIs for XenServerRestarted in 2013 for internal useStill generating much interest from the communityInitial server written in PHP
4 / 27
History (2)
Mid 2013
Server rewritten using NodeInitial single-page web application (based on Backbone.js then Angular.js)
2014
Not as much things as we wanted because not much time dedicated to theproject!
→ Need to focus!
5 / 27
History (3)
2015
We are working exclusively on XO!
2016
UI entirely rewritten for performance and ease of use for big infrastructures(2000+ VMs)
6 / 27
Architecture (2)
Centralized server
less connectionscached datashared authenticationno Xen Servers directly exposed
12 / 27
You said Cloud?
Bring people a way to enjoy cloud-like features with their own hardware,without complexity:
no complicated stuff to install on hosts (stay agent-less)leverage our current XO architecture (no need to rewrite everything)bottom to top approach, ie start small and add features step by step(opposite of OpenStack)
Features
ACLs (users/groups permissions)Self ServiceCloudInit
15 / 27
ACLs
First step toward the cloud: permissions!
Let users/devs make actions on their VMs:can only see VM state (viewer)power cycle (operator)remove (admin)
avoid devs to ask for things they can do themselvessell your ressources to your customers
16 / 27
Self service: going further
Create a set of resources (max CPUs, RAM, disks, etc.)Assign this set to a group/userLet them play with it
18 / 27
Cloud-Init (1)
Cloud-init is the defacto multi-distribution package that handles earlyinitialization of a cloud instance.
https://cloudinit.readthedocs.io/en/latest/
How to?
1. Create a template where you install Cloud-init software(apt/yum/whatever)
2. Remove all root/user password3. Transform your VM into a template
20 / 27
Cloud-Init (2)
VM creation for Cloud-init templates
During next boot, Cloud-init will:
read the configuration passed by XOAapply it
21 / 27
Cloud-Init (3)
Possibities
deploy SSH keys and host nameinstall software on boot (Apache, MySQL...)inject software configurationadd extra repo, certificates, execute commands on boot, phone homewhen ready...mount pointsextend root partition size (if disk bigger than current FS)
XO + Cloud-Init allows you to deploy generic but versatile templates inless than 20 secs
22 / 27
Quick recap (1)
Before
As an admin, everytime:
1. Install a VM (OS install, VM settings)2. SSH into it with root/sudoer3. Create basic configuration (automated or not)4. Give your developer an IP address to SSH on
As a developer:
1. Break your VM2. Call your sysadmin3. Wait for a manual operation (reboot/reinstall/whatever)4. Go back to 1
23 / 27
Quick recap (2)
Now
As an admin, after creating a set of ressource and the right templates:
1. Nothing
As a developer:
1. Break your VM2. Remove it and recreate it in 20 secs
24 / 27
Future possibilities
IP (manual) management with VIF locking (almost done)expose CloudInit templates directly in XO (with a public registry?)DHCP/DNS connectors (network automation)integrate XO with CI services (eg Jenkins) or Vagrant for devs
25 / 27
Conclusion
XO architecture and Xen + XAPI allows powerful featurescombining XO Cloud features turns your own Xen hardware into a privatecloudstill some improvements possible
In real life:
Current usage for XO in a "local Cloud":VPS vendors (selling resources)companies with various devs teams (especially when Dockerinvolved)
26 / 27