Challenges for Large-Scale Cloud Computing Deployment


Large Applications such as Amazon, Google, eBay, Facebook and other large Websites have problems when it comes to deploying their Applications. Often, there are some 10,000 servers or even more of them when a new Version needs to be deployed. In Cloud Platforms, we often have similar issues. Even if we need to deploy to 100 instances, it might be difficult to get everything correct.

There is a significant difference between PaaS (Platform as a Service) and IaaS (Infrastructure as a Service) Applications. If we use IaaS, we have to take care of deployment. Each instance needs to have the newest Version. There are different tools available to automate that task or you either write your own tool for that. If you use PaaS, it is easy since most platforms (such as Google App Engine and Windows Azure) usually take care of that.

There are several issues and challenges if you use IaaS Platforms to run your applications:

  • You have to deploy to a lot of Servers – usually 100 or more
  • It is not possible to allow a “maintenance timeout”. In this timeframe, you loose money and your customers will be angry if you have a “maintenance downtime” for 2 hours or more every week
  • Deployment goes to the production System, where probably million users interact with – problems will immediately have effects.

This leads to some problems and the short answer is that there is no easy solution to that. Each deployment strategy must be tailored to the application. However, it is possible to use a specific iteration strategy, which is illustrated below:

Iteration strategies for Cloud deployment
Iteration strategies for Cloud deployment

There are 5 major phases in each deployment:

  1. Develop. Software/Platform is in development phase.
  2. Verify. Everything that was developed in Phase 1 is now tested. This is basically done by the testing department. There are no user tests involved so far and the new release is not deployed to a real environment.
  3. Stage. The new release is put on a staging environment. This is a sandboxed environment where no damage can be done to the real system.
  4. Verify. The new release is verified on the staging environment. This is basically done by beta-users or internal departments
  5. Deploy. The new release is deployed to the final system and all users access it from now on.

 

Advertisements

Published by

Mario Meir-Huber

I work as Big Data Architect for Microsoft. With this role, I support my customers in applying Big Data technologies - mainly Hadoop/Spark - for their use-cases. I also teach this topic at various universities and frequently speak at various Conferences. In 2010 I wrote a book about Cloud Computing, which is often used at German & Austrian Universities. In my home country (Austria) I am part of several organisations on Big Data.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s