# cloudware virtualization orchestration engine



## kaniini (Jun 20, 2013)

I would like to point out that there is a free, open-source commercial-friendly panel that has existed for some time.

Cloudware is the latest generation of virtualization orchestration done by myself and my team.  We are the team that built all of the technical innovations behind the RapidXen product (and before that the SIP:GRID product series) a few years ago.  We are running this software in production without issue since launching a new virtualization business earlier this year.

The big difference between Cloudware and the other panels discussed here is simple: Cloudware is a product you can deploy _right now_ for free.

*Security*

In Cloudware, panel to node communications are done over a proprietary transport which has been used without trouble for almost a decade.

Nodes implement a strict subset of APIs and there is no API call available for executing an arbitrary command.  Beyond this, the management agent running on the node uses POSIX execv() calls instead of invoking the system shell and only calls executables written in C or Python.  Absolutely no shell scripting vulnerabilities are possible under our model.

There is no bullshit claims about "7 layers of authentication."  There is simply a shared keyring with PBKDF2-based signature derivation on the API requests.  The nodes will respond to whatever has the appropriate secret keys.  Otherwise, they will be rejected.

*User Experience*

The attached screenshot shows what the user sees when she wishes to manage one of her VPS.  The user is able to manage her VPS via a rescue console using WebSockets, as well.  The websockets service has some other APIs available as well, such as statistics collection for real-time profiling.

This screenshot represents the build we are running as of 10 minutes ago.  We are working to add additional features to the user experience, too.

In my opinion, it makes SolusVM and OnApp look like jokes.

If you're interested in the code, you can get it all from http://bitbucket.org/tortoiselabs.


----------



## john (Jun 20, 2013)

It only supports Xen right?


----------



## kaniini (Jun 20, 2013)

It is possible to connect it to KVM as well, but an agent would have to be written.

If someone is interested in it, we could be contracted to add the functionality for a fee.

Cloudware _does_ support Xen in HVM mode, so for our direct needs, KVM support is uninteresting.  Ultimately it's the same with OpenVZ, an agent would need to be written.


----------



## Shados (Jun 20, 2013)

kaniini said:


> It is possible to connect it to KVM as well, but an agent would have to be written.
> 
> If someone is interested in it, we could be contracted to add the functionality for a fee.
> 
> Cloudware _does_ support Xen in HVM mode, so for our direct needs, KVM support is uninteresting.  Ultimately it's the same with OpenVZ, an agent would need to be written.


It's unlikely to get much usage within this community without having at least KVM support as well; there are very few providers here that solely use Xen.


----------



## kaniini (Jun 20, 2013)

Well, again, the background of this is that we built a virtualization cluster that runs Xen.

But ultimately the system can be fairly hypervisor-agnostic -- the main loss of functionality would be Xen-specific features like our Xen performance profiling capabilities.


----------



## fileMEDIA (Jun 20, 2013)

Looks nice, do you have any documentation for it?


----------



## clone1018 (Jun 21, 2013)

Jesus, this is a _really_ polished piece of work, it's fantastic. Very nice work guy(s)!


----------



## manacit (Jun 24, 2013)

Is there documentation on getting everything set up and running? I was a rapidxen customer many many years ago, I'd love to play around with this.


----------



## ShardHost (Jun 24, 2013)

Looks good.  I like the fact no one is simply going to throw this on a server and get going with it.


----------



## kaniini (Jun 24, 2013)

manacit said:


> Is there documentation on getting everything set up and running? I was a rapidxen customer many many years ago, I'd love to play around with this.


I'll probably document a setup procedure this weekend.

It's not for the faint of heart, most non-level1/level2 backend admin tasks are handled through Python directly.


----------



## kaniini (Jun 24, 2013)

Here is a screencast of today's build.

http://www.youtube.com/watch?v=yg42yXphzCM


----------



## kaniini (Jun 25, 2013)

By the way, some people asked what the profiler does.  I tried making a screencast demonstrating it, but it didn't go well.

I will try to demonstrate a bit of it in the next screencast I do.


----------



## kaniini (Jun 25, 2013)

Today we added a near-realtime service status monitor widget to the dashboard, both on the VPS dashboard and on the cluster overview (what you see when you log in).

This screencast walks through both uses of the service status monitor.

http://www.youtube.com/watch?v=icqP6PaM7VE


----------



## kaniini (Jun 25, 2013)

Regarding KVM support: some initial bits for KVM support have hit our internal repos today.

We will opensource the connector once it is ready, but basically, to use it, you create a boot environment exactly as you would for an HVM boot environment.

We have decided that offering both a KVM and OpenVZ connector free of charge is in our business interests, as we are planning to launch a related product later this year that many hosting providers will be interested in, but I don't wish to release the details on that quite yet without an NDA.


----------



## kaniini (Jun 29, 2013)

As kind of a slightly related protip, while using the VPS dashboard in Cloudware, I noticed that Firefox was using 100% CPU rendering the page.  Needless to say, my reaction was "wtf?"

Tracked it down to this jQuery plugin: https://github.com/jsliang/eqHeight.coffee -- turns out it doesn't play well when you want to equalize multiple rows.  So, I wrote this nonsense: https://bitbucket.org/tortoiselabs/panel2/src/8c93685cab339e3713fd1ddffec5fa6cd9600627/panel2/static/sidebar.js which seems to get the job done just as well, doing it the right way -- acting upon HTML5 DOM events.

Yeah, it doesn't work in any old version of IE.  On the other hand, I don't exactly give a shit about old versions of IE.


----------



## kaniini (Jun 29, 2013)

Now an obligatory screencast showing today's build with some UI tweaks and more importantly, the ability to rename servers.  Note that this rename is only cosmetic and only affects what the customer names the server.  Cloudware itself will maintain the "[host-]username-subserviceid" naming scheme internally.

http://www.youtube.com/watch?v=5P8yx0Pmr8U

We plan to rework the cluster view a bit using jQuery datatables so we can do realtime searching etc.  It's gonna be pretty neat.


----------



## serverian (Jun 29, 2013)

You guys are totally awesome. You made me want to be a part of this!


----------



## Awmusic12635 (Jun 29, 2013)

Impressive


----------



## blergh (Jun 29, 2013)

Good work! Looking forward to trying this out in a live environment later on.


----------



## kaniini (Jun 29, 2013)

We added the jQuery datatables as mentioned earlier.  Here is how that looks:

http://www.youtube.com/watch?v=yMvXFA3ZfJ4

You can search by anything you want -- region, ip, hostname, node.  All possible.


----------



## kaniini (Jul 2, 2013)

Some initial HVM integration bits have landed in today's build.  Here's how the console looks like if you use HVM:


----------



## kaniini (Jul 2, 2013)

More on the HVM bits: http://wiki.tortois.es/index/HVM


----------

