Friday, February 24, 2012

Virtualization and Cloud Computing

Virtualization: The ability to run multiple operating systems on a single physical system and share the underlying hardware resources.

Cloud Computing: Cloud computing allows consumers and businesses to use applications  without installation and access their personal files at any computer with internet access. And for Cloud Providers it is a On-Demand Service which they provide to there Customers with all the functional handling from there end.

NIST Definition of Cloud Computing: Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.

The Traditional Server Concept : Servers as a whole unit that includes the hardware, the OS, the storage, and the applications.Servers are often referred to by their function i.e. the Exchange server, the SQL server, the File server, etc.
                                                                                     Unless there are multiple servers, if a service experiences a hardware failure, then the service is down.

  Pros
  • Easy to conceptualize
  • Fairly easy to deploy
  • Easy to backup
  • Virtually any application/service can be run from this type of setup
 Cons
  • Expensive to acquire and maintain hardware
  • Not very scalable
  • Difficult to replicate
  • Redundancy is difficult to implement
  • Vulnerable to hardware outages
  • In many cases, processor is under-utilized

The Virtual Server Concept: Virtual servers seek to encapsulate the server software away from the hardware. A virtual server can be serviced by one or more hosts, and one host may house more than one virtual server.If the environment is built correctly, virtual servers will not be affected by the loss of a host. If the administrators find that the resources supporting a virtual server are being taxed too much, they can adjust the amount of resources allocated to that virtual server.
Virtual servers themselves can be migrated from host to host almost at will.
 
       Pros
  •        Resource pooling
  •        Highly redundant
  •        Highly available
  •        Rapidly deploy new servers
  •        Easy to deploy
  •        Reconfigurable while services are running
  •        Optimizes physical resources by doing more with less 

     Cons 
Slightly harder to conceptualize 
Slightly more costly (must buy hardware, OS, Apps, and now the abstraction layer) 
About Cloud Computing:

     

        SPI Model(Saas,PaaS,IaaS):- SPI is most common Cloud Computing model. Software as a Service, Platform as a Service and Infrastructure as a Service. Software as a Service (SaaS) is a software distribution model in which applications are hosted by a service provider and made available to customers over a network, typically the Internet.Platform as a Service (Paas) is a paradigm for delivering operating system and associated services over the internet without downloads or installation. Infrastructure as a Service (IaaS) involves outsourcing the equipments used to support operations, including Storage, Hardware, Servers and Networking Components.

        What is Infrastructure as a Service (IaaS)?

        This is the base layer of the cloud stack. It serves as a foundation for the other two layers, for their execution. The keyword behind this stack is Virtualization. Amazon EC2 is a good example of an IaaS. In Amazon EC2 (Elastic Compute Cloud) your application will be executed on a virtual computer ( also known as an instance). You have your choice of virtual computer, meaning that you can select a configuration of CPU, memory and storage that is optimal for your application. The IaaS provider supplies the whole cloud infrastructure viz. servers, routers, hardware based load-balancing, firewalls, storage and other network equipment. The customer buys these resources as a service on an as needed basis. 

        What is Platform as a Service (PaaS)?
        
         Platform as a Service (PaaS) is a delivery of a computing platform over the web.  PaaS enables you to create web applications quickly, without the cost and complexity of buying and managing the underlying software/hardware.
        PaaS provides all the facilities required to support the complete life cycle of building and delivering web applications entirely on the web.
        Platform as a Service (PaaS) is an outgrowth of Software as a Service (SaaS), a software distribution model in which hosted software applications are made available to customers over the Internet. PaaS has several advantages for developers. With PaaS, operating system features can be changed and upgraded frequently.

        What is Software as a Service (SaaS)?
       
         In recent years, traditional software license purchases have begun to seem antiquated, as many vendors and customers have migrated to a software as a service business model. Software as a service, or 'SaaS', is a software application delivery model by which an enterprise vendor develops a web-based software application, and then hosts and operates that application over the Internet for use by its customers. Customers do not need to buy software licenses or additional infrastructure equipment, and typically only pay monthly fees (also referred to as annuity payments) for using the software.