Posted on | October 19, 2007 | No Comments
Last week, I set off to do something rather simple, I wanted to make a very simple control system for Xen that could plug into just about any web hosting control panel. My goal was to make one application that could be easily modified to fit into any kind of panel.
This project has turned out to be a bit of an adventure. Every control panel has its own way of doing things, many have their own built in (proprietary) web server that serves the control panel to you. None of them have a standard plug-in specification that lets me write something once that will work anywhere.
Giving it a bit of thought, I think that its time for some standards.
IAAS (infrastructure as a service) is what drives SAAS (software as a service). The web hosting industry is what provides IAAS, we really need to make an open standard that allows developers to create sub systems (such as hooks for Xen, OpenVZ, Linux KVM, etc) that can plug into any proprietary system. Specifically, API’s are needed for the following:
- Re-seller privileges and quotas
- Common OS abstraction
- Common interface hooks
Lets take my original idea for a Xen plug-in as an example. Wouldn’t it be neat if you could just drop my application into place and instantly allow your re-sellers to create their own virtual machines up to resource quotas that you set? Writing that to work with the 3 – 5 major (popular) control panels would take the better part of two years. I’d much rather write it once while taking advantage of a common / open API.
Some hosts use CentOS. Some use Debian, Some use BSD, others use RHEL, bah, each one is different. Common OS abstraction means a unified command set. Lets say that my Xen plug-in needed to modify networking, I’d have to write code to detect the OS type and do things appropriately. Bah, why?
Panels could also use a “common” set of style and design tags (or at least have them included) so that plug-in applications could take advantage of them. This lets me write one user interface that works on any kind of control panel. As it stands, I’d have to write one for each kind of control panel that I hoped to support.
If such a standard came to exist, the web hosting industry would surely attract more free software developers than it currently attracts. I have not (nearly) baked this idea fully, but its coherent enough to share for comments and suggestions.