Server R&D, policies, and deployment

Even though you typically have a small amount of resources when starting a web hosting company, you want to make sure that you’re prepared for when you grow. Countless companies jump the gun and simply buy a server, set it up and put it into production with very little thought into the big picture. Every subsequent machine added starts to make the process get a little more tedious, and each server is setup just a little differently. The way to avoid this mess is to simply layout simple policies for every task that will be performed on a production server. Even though you’ll likely only have 1-3 servers initially, it’s important to understand the value of making a plan.

Server R&D

This encompasses several things: software, server specifications, architecture, etc. A lot of this may seem trivial initially but as you add more servers to your fleet you’ll be glad you have setup a baseline server setup which will allow you to have a more “stable” environment as well as one you’re more familiar with (as opposed to running different server specifications on each server, different software, different versions, etc).

Policies

Now when I mean policies I’m actually referring to those internal variety. This includes things such as maintenance policies, deployment policies & guidelines, backup policies, and so forth. I have a sneaking suspicion a lot of new start up companies never fully outline these policies before going into business. I think this is a fatal flaw that will cause some to fall flat on their face (loss of backups because no backup policy, constant server crashes due to different kernels on different specifications, etc).

Deployment

This is partially lumped into policies and R&D but I decided to elaborate a bit more as it ties everything together. Typically this consists of setting a system up for production – but what does that really mean? An example deployment at Frog Host may look something like:

  • Order server based off what is the “best” specification for our environment
  • Setup the server to use CFEngine to prep the server (software, files, config files, etc)
  • Setup & verify backups
  • Setup server monitoring / health (Munin, etc) / watchdogs
  • Setup user environment (cPanel, Postgresql, common libraries, etc)
  • Test run the server (test everything that it would need to do in production)
  • Put it into production

*NOTE*: CFEngine is a tool that allows you to easily manage numerous machines based off certain configurations / templates. This allows you to maintain a steady baseline of configuration files, applications, and similar things. Ultimately our CFEngine instance will copy over the configs / install some things such as Munin, Watchdogs, etc. Our current CFEngine instance is currently only doing lightweight management – configurations, basic application installs, and so forth. We intend to have CFEngine instance to eventually be able to almost fully put a server in production automatically.

Now this post only encompasses the “theory” behind prepping / deploying for a launch of a web host – in future posts I’ll go into more depth on the actual process and some quick tutorials on using the solutions we use (CFEngine, example policies, etc).

This entry was posted in General. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Spam Protection by WP-SpamFree