Cloud Computing By Alex Chiu What is Cloud Computing? Cloud Computing Virtualized distributed processing, storage, and software resources and a service. Delivering computing as a on-demand, pay-as-you-go service. "clouds are a large pool of easily usable and accessible virtualized resources (such as hardware, development platforms and/or services). These resources can be dynamically reconfigured to adjust to a variable load (scale), allowing also for an optimum resource utilization. This pool of resources is typically exploited by a pay-per-use model in which guarantees are offered by the Infrastructure Provider by means of customized Service Level Agreements." Vaquero et al. Characteristics of a Cloud Pay-per-use Elastic capacity Illusion of Infinite Resources Self-Service interface Resources that are abstracted or virtualized Provide API and Development tools for developers to build scalable applications on their services. Why go Cloud? Dynamically Scalable Device independent Instant Cost-efficient Task-Centrism Private Server Cost Models of Cloud Computing Virtualization Under-utilization of resource Dividing up the resources Maintenance required Controlling job flow Deployment Models of a Cloud Private/Enterprise Dedicated Hybrid/Mixed Cloud/Public Software as a Service (SaaS) Provides off-the-shelf applications offered over the internet Examples: Google Docs Aviary Pixlr Microsoft Office Web App Software as a Service cont. Flexibility vs Power tradeoff Pros Accessible from any computer or devices Software available facilitates collaborative working. Cons Off shelf products non-flexible Cannot provide add-ons or customize them Platform as a Service (PaaS) Provides all infrastructure needed for a consumer to run applications over the internet. PaaS is a Cloud Computing service that offers a computing platform and solution stack for users. Language OS Database Middleware Other applications Features to look for Programming Languages Programming Frameworks Python Java .Net Languages Ruby Ruby on Rails Spring Java EE .Net Persistence Options Programming Models A PaaS Cloud should be able to support various programming models for different types of Programming. Programming large datasets in clusters of computers (MapReduce) Development of request-based web services and applications Orchestration of a business process in the form of workflows (WorkFlow Model) High-performance distributed execution of tasks. Platform as a Service (cont.) Examples: Pros: Google Apps Engine Windows Azure Platform Force.com Rapid Deployment Low Cost Private or Public Deployment Cons: Not much freedom Choices of tools are limited Vendor Lock-in PaaS Service Providers Infrastructure as a Service (IaaS) Cloud service that allows existing applications to run on its hardware. Rents out resources dynamically wherever they are needed. Services: Compute Servers Data Storage Firewall Load Balancer Distinguishable features of IaaS Geographical Presence Responsiveness Availability User Interfaces and Access to Servers Providing means of accessing their Cloud Gui CLI Web Services Distinguishable features of IaaS (Cont.) Advance Reservation of Capacity Time-Frame reservations Automatic Scaling and Load Balancing Elasticity of the service One of the most desirable features of an IaaS Cloud Traffic distribution Distinguishable features of IaaS (Cont.) Service-Level Agreement As with all services, parties much sign an agreement Metrics Penalties Uptime, Performance measures Amazon Hypervisor and Operating System Choice Xen VMWare, vCloud, Citric Cloud Center IaaS Service Providers Virtual Infrastructure Managers (VIMs) The Operating System of the Cloud Responsible for the Allocation of resources in a cloud Aggregates resources from multiple sources Also called Cloud Operating System, Infrastructure Sharing Software, and Virtual Infrastructure Engines Features of a VI Manager Virtualization Support Backbone Cpu, Memory, Storage Sizing and resizing Self-Service, On-Demand Resource Provisioning Directly obtain services from cloud Creation of Servers Tailoring Software Configurations Security Policies Eliminates going through a system admin Features of a VI Manager (Cont.) Multiple Backend Hypervisors Drawbacks of virtualization models Uniform Management of Virtualization Storage Virtualization Abstracting Logical Storage from Physical Storage Creation of Virtual disk independent from device and location Storage Area Networks (SAN) Fibre Channel, iSCSI, NFS Features of a VI Manager (Cont.) Interface to Public Clouds Overloading requires borrowing During spikes,VIMs can obtain resources from external sources Virtual Networking Isolated Virtual Networks on top of a Physical Infrastructure Allows VMs to be grouped in same broad cast domain Allows VM’s in one group to block messages from another. Features of a VI Manager (Cont.) Dynamic Resource Allocation Resources need to allocated and deallocated when needed. Demand prediction is difficult to calculate Machine not in use will be put into a low-powered state Moving loads around to reduce overheating Monitor resource utilization and reallocated accordingly Virtual Clusters Holistically managing interconnected groups of Virtual Machines Features of a VI Manager (Cont.) Reservation and Negotiation Mechanism Requesting Computational Resources to be available for them at a specific time (AR) Those that allow AR will be better than those without Having advance reservations using complex attributes is useful to satisfy priorities Reservations should also be able to be negotiated and renegotiated when required. Features of a VI Manager (Cont.) High Availability and Data Recovery Must have little downtime VIMs must have a High Availability (HA) feature used to minimize downtime and prevent business disruptions Detects physical/virtual server failure Restarts VM on a healthy server If not enough VIMs will run redundant VMs and Synchronize them If one fails, users can be moved to a healthy one VI Managers must handle backups of a large number of VMs Must not interfere with performance too much Virtual Infrastructure Managers Disadvantages of the Cloud Security Reliant on Cloud Provider Flaws Requires an Internet Access Summary Cloud Computing Software as a Service Platform as a Service Infrastructure as a Service Virtual Infrastructure Management Works Cited Cloud Computing: Principles and Paradigms. Buyya et al. ExplainingComputers.com http://www.securityweek.com/addressing-cloud-securityconcerns-key-issues-and-recommendations