Cloud Computing: Introduction

Posted by AAllen On Thursday, May 2, 2013 0 comments

What is this blog about?


The theory of cloud computing and storage existed since the 1960s. This theory created by John McCarthy has now grown into a full blown business of the future. Today’s advances in technology have allowed us to take advantage of delivering hosted services over the Internet. Cloud computing is the next stage in the Internet's evolution, providing the means through which everything — from computing power to computing infrastructure, applications, business processes to personal collaboration — can be delivered to you as a service wherever and whenever you need. In order to understand this technology in detail, we start this blog to discuss issues about cloud computing. The content of this blog can be summarized as what is show in the following picture.





We can see that we mainly refer to four topics in this blog. First, we’ll introduce the cloud computing. In this part, we’ll discuss what is cloud computing, its history, its principle and so forth. Then we’ll talk about some existing practice of cloud computing, for example, the commercial cloud including Google Cloud Platform, Amazon Web Services and Microsoft Azure, as well as some open source cloud including Openstack, Cloudstack and so forth. After that, we’ll discuss recent technical issues and news of cloud computing.

First, this blog will introduce the cloud computing. This blog gives a basic introduction to cloud computing. It takes you through the basics: the how, the why and the who.

What is Cloud Computing?


Until recently, computing meant a program that ran on a desktop or laptop computer on your desk, or a server in your lab. Or, using the internet, you could use a program that was running on a server somewhere else in the world. But it was always a specific piece of hardware in a specific location that was running the program.




In the context of cloud computing, cloud refers to the internet. And then, cloud computing means that the computing is happening somewhere in the cloud. You don't know where the computing is happening, most of the time, you can't know where it is happening (since it can keep moving around), and the most important factor is that you don't care.

Some service provider is providing you with virtual computers, or virtual disks, or virtual file-systems, or virtual databases, or even higher level constructs (to be described later), and guaranteeing that they will take care of everything related to the virtual hardware that you got - you just need to upload your program and run it.

To understand this better, consider milk. In the old days, everybody had a cow. And they squirted milk out of the cow. And then made butter, buttermilk, paneer, paneer pakodas, and ras-malai from it. But more recently, businesses have sprung up who will deliver you milk in plastic packets at your door, or even butter, paneer pakodas and ras-malai. This model has proved to be so convenient to people (especially those who hate the smell of cow-dung) that very few people now have cows.

The cow in this example is like the hardware. And milk is the product. Having your own cow is equivalent to traditional computing using your own labs. Getting milk delivered to your door is cloud computing.

Cloud Computing Service Model


There are different kinds of cloud computing, but before we understand that we need to understand what is computing. Computing really can be broken up into these pieces:
  • Hardware
  • CPU
  • Memory
  • Disk (File-System, Database)
  • Software
  • Operating System (Linux, Windows, Solaris)
  • Software Development Environment (Visual Studio, Java+Eclipse, Ruby on Rails, Python)
  • The actual programs/applications that people use (Documents, Spreadsheets, Sales Management Software, Customer Relationship Management Software, Accounting Packages, etc)

Depending upon what is being virtualized, we get three types of Cloud Computing:


  • IaaS or Infrastructure as a Service. these are various services where the hardware is being virtualized. Virtual machines (i.e. CPU + Memory), virtual disks (e.g. Amazon EBS), virtual file-systems (e.g. Amazon S3), virtual databases (e.g. Google BigTable, Amazon SimpleDB, SQL Azure) are all examples of infrastructure. Basically, these are services that are looking to replace all the hardware infrastructure that sits in your server rooms and labs.
  • PaaS or Platform as a Service. these are various services where the software development platform (i.e. programming language, runtime environment, etc.) is being virtualized. Google AppEngine (Java/Python), Microsoft Azure (.NET/Visual Studio) are examples of PaaS. In the cow & milk example, PaaS would be equivalent to getting paneer or khoya delivered to your home. You can use this to cook your own delicious items.
  • SaaS or Software as a Service. these are various services that have decided to skip the hardware and software engineers altogether and directly approach the end-user with software that s/he wants to use. In IaaS you can install your own OS and software and use it. In PaaS you can write programs in that platform and run them. In SaaS you need to do nothing. There is ready-made software that you can directly start using. Like SalesForce - software used by sales agents. In the cow & milk example, SaaS is equivalent to home-delivery of cooked food (paneer makhanwala and ras-malai).

Cloud Computing Deployment Model


There are three main cloud deployment models, each on with its own set of customers it’s targeting.


  • Public Cloud. Public cloud provider refers to the cloud platform that targets any types of customers, regardless of whether they’re an independent consumer, enterprise, or even public sector. Normally, public cloud providers are considered prominent players which have invested huge amount of capital. Windows Azure Platform by Microsoft, AWS by Amazon, AppEngine and Gmail by Google, etc. are all examples of public cloud services. Customers who possess sensitive data and application normally do not feel comfortable using public cloud due to privacy, policy, and security concerns. Remember, for public cloud, the application and data will be stored in the provider’s data center.
  • Private Cloud. Private cloud is infrastructure that’s hosted internally, targeting specific customers or sometimes exclusively within an organization. Setting up a private cloud is normally more affordable when compared to a public cloud. As the matter of fact, there are many organizations who have implemented their own private cloud system with product offering from vendors such as IBM, HP, Microsoft, and so on. Customers who possess sensitive data and application feel more comfortable going with this approach since the data and application are hosted privately.
  • Hybrid Cloud. Hybrid cloud is the combination of public and private clouds, or sometimes on-premise services. Customers who look into this solution generally want to utilize the scalability and cost-competitiveness that public cloud providers offer, but also want to retain their sensitive data on-premise or in a private cloud. With the benefits derived from both deployment models, the hybrid model solution has become more popular nowadays.

Advantages of Cloud Computing


There are a number of advantages Cloud Computing has over the old way of doing things:
  • Convenience: Cloud Computing is easy. Not having to deal with real machines, and disk failures, and electricity failures, etc is a huge benefit. Anyone who has had to deal with cleaning cow-dung, going to the vet for treating cow diseases, and complaining neighbours will appreciate the huge convenience of milk packets over having a cow.
  • Cost: There are two different cost advantages to cloud computing. Sometimes it is cheaper than the physical alternative. At other times, the advantage comes from the fact that you have to pay small installments every month instead of a large chunk of money when you're buying the infrastructure.
  • Cheaper: Usually cloud computing turns out to be cheaper. This is mainly because cloud computing providers are able to share their infrastructure across a large number of customers, giving them economies of scale, and higher utilization. You can't buy just half of a physical server, but the typical IaaS provider sells low-end virtual machines which are roughly equivalent to 1/10thof a server.
  • Pay-as-you-go: Imagine you're a startup. Buying a server will cost you $4000. And that's Rs. 2L that you don't really have right now. By contrast, buying compute cycles on Amazon EC2 might cost you $100 per month - which is much more manageable. And at times when you're not really using the server, you shut it off, and don't pay for it. If during a busy month, you need two servers, you get a second server for just one month, and then delete it at the end of the month. Much better than having to buy an entire second server that will be useless after the first month.
  • Easy scalability: If you're a growing company, and the demand for computing suddenly increases (for example, if your website is mentioned in TechCrunch and you suddenly get 10,000 new customers), it is very difficult to suddenly scale up your physical infrastructure. That would involve buying new servers, migrating programs, files, and databases. And a whole bunch of other setup. By contrast, IaaS providers provide these services at the click of a button. PaaS and SaaS providers take care of scaling completely, in a manner transparent to you, and you don't even need to think about it.
  • Location Independence: A cloud computing service can be used from where-ever you are, whereas most physical infrastructure ties you down to one place.

There are a bunch of other advantages, but this should be enough to keep you happy for now. Check out our further reading section if you want more on this.




0 comments:

Post a Comment