Jun 2 2009

A Review Of Hosting Options

Posted by Mike Brunt at 7:10 PM Web Servers | DataBase | CloudComputing | ColdFusion | JRun-J2EE


Considering the wide scale changes taking place in the infrastructure options available to us, via virtual server options, cloud computing options and hybrids of the two I thought it a good idea to list the options available to us as users of ColdFusion.  Some of this is obvious I know, but sometimes re-stating the obvious is useful.  One thing I find intriguing is that any experience we have had with what is typically considered to be the lowest echelon of CF infrastructure, shared hosting, might be the closest we have yet come to experiencing cloud computing.

1/ ColdFusion Shared Hosting - Here we are usually granted an API to both ColdFusion and a database.  We can pay for enhancements such as more storage, database options; for instance SQL Server instead of MySQL and various levels of higher bandwidth.  The usually differentiation between competing offerings here is how good the API's are and the efficiency of the level of help we can get.  Also, upload ease and control of remote files is another important issue.  Lastly, the prohibiting of the use of parts of ColdFusion, such as some of the tags, can be a deciding factor in whom we might chose as a vendor of shared hosting.

2/ ColdFusion VPS Server - This is usually directly analogous to a virtual server, using various technologies such as VM Ware, Xen, Microsoft Virtual Server 05-08 etc.  Here we are given a fully functional server which is based on software virtualization. There is fairly clear delineation of RAM and CPU which we should consider as clearly allocated to our particular VPS.  However, storage will be shared and we will be allocated a shared amount of hard-drive capacity. We will probably not get a ColdFusion administrator interface.  

3/ Dedicated Server - There can be various levels of this offering from an "empty" server with no operating system or a server with an operating system installed. In essence we are responsible for maintaining our own software and are in essence either renting a server or purchasing one outright that will then be maintained in a third-party data-center.  In this case we have full control over everything and are responsible for all except the network tier.  After installing ColdFusion, we of course have access to the ColdFusion Administrator GUI.

4/ ColdFusion Managed Server - In this case the third-party hosting company provides with a physical server with all software we requested installed, including ColdFusion.  The hosting company has full responsibility for software installation and maintenance.

5/ Co-Located Server - Here we have purchased the server and are responsible for software installation and maintenance.  We are renting space in a third party data center and they are responsible for the network tier.

6/ Purchased Server - This is exactly the same as a Co-Located Server except that we, or our company, host the server in our own data center.  In terms of control and influence over all aspects of hardware, software and the network, this is the most complete control we can have.

7/ Cloud Computing - As I mentioned in the preface to this blog post, Cloud Computing is in some ways like shared hosting in that all aspects of the notion of a single physical entity or in many ways even the notion of a virtual server entity is obscured from us.  What we typically get, in current offerings, is a unit of processing power with an amount of memory and some amount of bandwidth.  We can add what software we want, ColdFusion for instance and we are in a totally shared environment.  Those of us who have dealt with ColdFusion, in shared hosting environments, know full well the effects of badly written, poorly performing code on all other applications.  This is where issues get a little cloudy (pardon the pun) in my view.  So the closest reference point I can think of in what has gone before is perhaps grid computing?  

It is sort of ironic and perhaps not co-incidental, that cloud computing is emerging just at the time that processing power made a quantum leap, in terms of 64-bit architectures and as users of the Java platform we have not felt the full benefit of 64-bit yet. Current versions of the JVM seem to hit some sort of plateau at around 32GB of heap memory, this is a known issue and is being addressed by the major JVM providers.  With the amazing leap that 64-bit gives us in potential performance gains we are just about to enter a whole new world of server-application power.

In addition, there are unresolved issues revolving around privacy and security in cloud computing; PCI compliance and Sarbanes Oxley are very relevant points which we have to consider and I have yet to see or hear adequately dealt with.  From the standpoint of hosting level entities, cloud computing is a marvelous opportunity to maximize server capacity.  We typically do not want to see servers we own or operate to be running permanently at 100%, in fact when I see systems running at 70% regularly it signals a time to think of adding capacity.  In a cloud environment, the total server capacity is shared among all users, so in theory we should get better more balanced use and availability of total resources. 

Cloud computing is no doubt here to stay and we will probably get pressure from those looking to save costs, to use cloud computing and in fact some of us want to use cloud computing for technical or perhaps curiosity reasons.  There are issues to be resolved before I could recommend clients to run production applications on a cloud computing platform, I have mentioned them before, security, application isolation etc.  However I definitely see cloud computing as a good option for development support operations such as development-integration servers or even QA-Staging servers.  The immediacy of commissioning a new "server" or increasing the capacity of an existing "server" is very pervasive in my opinion.

As always, I welcome any feedback or experiences.



Alan McCollough

Alan McCollough wrote on 06/03/09 9:34 AM

Very well written. I recently changed my personal site from a hosted service to my own gear. When I decided to move away from my service provider, I looked at all the options that were practical; run my own server, do a VMware server hosted elsewhere, or try cloud computing.

