We're starting to expand our hosting business and I'm wondering how big hosting providers manage their services, like creating directory structures and configurations in email servers, web servers, db servers, and the like, in conjunction with automatic management of auto renewal of domain registrations and so on.
"Big" here means everything that needs to use multiple servers of the same kind (multiple web servers, db servers, etc...) possibly accross multiple datacenters. My examples are about the classic LAMP stack hosting because that's what I'm used to, but that could be anything:
- VPS hosting
- Ruby / MySQL / memcached
- Java App servers
- etc...
Some random names: Rackspace, Mediatemple, Slicehost, Dreamhost, 1and1, ThePlanet, etc...
I'd guess a good solution would interface all of these things:
- customer interfaces for managing their services
- configuration of the various systems of the infrastructure (dns, mail, web, db, and so on)
- automation of more-or-less common tasks like moving customer data on another server (for decommissioning of old hardware)
- the various domain registration procedures
- billing
- etc...
Does every business that starts to grow need to build out its own custom software? does any part of the system already have some industry standard? do people interface some (possibly self developed) management software with configuration systems (like cfengine, puppet, etc) to also configure every single customer account? what else?
-
Most that I've seen use a combination of open source software packages and custom developed interfaces between those. cPanel will get you a long way; and you can add parts like LPanel that does sign-up and client billing. There's also commercial full packages available like Parallels.
Luke404 : I did know about CPanel and the like, but I was under the impression that they were more suited for small businesses that wouldn't mind to adapt their infrastructure to what CPanel expects (in terms of both software choice and infrastructure organization) and to expose to their customers the fact that they're using CPanel. All in all, it seemed to me that it would 'hardwire' you to their designed solution, leaving you with much less freedom to choose what could best accomplish your goals...Chris S : I'm just a "customer", so take this with a **large grain of salt**: I don't care what software you're using (cPanel or otherwise) nor do I care for highly customized interfaces that require learning a new system; I want a simple box that runs my web code and delivers a reliable website. If I was running a site that require very specific 'hosting environment' requirements I would roll my own box and co-locate it (or Private Server or similar solution). That "opinion" aside; if you are determined to have the software work around your current business model, you'll probably have to develop it.From Chris S -
I work at a relatively large telecoms company. They use Oracle's Billing and Revenue Management product with custom developed plugins to sync with LDAP and Zimbra. The Zimbra provides mail facilities while LDAP is used mainly for ADSL/other authentication. On the hosting side I'm pretty sure PAM-LDAP is configured to provision unix user accounts for hosting.
The important thing is to find the single source of truth (LDAP/SQL DB/whatever) and build everything around that user database.
Another flexible authentication solution that may be suitable is RADIUS.
From Shaun Dewberry -
1 short answer: Standardize every deployment, and build tools to manage or invest in some. Build your environment very similar to how things operate in cloud computing.
Once you do that, it's very easy to make simple scripts to deploy a new instance on the fly or move existing instances to other hosts. Also, by adopting cloud style computing, you can easily monitor & track down problems quickly. Separating db & disk storage from the "host" machine means if your web server gets hosed, you can simply wipe it out & reattach the storage & be back online in less than seconds. Updates & upgrades can be equally quick. There are even ways to transparently upgrade instances without 1ms of downtime from the public view.
I personally like using Nagios & Cacti to monitor my instances... There are also pre-built packages like groundwork that can get you started quickly. You'll also need to do some homework & decide what services you want to provide. Trying to support everything will require you to have a HUGE support team, whereas picking a few specific frameworks can help you standardize. i.e. php, asp, and java with mysql & mssql.
There definitely is no turn-key all-in-one solution for this type of setup. There are several pieces to this puzzle, and some can be built on existing frameworks... but sometimes these same frameworks can be the biggest headaches to integrate with.
As far as VPS solutions... these are becoming easier and easier to implement within your own environments with frameworks built around the EC2 concepts. You'll also need to decide if you want to work in a Microsoft environment or Linux. Hyper-V has nowhere near the scale of the community support, although it can be a very elegant option when mixed with RDP. Setting up a cloud based on Ubuntu's "Enterprise Cloud" (based on Eucalyptus) can be very quick & simple to do, and has a HUGE community to gather experience & knowledge from.
From TheCompWiz -
cPanel and WebSitePanel as a control panel and WHMCS as a billing backend is what I've seen more commonly.
cPanel and WHMCS is what HostGator uses. GoDaddy has their own control panel. WebSitePanel and WHMCS is what most Windows providers use. This control panel also supports VPS with Hyper-V.
From The Elite
0 comments:
Post a Comment