The Tenets of the Cloud

1. The 4 Key Tenets

I want to quickly recap the definition of Cloud Computing. It is all about outsourcing your infrastructure and applications to run on a remote resource. The ‘remote resource’ phrase in the definition can be misleading and creates an illusion that running your web app on a server hosted abroad is Cloud Computing. So, what qualifies the ‘remote resource’ to be called as the Cloud?

Here are the 4 key capabilities that the Cloud Computing offers:

1.1 Elasticity

This is the most important attribute of the Cloud. You might start running your application on just a single server. But in no time, Cloud Computing enables you to scale your application to run on 100’s of servers. Once the traffic and usage of your application decreases, you can scale down to 10’s of servers. All this happens almost instantly and the best thing is your application and your customers don’t even realize that. This dynamic capability to scale up and scale down is called Elasticity. Elasticity brings an ‘illusion of Infinity’. Though nothing is infinite in this world, your application can get any number of resources as it demands. This is the biggest unique selling point of the Cloud. Now, think of web hosting. When you want to add another server to your web application, your hoster has to manually provision that for you. Adding additional servers and configuring the network topology introduces additional time lag that your business cannot afford. Most of the Cloud Computing vendors offer an intuitive way of manipulating your server configuration and topology. Elasticity is the single most important attribute of the Cloud.

Elasticity of the Cloud

Figure 1. Elasticity of the Cloud

1.2 Pay-By-Use

Elasticity and Pay-By-Use attributes go hand in hand. When you are scaling up your application by adding more resources, you know how much it is going to cost you.  Pay-By-Use is a boon for the startups. As an entrepreneur, you got to balance your investment between human resources and IT resources.  The biggest benefit of Pay-By-Use is that it reduces the CAPEX and turns your IT investment into OPEX.  The analogy that I typically use is that of Cable or DTH TV subscription. During the season of Cricket World Cup or NBA, you would want to subscribe to the sports channels and unsubscribe that moment the event is over. With Pay-By-Use, you can subscribe and unsubscribe to the IT infrastructure based on your needs and you only pay for what you use. This is the most optimal way of spending your IT budget.

1.3 Self Service

When you are able to enjoy the capability of scaling up and scaling down and only pay for what you use, you never want to wait for someone in the datacenter to add an additional server to your application. Cloud can deliver its promise only when there is Self Service. Through this, you can control the resources all by yourself without an intermediary. When you add a new CPU core, a server instance or add extra storage, you do it by yourself by using the Console offered by the Cloud provider.  This results in reduction in IT support and maintenance. Today most of the organizations have dedicated IT teams to provision a new machine, storage, collaboration portal and mailboxes as a part of on-boarding the new employees. Through Self Service, a fairly non-technical person can achieve these tasks and you don’t need certified system administrators to do this. For example, when you sign up with Google Apps, it is very simple and intuitive to configure the mailboxes for the employees.  With more and more applications moving the Cloud, Self Service becomes the preferred way of configuring and managing the IT infrastructure.

Figure 2. Server Configuration @ ElasticHosts.com

Figure 2. ElasticFox for managing Amazon Web Web Services

Figure 3. Server Configuration @ ElasticHosts.com

Figure 3. Server Configuration @ ElasticHosts.com

1.4 Programmability

This is a critical parameter of the Cloud. The Cloud makes the developers extremely important. Developers are familiar with the concepts of multithreading where they spawn new threads to achieve scalability and the responsiveness of the application. They incorporate logic to create additional threads on demand.  The programmability aspect of the Cloud adds a new dimension to the development. Developers can now create additional machines and add it to the applications on demand. They can treat the entire data center, servers and machines as an object model that be programmed. They can now do a For-Each loop on every server instance and decide what do with each instance. Amazon Web Services have the most mature API for programmatically controlling the Cloud based resources. Azure started supporting the management API that lets developers programmatically deploy and manage Azure applications. By leveraging these APIs, developers are building applications to manage the infrastructure and some of these frontends run on iPhone and Windows Mobile. Now, imagine clicking a button on your mobile phone to add a dozen servers to your application. Thanks to the Cloud! Developers are important more than ever!

Figure 4. AWS SDK for .NET

Figure 4. AWS SDK for .NET

So, let’s summarize what we just discussed. Cloud Computing has 4 key tenets –

1) Elasticity, 2) Pay-By-Use, 3) Self Service, and 4) Programmability.

1.5 Hosting vs. Cloud Computing

Revisiting the on-going debate of hosting vs. Cloud Computing, let’s see what attributes hosting model exposes. Hosting can never meet the promise of elasticity. Even if it does, it won’t match the economics of the Cloud. Hosting does offer some level of Self Service but not to an extent of manipulating the server configuration on the fly! Pay-By-Use attribute is emulated by some hosting companies. But, it is not a norm in the hosting business. Programmability is too expensive to be supported by hosters as they cannot invest in the SDK and tools to manage the infrastructure. So, it is clearly evident that hosting is not the same as Cloud Computing.

Having understood the key attributes of the Cloud, you might start wondering how you can bring these capabilities to your data center in the enterprise. The reality is that these capabilities can be applied to your data center and officially that is called as the Private Cloud. It is time for us to discuss various implementations of the Cloud. We will look at 4 different mechanisms the way Cloud can be implemented.

Figure 5. Hosting vs. the Cloud

Figure 5. Hosting vs. the Cloud

2. The 4 Implementations of the Cloud

2.1 Public Cloud

This is the most popular incarnation of the Cloud. Many businesses and individuals realize Cloud through the Public Cloud implementation. It needs a huge investment and only well established companies with deep pockets like Microsoft, Amazon and Google can afford to set them up. Public Cloud is implemented on thousands of servers running across hundreds of data centers deployed across tens of locations around the world. The best thing about Public Cloud is that the customers can choose a location for his application to be deployed. This will reduce the latency when the consumers access the application. For example, a London based business can choose to deploy their app at the Europe data center and an American company prefers a data center in North America. With the geographical spread, Public Clouds like Amazon Web Services and Microsoft Windows Azure also offer Content Delivery Network (CDN) features. Through this, static content will be automatically replicated across all the data centers around the globe thus increasing the scalability and availability of the applications.

Figure 7. Public Cloud

Figure 6. Public Cloud

2.2 Private Cloud

Simply put, Private Clouds are normal data centers within an enterprise with all the 4 attributes of the Cloud – Elasticity, Self Service, Pay-By-Use and Programmability. By setting up a Private Cloud, enterprises can consolidate their IT infrastructure. They will need fewer IT staff to manage the data center. They will also realize reduced power bills because of the low electricity consumption and lesser cooling equipment needs. Private Cloud empowers employees within an organization through Self Service of their IT needs. It becomes easy to provision new machines and quickly assign them to project teams. Private Cloud borrows some of the best practices of Public Cloud but limited to an organizational boundary. Private Cloud can be setup using a variety of offerings from vmWare, Microsoft, IBM, SUN and others. There are also some of the Open Source implementations like Eucalyptus and Ubuntu Enterprise Cloud. We will discuss more of Private Cloud in the coming episodes

Figure 7. Private Cloud

Figure 7. Private Cloud

2.3 Hybrid Cloud

There are scenarios where you need a combination of Private Cloud and Public Cloud. Due to the regulations and compliance issues in few countries, sensitive data like citizen information, patient medical history, and financial transactions cannot be stored in servers that physically not located within the political boundaries of a country. In some scenarios, the enterprise customers want to get best of the both worlds by logically connecting their Private Cloud and the Public Cloud. Through this, they can offer seamless scalability by moving some of the on-premise and Private Cloud based applications to the Public Cloud. Security plays a critical role in connecting the Private Cloud to the Public Cloud. Realizing its importance, Amazon Web Services has recently announced Virtual Private Cloud (VPC) that securely bridges Private Cloud and Amazon Web Services. It is almost like extending your infrastructure beyond the organizational boundary and the firewall in a secure way. Microsoft’s recent announcement of Windows AppFabric brings the concept of Hybrid Cloud to Microsoft’s future customers.

Figure 8. Hybrid Cloud

Figure 8. Hybrid Cloud

2.4 Community Cloud

Community Cloud is implemented when a set of businesses have a similar requirement and share the same context. This would be made available to a set of select organizations. For example, the Federal government in US may decide to setup a government specific Community Cloud that can leveraged by all the states. Through this, individual local bodies like state governments will be freed from investing, maintaining and managing their local data centers. Similarly, the Reserve Bank of India (RBI) may setup a Community Cloud for all the financial institutions that share common goals and requirements. So, a Community Cloud is a sort of Private Cloud but goes beyond just one organization.

Figure 9. Community Cloud

Figure 9. Community Cloud

Let’s quickly summarize the 4 implementations of the Cloud. 1) Public Cloud, 2) Private Cloud, 3) Hybrid Cloud, and 4) Community Cloud.

In this article, I defined the key tenets of Cloud Computing and discussed how the Cloud can be implemented in multiple ways. Remember that irrespective of the implementation, to be qualified as Cloud, they need to respect the 4 tenets of Cloud Computing namely, Elasticity, Self Service, Pay-By-Use and Programmability.

Download the PDF version of this article


Related Posts

Top 5 Articles

Download The eBook - Demystifying The Cloud

I wanted to write a technical book for a long time. Though some of the well known publishers approached me, I never mustered enough courage to sign up and commit to them. With a full time job and a busy schedule, I am not sure if I would be able ...

Read More

Data on the Cloud - Amazon S3

Storage is one of the key resources offered as a Cloud Service. By moving data to the Cloud, there are quite a few benefits. Some of them include: 1. Illusion of unlimited storage - Unlike hosting, Cloud storage will virtually give you access to unlimited storage. You will never run out ...

Read More

Cloud Personas and Their Concerns

As one of the stakeholders of the Cloud ecosystem, I persuade, motivate and encourage decision makers in my circle to take a serious look at the Cloud. I want to share my experiences of having these conversations with the audiences. Off late, I came across a few IT Managers and technology ...

Read More

Top 10 Myths of Cloud Computing

As we step into the new year of 2010, I want to discuss the top 10 myths of Cloud Computing. Quite a few experts tried to debunk the myths earlier. My attempt is based on what I have seen or heard in my community. The concepts that I am bringing ...

Read More

Who Will Win The Cloud Computing Battle in India?

Till now I have discussed various technical aspects of the Cloud. Going forward I will also cover certain business aspects related to the Cloud. In this article, I want to analyze the opportunity for the Cloud vendors in India. We will first take a look at the ecosystem, the opportunity ...

Read More


blog comments powered by Disqus

Previous post:

Next post: