Use Cases

Infrastructure as a Service

While Software as a Service (SaaS) is certainly Cloud Computing's poster boy, Infrastructure as a Service(IaaS) comes really close. IaaS is very interesting, since it lets you do what people have been doing for a few decades, that is, renting servers and bandwidth, but in the most flexible fashion possible. Most of this credit goes to virtualization technology on the x86 platform that burst into the scene just a few years ago. With virtualization come great ease of management and programmability that wasn't even remotely possible using physical machines. Today, due to this flexibility that technology offers, hosting companies must ideally be unmanned. IaaS takes you closer to that goal.

Physically, useful servers are mostly just four main things: One or more CPUs, some RAM, some storage and Internet connectivity. These servers can be at your location, at a co-lo or can be rented from a hosting provider. All these three locations come with significant cost components. If you are running your own servers at your location, it is the most expensive. A rented server's hardware can be refreshed to current mainstream standards at no extra cost every few years. You may actually end up saving some money. There is no second thought that in most cases renting compute infrastructure is the best way forward. While done in the traditional way, there are limitations; temporal limitations like the time taken for setting up servers, financial constraints like a setup fee, among others. The modern IaaS model removes these limitations while adding great flexibility.

The Cloud is not only quick, it also makes a lot of sense financially. Automation means there is less work for the hosting company and the benefits are shared to the customer. There is typically little or no setup fee. The power of the Cloud is that it is truly on-demand. You can rent 20 servers for just 2 hours and you will be charged only for 40 compute hours. This is not possible while following the traditional model.

A Test Lab in the Clouds: Organizations around the world are increasingly using cloud based infrastructure to set up test labs. This is perfect to test and make sure that software they develop is scalable in the real world. With its on-demand nature, the cloud is able to provide powerful resources for short amounts of time without stressing out schedules or finances. Many Clouds allow you to specify a maximum budget per project to make sure that everything remains within sane limits.

A Scalable Web Application: Why invest in servers that are idling, waiting for load to come in? The cloud lets you expand your infrastructure as and when the load sets in and reduce it when you don't need it - all in a moment's notice. The Cloud today, is the most efficient and optimal way to scale your web application in and out.

A Grid in the Clouds: There are some applications that do not need to be real-time, but require a significant amount of compute power that varies with load. Video conversion, image manipulation and other number crunching activities are examples of this. This is a very good use case for Cloud Computing and for IaaS in particular. With one or more masters and several worker instances, these types of activities are best done in the cloud. With increasing load, more and more workers can make sure that delivery schedules are on time, every time.

Auto Scaling in the Cloud

While Infrastructure as a Service (IaaS) makes it easy to create virtual machines in the cloud and makes it easy to manage them, there is great scope for automation when it comes to Cloud Computing. With automation, it is possible to programmatically introduce best practices for management of a high-traffic web application or a Grid based, batch processing application.

Auto-Scalability of Web Applications: There are clearly defined rules for every step, every decision and every component in automating a cloud based infrastructure. Appliances are built with scripts and then events are responded to by running different scripts. Thus, there is great predictability in how a complex infrastructure will behave under various conditions, however stressful.

Auto-scaling, one very important application of the cloud makes optimal use of resources by scaling up only when required and scaling down when the load decreases. When the Cloud is being used, there is no need for up-front investment as far as the infrastructure is concerned. There is no need to plan ahead in terms of infrastructure investment. You just pay as you go.

Auto-Scalable Batch Processing: Just like you can scale web applications up and down, the same applies to batch processing as well. You can have more workers started automatically when the load increases. For example, the length of the pending jobs in the queue is a good measure of when to start or shutdown extra worker instances. This lets you worry about your core business rather when having you constantly monitor your infrastructure so you keep scaling it up or down depending on load.

Platform as a Service

Running a high traffic web application is a black art or almost. There are many organizations in the annals of cyber history that have gone down, unable to scale gracefully. There are three very important aspects of any high traffic web application that are the most difficult to get right and are even more difficult to maintain well. These are scalability, high availability and performance. And all three of these aspects are unrelated to each other. However under certain circumstances one may affect the other. Each of these aspects have to be dealt with at different levels: servers, networking infrastructure, databases and also the application itself. Every choice of a component in the system has to be thought about. You will agree, it is a black art or almost.

Ask system admins of high traffic web applications, which situations they fear the most. They have one word to describe it - downtime. It is worse for B2B portals like Payment Gateways. They take down several businesses with them. So, system admins are always required to build in redundancy. So there are solutions but not all are graceful solutions. As the complexity of the infrastructure that supports high traffic web applications increases, it tends to get more and more inelegant.

High traffic web applications designed right: While HTTP is easily scalable, the RDBMS quickly becomes the bottleneck in high traffic web applications. Since the database is sure a core component in any non-trivial web application, this requires a complete change in architecture if it is to be eliminated altogether. At the same time, it is important that the APIs be kept unchanged as much as possible.

The latest approach is radical and a very elegant one too. The new approach is to completely eliminate the old relational database and embrace the NOSQL approach. The new approach helps in building applications which will scale very elegantly even with huge amounts of data and web traffic.

The Platform is thus just an API as far as the application developers are concerned. Conforming to this API ensures that application scalability is not an issue. There is no need to write the application in two different ways, one way in which it is not scalable and the other in a scalable fashion. No matter how small or complex the application, it always scales without any effort from the developer's side.

As far as the back-end is concerned, the platform is constructed with several components that work in tandem to scale in and out, hosted web applications in the most optimal fashion possible.

Knowledgebase

  • Whitepaper

    Get a detailed understanding about each of our offerings

  • FAQs

    Find your questions about Cloud answered here



Newsletter