With a growing number of clients requesting or coming to us with cloud hosting of web applications and sites, we’ve asked and been asked a number of questions about the cloud. Understanding cloud hosting is not daunting but does require some patience – the basic idea behind the cloud involves using multiple virtual servers (portions of a computer’s resources set aside to act like a full server) to duplicate and distribute web sites, applications, databases and other functions. The two main reasons organizations do this is to ensure enough server capacity for web sites and apps used by many users, or to provide absolute protection against server and application failure.
Understanding Cloud Hosting
What “the cloud” has come to embody, more recently, is an even higher level of redundancy where virtual servers can be rapidly created and scaled (increased or decreased in size based on user demand), and where applications and data are even more separated to provide greater redundancy. Understanding the layers of web server technology and how it works is daunting enough – there’s the operating system, web server, application environment, database… well, you get the idea! Cloud technology adds a dramatically new layer of organization and complexity, which is why it demands a little show and tell.
Imagine your cloud hosting, whether its Google, Amazon, Rackspace or someone else, as a theater. Just like in a theater, cloud hosting has several interrelated parts that Each of these services has their distinct features and benefits, but they all provide an experience similar to a theater. You have:
The Theater company and the stage – this is akin to your choice of cloud technology, whether its Amazon Web Services or Google
The Actors – these are your virtual server instances like EC2 in Amazon
The Play / Script – this is your application layer that handles the scaling of your server and deployment of software to those servers. This is what Elastic Beanstalk is in Amazon or Web Apps in Google
The Director / Choreography – these are you configuration files that are used to setup your servers by whatever application layer you used (e.g., Elastic Beanstalk, Google Web Apps).
The stage is both the physical environment (the building, the lights, the equipment) where the show happens and the meeting place for participants in the theater company. You need all the participants, as well as the stage, for the show to start: actors to act their parts, a directory with choreography to guide the actors, and the script, which is what the actors read and how they interact on stage.
Actual theater companies are already flexible, but the allegorical one providing cloud services is infinitely flexible – it can quickly hire or fire actors in case one falls ill or if a play needs more actors to handle a bigger story. Generally, this is done very easily: actors are in unlimited supply (much like understudies waiting in the wings) and can learn the script instantly – if something happens to one, another jumps out onto the stage and takes over that role. This happens so long as the Director knows the script and updated choreography to match – he’ll instruct new actors what to do once the come on stage. This gives the theater company a lot of freedom to run a small play in the morning and a larger version at night – all it needs to do is obtain the new script and a Director familiar with it to accommodate changes.
The Director is only necessary when something happens to an actor. Since different scripts require different choreography, updates to the “script” (the applications being run on the servers) mean that choreography must be updated as well.
Performance continues without interruption from night to night no matter what happens if everyone does their part and if the Director has updated, matching choreography. Directors manage choreography only (writers supply the script) – so if something happens to one of the actors after a script has changed, but the Director hasn’t been updated, replacement actors will run into problems on stage as the follow old choreography that doesn’t match with the new lines.
Unfortunately, this is how plays do get into trouble – when a Director isn’t informed about a changes in a script or doesn’t understand the change to provide the right choreography. Failing to do so results in confusion on the set when actors are replaced, with actors bumping into each other as they follow old choreography to new lines. Generally, under circumstances like this, the actors will keep bumping into each other, quite, and the show will not go on.
How does the drama of the cloud compare to traditional hosting? Traditional hosting is a one man act, in comparison. The same individual is both actor and director – there is no duplication and no redundancy. If something serious happens to him or her, the options to continue the same performance seamlessly are limited.