Sunday, 26 July 2015

LECTURE 3

In last lecture we studied about the different definitions of cloud computing and try to elaborate the definition suggested by NIST, today we continue with the same 

SERVICE MODELS OF CLOUD COMPUTING

NIST also categorizes cloud computing into three “as a service” offerings, namely infrastructure, platforms and software, which are broken down in more detail here:

The Three Service Models
  • IaaS
  • PaaS
  • SaaS



Infrastructure-as-a-Service: Infrastructure as a Service (IaaS) is a form of cloud computing that provides virtualized computing resources over the Internet.  IaaS is one of three main categories of cloud computing services, alongside Software as a Service (SaaS) and Platform as a Service (PaaS).



In the old days, if you needed a server, you might spend between five and ten thousand dollars or more upfront and then you’d pay a techie $30K a year plus benefits to manage it.

Nowadays, with cloud infrastructures, you can actually buy a “virtual server” over the Internet almost as easy as signing up for an email account. The server never arrives at your doorstep.

Instead it stays out on the cloud where you can log on and manage it anywhere and anytime over the Internet. For the techies amongst us, that means that you can buy and manage processing time (CPU time), storage, network capacity, and other fundamental computing resources without shelling out big bucks upfront. You only pay for what you use. If you’ve never used cloud infrastructure, then the very notion of using a server over the Internet may sound crazy. You’re probably asking the question, “How can I do that?” Well, actually, it’s easy to rent computers over the Internet. The easiest way to learn is to actually do it. If you go to Amazon.com’s EC2 website http://aws.amazon.com/, you can launch and manage a real live server (well, actually a small virtual server) for an hour for about 20 cents. What a bargain! You will specify a server name, the type of operating system and other details to create your server instance. Then, you can log on using remote desktop or visit the website, just as if it were a real live server.

How it Works
We use the term “virtual server”, because you’re not really renting a physical box. That is, you can’t actually walk into a room and touch your dedicated machine. Instead, it’s all managed by “virtualization” software, such as VMware.(https://www.vmware.com/in)

In the old days, one operating system would run on one physical box. For example, you would buy a Windows server that contained a copy of Windows, or a Linux server that contained a copy of Linux. It was one-to-one. Virtualization, on the other hand, lets you run multiple operating systems on the same box. In the early days of virtualization, this was a handy trick. For example, virtualization made it easy to test new software on multiple operating systems without needing multiple physical boxes. Virtualization also made it easy to run Windows and UNIX programs on the same physical box, such as when a program was only available for one operating system. Then, one day, somebody realized an even bigger trick. With virtualization, it’s possible to sell the same physical machine multiple times. That is, a data center can run 10 copies of Linux on one box, and then sell it over the Internet like different servers? Voila, the basic concept behind cloud infrastructure (infrastructure-as-a-service). 

In reality, cloud infrastructure is not limited to a single server, but rather relies on a shared pool of servers, whereby any one user can scale up to take advantage of extra computing power when needed. It works because servers are mostly unused anyway, so there’s always some extra computing
power available if the pool is large enough. It works somewhat like a bank that loans the same money 10 times over. In theory, it wouldn’t work if everyone demanded their money (or computing power) at the same time. 

So where is all this infrastructure?
The cloud's infrastructure consists of actual, physical hardware that is complemented by a delivery mechanism. The main difference is that it exists outside of the user's immediate grasp, and its existence has been abstracted to the point where its exact location is both unknown and irrelevant to the users. When you work in the old way, you know that your application is located on the PC in front of you, and the data is held on the data server in the room across the hall. With cloud computing, you don't know whether your applications and data are in a data center in Des Moines or Delhi, and what's more, it doesn't make any difference. 

This is an important point. One of the biggest objections to cloud infrastructure is that you can't put your finger on it. There is a certain satisfaction to walking into your server room, and being able to point to a rack of servers and storage arrays with a glorious mass of cables coming out of the back, and saying "that's where our data and applications are." But that satisfaction is an illusion; in reality, there is no inherent advantage in being able to reach out and touch your own hardware infrastructure. If it works, it works; it doesn't really matter where it lives. In fact, if your infrastructure is elsewhere at a hosted facility, then you are gaining a strategic advantage of having somebody else who specializes in such things manage it for you. 

An ordinary computing infrastructure may consist of several physical pieces of hardware and cables that you must maintain and allocate. A cloud infrastructure consists of a pool of highly abstracted and scalable infrastructure devices existing in multiple provider data centers, connected over virtual private Internet connections; where a trusted third party is charged with maintenance and allocation. 

Virtualization

Virtualization is the behind-the-scenes enabling technology that makes cloud infrastructure possible. Just as you can drive a car without understanding how the engine works, so too is virtualization. You don't need to know how virtualization works to use it, since it involves the infrastructure—which the end user no longer has to worry about with a cloud implementation. The concept of server virtualization allows many "virtual servers" to run on a single physical server as if each one were a
separate device. Storage virtualization works the same way. Both types of virtualization essentially decouple the function from the underlying hardware, and virtualization has become a common enterprise technology for saving money and making better use of existing resources. It's not uncommon for a large enterprise to employ this technique in its own data center, and the technology is also in common use by cloud providers— delivering an efficient method for them to service the needs of multiple clients on a cost-effective and secure basis.

Why does virtualization make better use of resources? Because of technologies like thin provisioning. In storage for example, traditionally a volume was created for each application. This storage volume was always over-provisioned, to ensure that adequate storage would always be available; as a result, it was common for storage environments to be making use of only 30 percent or so of available storage. Virtualization uses thin provisioning to allocate storage virtually, instead of absolutely; freeing all of that previously trapped storage space. Server virtualization also makes better use of resources by not requiring separate, dedicated hardware servers for each application. In virtualizing servers, it allows for a single physical server to act as multiple virtual servers, each one separated absolutely by a virtual division that isolates each one. The "walling off" of the virtual servers within the single physical server addresses the obvious concern that there would be some potential for somebody else on the same physical server to access your data.

This is an important concept for cloud computing, since cloud computing is all about abstraction. For the end user again, the concept of applications and storage is abstracted to the highest degree—and in many cases the user will not even be aware of where the actual application or data is located. And it doesn't matter. Virtualization works hand in hand with cloud computing to provide the abstraction that is necessary for both. 
Virtualization provides a type of technology that allows applications to be moved around freely onto different devices that exist in the cloud, transparently to the end user.

3 comments: