CLOUD COMPUTING UNIT – 1 Book: Cloud Computing Principles and Paradigms By: Rajkumar Buyya, James Broberg, Andrzej Goscinski INTRODUCTION – Fully virtualized. – Built from distributed components ( storage, data & s/w resources) – Technologies – cluster, grid and now is cloud computing. – Pay – as – you – go: water, electricity, gas, telephone. Cloud Computing • On demand computing services: Amazon, Google, etc. • Denotes a model on which a computing infrastructure is viewed as a “cloud”. • Principle behind the model: offering computing, storage and s/w “as a service”. Buyya: “Cloud is a parallel and distributed computing system consisting of a collection of interconnected and virtualised computers that are dynamically provisioned and presented as one or more unified computing resources based on service-level agreements (SLA) established through negotiation between the service provider and consumers.” Vaquero: “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.” McKinsey and Co. report: “Clouds are hardware based services offering compute, network, and storage capacity where: Hardware management is highly abstracted from the buyer, buyers incur infrastructure costs as variable OPEX, and infrastructure capacity is highly elastic.” • A report from the University of California Berkeley summarized the key characteristics of cloud computing as: 1) The illusion of infinite computing resources; 2) The elimination of an up-front commitment by cloud users 3) The ability to pay for use . . . as needed . . . 1.2 - Roots of Cloud Computing • Advancement of technologies: - Hardware ( virtualization, multi-core chips) - Internet Technologies ( Web services , service oriented architectures) - Distributed Computing ( Clusters, grids) - System Management ( automatic computing, data center automation) 1.2.1 - From mainframes to cloud Computing - “On demand delivery of infrastructure, applications, and business processes in a security-rich, shared, scalable, and based computer environment over the Internet for a fee” • Mainframe era collapsed -> fast and inexpensive microprocessor. • IT data centers -> collection of servers. 1.2.2 - SOA, Web Services, Web 2.0 and Mashups • SOA - Service Oriented Architectures. • Web services – application made available to others. • WS -> HTML, XML -> provides common mechanism for delivering services, ideal for SOA. • Purpose of SOA – address requirements of loosely coupled, standards-based, and protocol-independent distributed computing. • WS - intent of serving end-user applications • Initially SOA application focused on Enterprise Web. • Gained space in consumer and became - Web 2.0. • In the consumer Web, information and services may be programmatically aggregated, acting as building blocks of complex compositions, called service mashups. • Eg: Amazon, del.icio.us, Facebook, and Google [Standard protocols :SOAP & REST] • Popular APIs : Google Maps, Flickr, YouTube, Amazon eCommerce, and Twitter 1.2.3 Grid Computing • • • • Aggregation of distributed resources. Users don’t pay. Resources have diverse s/w configuration. Applications would run on specially customized environment. • So, portability is a barrier. 1.2.4 Utility Computing • Users are assigned a “Utility” value to their jobs. • Utility: a fixed or time varying valuation that captures various QoS constraints(deadline, importance, satisfaction) 1.2.5 Hardware Virtualization • Perfect fit the overcome operational issues of data center building & maintenance. • It allows running multiple OS & s/w stacks on a single physical platform. 1.2.5 Hardware Virtualization 1.2.5 Hardware Virtualization • Researchers emphasize on basic capabilities regarding workload in a virtualized environment. 1) Isolation 2) Consolidation 3) Migration Types of VM 1) VMWare ESXi 2) Xen 3) KVM VMWare ESXi: • Pioneer in virtualization. • Bare Metal Hypervisor: Installs directly on the physical server, while others require host PC. • Memory Ballooning & Page sharing. Xen: • Initially started as open source, then shifted to commercial and open source both. • Pioneer in para-virtualization: guest OS with the help of kernel, can interact with the hypervisors. • Eg: Critix XenServer & Oracle VM KVM: • Kernel Based VM – Linux virtualization system. • Supports: Memory management & Scheduling. • Which makes KVM simpler 1.2.6 Virtual Appliances & the open virtualization format • Virtual Appliances: An application combined with the “environment” needed to run. • “environment” -> OS, libraries, compilers, database, applications, etc. • Vendors providing the packing & distribution of the s/w (Eg: VMWare, IBM, Critix, Cisco, Microsoft, Dell, HP) • OVF – Open Virtualization Format • Open, secure, portable, efficient & extensible. • OVF package: File/set of files -> describe VM characteristics. (memory, n/w cards, disks, OS details, startup & Shut down, meta data of the product, license info.) 1.2.7 Autonomic Computing • Systems manage themselves. • Systems - Monitoring probes - Gauges(sensors) - An adaption engine(autonomic manager). • IBM autonomic computing initiative has 4 properties: 1) Self Configuration 2) Self Optimization 3) Self healing 4) Self protection Other Eg: MAPE – K[Monitor Analyze Plan Execute – Knowledge] 1.3 Layers and types of cloud 1) Infrastructure as a Service 2) Platform as a Service 3) Software as a Service 1.3.1 Infrastructure as a Service(IaaS) • On demand servers. • Users are given privileges to perform the activities on the server (Eg: start, stop, customizing, installing, attaching virtual disks, configuring access permissions and firewall rules) • Bottom layer of cloud computing systems. • Eg: Amazon Web Service 1.3.2 Platform as a Service(PaaS) • Iaas - Provide raw computing and storage services. • PaaS - higher level of abstraction to make a cloud easily programmable. • Developers create and deploy applications. • Multiple programming models and specialized services (e.g., data access, authentication, and payments) are offered. • Eg: PaaS - Google AppEngine • Building blocks-> in-memory object cache(memcache), mail service, instant messaging (XMPP), Image manipulation service, integration with google service. • Paas - Middle layer in cloud computing system 1.3.3 Software as a Service(SaaS) • Top layer in cloud computing systems. • Services provided can be accessed by end users through Web portals. • Traditional desktop – excel, word -> service on the web. • Reduces the burden of s/w maintenance. • Eg: Saas - SalesForce.com 1.3.4 Deployment Models Cloud can be classified as: 1) Public 2) Private 3) Community 4) Hybrid Cloud Bursting: Temporarily renting -> to handle load 1.4 Desired Features of Cloud 1.4.1 : Self Service 1.4.2 : Per-Usage Metering and Billing 1.4.3 : Elasticity 1.4.4 : Customization 1.5 Cloud Infrastructure Management • Virtual Infrastructure Manager(VIM) • Cloud OS Category of cloud echo system tools: 1) Cloud Toolkits 2) The virtual Infrastructure manager 1.5.1 Features • • • • • • • • • • Virtualization Support Self service, On-demand resource planning Multiple Backend Hypervisors Storage Virtualization Interface to public clouds Virtual Networking Dynamic Resource Allocation Virtual Clusters Reservation & Negotiation Mechanism High Availability & Data Recovery Case Studies • • • • • • • • • • • Apache VCL AppLogic Critix Essentials Enomaly ECP Eucalyptus Nimbus Open Nebula Open PEX Ovirt Platfoem ISP VMWare Vsphere & VCloud 1.6 Infrastructure as a service provider Features: • Geographic Presence • User Interfaces and access to servers • Advance reservation of capacity • Automatic scaling & load balancing • Service level agreement • Hypervisor & Operating System choice Case Studies • • • • • AWS Elexiscale Joyent GoGrid RackSpace Cloud Services Comparision chart: page 29 Table 1.2 1.6 Platform as a service provider Features: • Programming Models, Languages, and Frameworks. • Persistence Options Case Studies • • • • • Aneka AppEngine Microsoft Azure Force.com Heroku Comparision chart: page 33 Table 1.3 1.8 Challenges and Risks • Security, privacy and trust • Data lock-in standardization • Availability, fault tolerance and disaster recovery • Resource Management and Energy Efficiency