Auto Add

Friday, 27 March 2015

Introduction to Cloud Computing

Differentiate between IaaS, SaaS, and PaaS.

cloud-based solutions that take advantage of the various components of the Windows Azure platform, which consists of Windows Azure Compute, Windows Azure Storage, Windows Azure AppFabric, and Microsoft SQL Azure. This chapter introduces the cloud computing philosophy that is the basis for any cloud-based project. 
The three approaches to cloud computing are Infrastructure as a Service (IaaS), Software as a Service (SaaS), and Platform as a Service (PaaS). 

Infrastructure as a Service

Some vendors provide the infrastructure to build solutions, and you rent the hardware such as servers, load balancers, a firewall, and cables. You then configure these remotely and install your solutions on them. You can scale up by requesting more servers and reconfiguring the load balancer without purchasing more hardware. You can scale down at any time by reconfiguring the infrastructure you rented from the cloud service provider. This vendor approach is called Infrastructure as a Service (IaaS) because a customer can rent the infrastructure without having to forecast and provision for the highest possible demand in advance. In this approach, you are responsible for correctly configuring the rented infrastructure.
These are the most important points to remember about IaaS:


The lower levels of the stack are managed by the vendor. 
Very few vendors actually provide an operating system. You are still responsible for managing everything, from the operating system to the applications. 
The obvious benefit of IaaS is that it frees you from the concerns of provisioning many physical or virtual machines.

Software as a Service

In another approach, you can rent a service offered by the vendor and then configure the service by using the interface provided by the vendor, without having to know what infrastructure the vendor uses to provide that service. This approach is called Software as a Service (SaaS) because you pay to use defined services. For example, Microsoft Exchange Online carries a per-mailbox charge. To configure it, you use a web application supplied by the vendor to request mailboxes, and name and dimension them. You receive a password for that user and nothing else is necessary—users can access their mailboxes immediately.
This proposed interface has little in common with the on-premises version of Microsoft Exchange. In an SaaS model, you do not have control over nor are you responsible for the hardware on which the service is installed. Similarly, you have no control over the operating system that runs the service, nor any control over the software apart from what the web user interface exposes to you. In other words, a vendor provides everything required to run the application, shielding you from all the underlying components.

Platform as a Service

The third approach is Platform as a Service, or PaaS. In this approach, you rent a platform on which you deploy your applications without configuring the infrastructure and without the limitations of the SaaS approach.
The Windows Azure platform fits best in the PaaS category, because it doesn’t provide access to the underlying virtualization environment or operating system details such as the network interface, IP configuration, and disk management.
The key concepts to remember when dealing with PaaS are:

The platform vendor provides and manages everything, from the network connectivity to the runtime. 
PaaS offerings reduce the developer burden by supporting the platform runtime and related application services.
Developers can begin creating the business logic for applications almost immediately.
PaaS, compared to traditional hosting solutions, offers the potential for significant productivity increases, because the cloud provider manages all the hardware and operational aspects of the cloud platform.
 

Windows Azure as a PaaS Solution

With a PaaS, you don’t need to know the technical details of every component or the difference between a RAID 0 and RAID 1 hard drive. You don t have to worry about or choose hard drive speed or capacity, and you don t need to know or have to care whether a drive is configured as C or D. You just ask the platform for a location to store some information and leave all the technical details up to the platform itself.
The Windows Azure platform hides these technical details completely, and instead provides APIs for managing resources in a logical way. You need only to create storage, choose a name, and then use an endpoint provided by the system to manage resources.
The idea behind Windows Azure is to provide a distributed operating system where you can deploy and run applications without dealing with the classic Windows interface. For example, you don t have to copy files to the Windows Azure file system, and you don’t have to use the Internet Information Services (IIS) management console to configure sites, virtual directories, or application pools. In fact, you don t even have to know whether IIS exists behind the scenes.
If you want some disk space, you can just create a storage account and use the provided endpoint to manage resources on it. With PaaS, you can forget disks, storage area networks, and load balancer configurations when storing data in the cloud. You can use standards such as REST and HTTP to interact with this kind of storage. Where are the files stored? You just don’t need to know. Are these the quickest disks available? You don’t have to care; disk management (from the ordering phase to switching out a broken one) in a PaaS solution is implicit in the platform itself.
Using the Windows Azure platform, you cannot see the exact location of the disk space you rent, you cannot choose the UPS or the hardware manufacturer for disks or servers, you cannot choose your IPs, and you don t have to worry about computer names.


In a system like this, resource access must be done using the related service. Every API must be exposed as a remote web service. Although today’s systems do not expose every API, you probably get the point. 
In practice, PaaS is a kind of SOA for everything:
You ask the storage service to save a new file.
You ask the storage service to search for a file.
You ask the platform management service to scale up or down according to your  immediate needs.
You ask the storage service to create a new folder.
The service replies with a response you have to analyze.
You learn more details about how this works in the following chapters, but the basic idea is to write a program, deploy it somewhere, and execute it without ever knowing the physical location of the binaries and data. After the deployment phase, you can forget your software (apart from bugs) because the platform takes care of managing it by doing the following:
Applying patches as soon as they become available.
Replicating your data and runtime to provide fault-tolerance and load balancing.
Managing disks and other hardware. For example, if a disk fails, the system immediately uses a replica without any intervention from you. You won t even notice the failure.
Allocating more disks automatically when your data grows and reconfiguring the load balancer without any downtime.
Restarting the system automatically if your application crashes.
Providing more computational power when you request it, which you can do at any time. (You can also automate this task in Windows Azure, as you will learn in this book.)
Moving your service to a new machine automatically, without your intervention, if the machine assigned to your application stops responding.
 

No comments:

Post a Comment

Microsoft Intune, a Compliance Policy

  In Microsoft Intune, a Compliance Policy is a set of rules and settings that a device must meet to be considered "healthy" and ...