Elance Blog

Stepping Into the Cloud for Better Scalability and Flexibility

 

It seems like "cloud computing" has been a buzzword for seemingly forever, but have you actually sat down and thought about moving your business "into the cloud?" Has the idea of migration been the barrier preventing you from getting it done? Fabio Pedrazzoli, IT strategist and consultant, offers his insights into why a change could be potentially worth it in the end.

 

I would like to share a typical scenario that shows the benefits of migrating into a cloud computing platform:

The need for scalability
A client of mine is running a social networking website. They have a fast growing community of over 15,000 users with a non-linear traffic pattern. For the nature of their service, the traffic that they receive is concentrated towards the weekend with very high peaks on Friday and Saturday.

To put the situation in real money, the problem is that if you optimise the hardware for the peaks, you end up spending a lot on hardware and other resources that will basically remain unemployed 4 days of the week, and, on the other side, if you just stick on the "budget" solution you'll most likely miss a slice of the very valuable traffic and conversions due to a poor and slow service that is delivered to your users.

The solution
To be able to solve the scenario described above by adding scalability, we decided to migrate the system from a virtualized environment to the Amazon Web Services cloud environment.

Cloud computing is one of the leading topics in the IT world today, and we are gradually seeing it becoming more concrete, transforming itself from vaporware and buzzword into a stable, cost-effective, and effective technology ready for the production environment. However, there are still situations in which I would not suggest a transition into the cloud for certain customers, and probably to a certain degree there always will be exceptions, but the number of exceptions becomes smaller day by day as time goes on.

Virtualized vs. Cloud
The difference between a virtualized environment and a cloud environment is basically that the cloud is another paradigm shift ahead of virtualization.

In server virtualization, you increase the value of your hardware adding more operating systems on top of the same server hardware, thus optimising resources such as RAM, CPU and storage. In the cloud, services are really implemented with the "on demand" logic—you totally forget about the hardware and pay only for what you really use on an hourly basis. With it, there are considerable benefits in investments, making IT more cost effective.

Summarizing, there are situations that may have great benefits transacting to the cloud environment for the following reasons:

Scalability
In a more challenging and constantly evolving environment, as the web is becoming today, you are able to grow your server infrastructure when you need it without too many long term architectural design responsibilities in terms of hardware resources planning.

The deployment is easier and extremely fast as well, as you can add the power of an additional server with just a few clicks, compared to the "battlefield" in the old server farm for hardware deployment. (If you've been in the IT server farm industry for a while you exactly know what I'm talking about…)

Flexibility
Using a real "on demand" contract pattern, you can flexibly grow and reduce your resources according to your real-time business needs. Or, even more specifically, by using some facilities provided in the API, you can even code it to be automatic, programming some threshold levels above which you can start more servers only when needed and then shut them down when they are idle.

New services and features constantly added
Cloud environments are constantly evolving, increasing every day as rich and useful set of services and APIs—for example, think Amazon CloudFront for traffic geo-targeting, Amazon SNS (Simple Notification Service) or SQS (Simple Queue Service).

Some issues to consider: privacy and data protection
Considering the nature of the customer's data in the example above, which is 90% public by default (and the rest is non-critical anyway), there wasn’t too much of a problem moving to the cloud.

However, there can be situations in which moving sensitive data beyond national or continental borders can still be a bad idea at the moment. The first role in IT strategic consulting is protecting your customer's data. I'm not saying something you should avoid completely, as legally speaking this aspect can be totally different from the point of view for an international corporation when compared to one of a national, geographically based entity.

For those situations, a private virtualization with "hands on hardware" remains the safest bet, as data security has many layers but is without a doubt strictly bound with physical security from the very beginning.

About the Author
Fabio Pedrazzoli is a consultant, entrepreneur, freelancer and traveler, providing services such as Cloud Computing Consulting and Linux/Unix System Administration. He is a co-founder of Bee-side, servicing the net since 2001.