I tried cloud computing with www.elastic-server.com and Amazon's EC2 service. To my shock, and I mean "shock", I found that when you powering down your cloud server, it's gone. There is no "disk". It's like working with a linux Live CD. Turns out that if you want stuff to stick around like a hard drive, that's a whole different ball o' wax. Very little info out there in the googlesphere on the issue, either. Either that or I didn't find it. Also, the costs rise quickly, as everything in the cloud is priced ala carte. I suspect that cloud providers will address that issue and make the model work more like a server so that cloud newbies like me don't get frustrated and give up on it.

In the end, hosting off of my own server proved the right fit for me. Your post nicely describes the many options we have for hosting our solutions.
Mike Brunt

Mike Brunt wrote on 06/03/09 3:54 PM

@Alan thanks for taking the time to comment on this blog post and for sharing your experiences here. As I mentioned in my piece I think it is unfortunate that at the advent of 64-bit power and all that this offers we are possibly going to get pulled into cloud computing by business managers who may not understand the level of abstraction we will need to deal with in business critical production systems.

Benoit HEDIARD wrote on 06/06/09 6:14 AM

@Alan : indeed, on EC2, system disks (c:/ and d:/ on Windows instances) are ephemeral storages. They are persistent after reboot but if you loose your instance (hardware issue for example), all the data written on those disks are gone.
So no "application" data should be written to system disks...
Only OS and program files.
Once you have configured your instance (installed Apache, ColdFusion...), you create a bundle of this instance into an AMI (Amazon Machine Image), which is transparently stored to S3 (= very safe).

For data, applications and files that change frequently, you should use EBS (Elastic Block Storage).
EBS are persistent disks that you can attached to any of your instances. Those EBS disks can be very easily backup by snapshots, which are transparently stored to S3 (= very safe).

If one of your instances die, you can start another one based on your pre-configured AMI and re-attached the EBS disks.

If one of your EBS disks die, you can recreate an EBS volume from your latest snapshot.

So in case of hardware failure, you can be up again with a fresh server and/or fresh disks in a dozen of minutes... (compare that to a traditional approach) ;)
Mike Brunt

Mike Brunt wrote on 06/07/09 9:48 PM

@Benoit thanks again for the clarification regarding EBS.
Jeremy Mitchell

Jeremy Mitchell wrote on 06/11/09 9:36 AM


I've been doing CF development for some time and more recently Flex with a CF application layer. I wish I had the brain capacity to become an expert at building business applications (architecting, coding, etc) AND managing the environment on which my applications run. But I don't or maybe I just don't have the time to learn everything.

This is why cloud-computing, elastic-computing, whatever you want to call it is so intriguing to me. I would love to find a platform where I can focus on architecting, writing code, etc and then deploy my application to some place where it would just run. Maybe I'm living in a fairy tale. :)

Anyhow, you should check out Stax.net. You can sign up for the beta. I'd really be interested to know what someone with your expertise thinks of a service like this.

I've found Stax.net to be a great option for quickly and easily setting up and replicating Java server configurations (including ColdFusion) across multiple environments. Stax is a fully-managed platform deployed and hosted on top of Amazon's EC2 cloud computing service.

I love the promise of scaling an application up or down with the click of a button - hence the term - elastic computing.

Machete wrote on 07/19/10 1:18 AM

If one of your instances die, you can start another one based on your pre-configured AMI and re-attached the EBS disks.

Duoderm wrote on 01/05/12 4:23 AM

Thanks for sharing Interesting post. Thanks for taking this opportunity to discuss this, I appreciate with this and I like learning about this subject. If possible, as you gain information, please update this blog with more information. I have found it really useful.
TN Pas Cher

TN Pas Cher wrote on 04/06/12 6:41 PM

I`m so grateful that you enlightened me and the most important thing that it happened in time. Just think, I have been us
isabel marant sneakers

isabel marant sneakers wrote on 10/21/13 8:12 AM

Thank you expressing the knowledge there would turn out to be quite a few concerns from group. http://www.isabelmarantbekett.com
from this scource

from this scource wrote on 05/23/14 10:44 PM

Nice Post. I Was Checking Continuously This Blog And I'm Inspired! Very Useful Info Specifically The Remaining Part :) I Deal With Such Info A Lot. I Used To Be Seeking This Particular Info For A Very Long Time. Thanks And Good Luck.
Gethomeworkonline | Best Homework Site

Gethomeworkonline | Best Homework Site wrote on 04/05/16 3:58 AM

Hello admin! I am extremely glad after reading your astonishing content which no doubt provide me the knowledge as I all the time look for in every post. Thanks for publishing it.

برامج wrote on 07/19/16 11:22 PM

nice post
برنامج الاذان

برنامج الاذان wrote on 07/19/16 11:30 PM

decorous Internet performer entirely, an appropriate confidential alternative determine a trend numerous
مواقيت الصلاه

مواقيت الصلاه wrote on 07/19/16 11:36 PM

and also This article gives the light in which we can observe the reality. this is very nice one and gives

ماسنجر wrote on 07/19/16 11:40 PM

thank you for your question; I have not done any extensive load testing of Zeus as yet but will be doing so and will post results