Cloud Computing - Week 1 Lecture 1-5 PDF
Document Details
Uploaded by VirtuousGenre
IIT Kharagpur
Prof. Soumya K. Ghosh
Tags
Summary
This document provides an overview of cloud computing, including its introduction, architecture, and different services. The lecture notes cover key concepts and introduce various aspects of cloud computing, such as distributed computing, and its applications.
Full Transcript
CLOUD COMPUTING Cloud Computing - Overview PROF. SOUMYA K. GHOSH DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING IIT KHARAGPUR Introduction The ACM Computing Curricula 2005 defined "computing" as "In a general way, we can define computing to me...
CLOUD COMPUTING Cloud Computing - Overview PROF. SOUMYA K. GHOSH DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING IIT KHARAGPUR Introduction The ACM Computing Curricula 2005 defined "computing" as "In a general way, we can define computing to mean any goal-oriented activity requiring, benefiting from, or creating computers. Thus, computing includes designing and building hardware and software systems for a wide range of purposes; processing, structuring, and managing various kinds of information; doing scientific studies using computers; making computer systems behave intelligently; creating and using communications and entertainment media; finding and gathering information relevant to any particular purpose, and so on. The list is virtually endless, and the possibilities are vast." 2 Cloud Computing Course - Overview I. Introduction to Cloud Computing i. Overview of Computing ii. Cloud Computing (NIST Model) iii. Properties, Characteristics & Disadvantages iv. Role of Open Standards II. Cloud Computing Architecture i. Cloud computing stack ii. Service Models (XaaS) a. Infrastructure as a Service(IaaS) b. Platform as a Service(PaaS) c. Software as a Service(SaaS) iii. Deployment Models III. Service Management in Cloud Computing i. Service Level Agreements(SLAs) ii. Cloud Economics IV. Resource Management in Cloud Computing Cloud Computing Course (contd.) V. Data Management in Cloud Computing i. Looking at Data, Scalability & Cloud Services ii. Database & Data Stores in Cloud iii. Large Scale Data Processing VI. Cloud Security i. Infrastructure Security ii. Data security and Storage iii. Identity and Access Management iv. Access Control, Trust, Reputation, Risk VII. Case Study on Open Source and Commercial Clouds, Cloud Simulator VIII. Research trend in Cloud Computing, Fog Computing Trends in Computing Distributed Computing Grid Computing Cluster Computing Utility Computing Cloud Computing 5 Distributed Computing 6 Centralized vs. Distributed Computing Early computing was performed on a single processor. Uni-processor computing can be called centralized computing. 7 Distributed Computing/System? Distributed computing – Field of computing science that studies distributed system. – Use of distributed systems to solve computational problems. Distributed system – Wikipedia There are several autonomous computational entities, each of which has its own local memory. The entities communicate with each other by message passing. – Operating System Concept The processors communicate with one another through various communication lines, such as high-speed buses or telephone lines. Each processor has its own local memory. 8 Example Distributed Systems Internet ATM (bank) machines Intranets/Workgroups Computing landscape will soon consist of ubiquitous network-connected devices 9 Computers in a Distributed System Workstations: Computers used by end-users to perform computing Server Systems: Computers which provide resources and services Personal Assistance Devices: Handheld computers connected to the system via a wireless communication link. 10 Common properties of Distributed Computing – Fault tolerance When one or some nodes fails, the whole system can still work fine except performance. Need to check the status of each node – Each node play partial role Each computer has only a limited, incomplete view of the system. Each computer may know only one part of the input. – Resource sharing Each user can share the computing power and storage resource in the system with other users – Load Sharing Dispatching several tasks to each nodes can help share loading to the whole system. – Easy to expand We expect to use few time when adding nodes. Hope to spend no time if possible. – Performance Parallel computing can be considered a subset of distributed computing 11 Why Distributed Computing? Nature of application Performance – Computing intensive The task could consume a lot of time on computing. For example, Computation of Pi value using Monte Carlo simulation – Data intensive The task that deals with a large amount or large size of files. For example, Facebook, LHC(Large Hadron Collider) experimental data processing. Robustness – No SPOF (Single Point Of Failure) – Other nodes can execute the same task executed on failed node. 12 13 CLOUD COMPUTING CLOUD COMPUTING OVERVIEW (contd..) PROF. SOUMYA K. GHOSH DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING IIT KHARAGPUR Why Distributed Computing? Nature of application Performance – Computing intensive The task could consume a lot of time on computing. For example, Computation of Pi value using Monte Carlo simulation – Data intensive The task that deals with a large amount or large size of files. For example, Facebook, LHC(Large Hadron Collider) experimental data processing. Robustness – No SPOF (Single Point Of Failure) – Other nodes can execute the same task executed on failed node. 2 Distributed applications Applications that consist of a set of processes that are distributed across a network of machines and work together as an ensemble to solve a common problem In the past, mostly “client-server” Resource management centralized at the server “Peer to Peer” computing represents a movement towards more “truly” distributed applications 3 Clients invoke individual servers 4 A typical distributed application based on peer processes 5 Grid Computing 6 Grid Computing? Pcwebopedia.com – A form of networking. unlike conventional networks that focus on communication among devices, grid computing harnesses unused processing cycles of all computers in a network for solving problems too intensive for any stand-alone machine. IBM – Grid computing enables the virtualization of distributed computing and data resources such as processing, network bandwidth and storage capacity to create a single system image, granting users and applications seamless access to vast IT capabilities. Just as an Internet user views a unified instance of content via the Web, a grid user essentially sees a single, large virtual computer. Sun Microsystems – Grid Computing is a computing infrastructure that provides dependable, consistent, pervasive and inexpensive access to computational capabilities 7 Electrical Power Grid Analogy Electrical Power Grid Grid Users (or electrical appliances) get access to Users (or client applications) gain access to computing electricity through wall sockets with no care or resources (processors, storage, data, applications, and so on) as needed with little or no knowledge of where consideration for where or how the electricity those resources are located or what the underlying is actually generated. technologies, hardware, operating system, and so on are “The power grid” links together power plants “The Grid" links together computing resources (PCs, of many different kinds workstations, servers, storage elements) and provides the mechanism needed to access them. 8 Grid Computing When v use 1. Share more than information: Data, computing power, applications in dynamic environment, multi-institutional, virtual organizations 2. Efficient use of resources at many institutes. People from many institutions working to solve a common problem (virtual organisation). 3. Join local communities. 4. Interactions with the underneath layers must be transparent and seamless to the user. 9 Need of Grid Computing? Today’s Science/Research is based on computations, data analysis, data visualization & collaborations Computer Simulations & Modelling are more cost effective than experimental methods Mathematical modeling of systems Scientific and Engineering problems are becoming more complex & users need more accurate, precise solutions to their problems in shortest possible time Data Visualization is becoming very important Exploiting under utilized resources 10 Who uses Grid Computing ? 11 Type of Grids Computational Grid: These grids provide secure access to huge pool of shared processing power suitable for high throughput applications and computation intensive computing. Data Grid: Data grids provide an infrastructure to support data storage, data discovery, data handling, data publication, and data manipulation of large volumes of data actually stored in various heterogeneous databases and file systems. Collaboration Grid: With the advent of Internet, there has been an increased demand for better collaboration. Such advanced collaboration is possible using the grid. For instance, persons from different companies in a virtual enterprise can work on different components of a CAD project without even disclosing their proprietary technologies. 12 Type of Grids Network Grid: A Network Grid provides fault-tolerant and high-performance communication services. Each grid node works as a data router between two communication points, providing data-caching and other facilities to speed up the communications between such points. Utility Grid: This is the ultimate form of the Grid, in which not only data and computation cycles are shared but software or just about any resource is shared. The main services provided through utility grids are software and special equipment. For instance, the applications can be run on one machine and all the users can send their data to be processed to that machine and receive the result back. 13 Grid Components Source: Kajari Mazumdar “GRID: Computing Without Borders” Department of High Energy Physics TIFR, Mumbai. 14 Cluster Computing 15 What is Cluster Computing? A cluster is a type of parallel or distributed computer system, which consists of a collection of inter-connected stand-alone computers working together as a single integrated computing resource. Key components of a cluster include multiple standalone computers (PCs, Workstations, or SMPs), operating systems, high-performance interconnects, middleware, parallel programming environments, and applications. 16 Cluster Computing? Clusters are usually deployed to improve speed and/or reliability over that provided by a single computer, while typically being much more cost effective than single computer the of comparable speed or reliability In a typical cluster: – Network: Faster, closer connection than a typical network (LAN) – Low latency communication protocols – Loosely coupled than SMP 17 Types of Cluster High Availability or Failover Clusters Load Balancing Cluster Parallel/Distributed Processing Clusters 18 Cluster Components Basic building blocks of clusters are broken down into multiple categories: Cluster Nodes Cluster Network Network Characterization 19 Key Operational Benefits of Clustering System availability: offer inherent high system availability due to the redundancy of hardware, operating systems, and applications. Hardware fault tolerance: redundancy for most system components (eg. disk-RAID), including both hardware and software. OS and application reliability: run multiple copies of the OS and applications, and through this redundancy Scalability. adding servers to the cluster or by adding more clusters to the network as the need arises or CPU to SMP. High performance: (running cluster enabled programs) 20 Utility Computing 21 “Utility” Computing ? Utility Computing is purely a concept which cloud computing practically implements. Utility computing is a service provisioning model in which a service provider makes computing resources and infrastructure management available to the customer as needed, and charges them for specific usage rather than a flat rate. This model has the advantage of a low or no initial cost to acquire computer resources; instead, computational resources are essentially rented. The word utility is used to make an analogy to other services, such as electrical power, that seek to meet fluctuating customer needs, and charge for the resources based on usage rather than on a flat-rate basis. This approach, sometimes known as pay-per-use 22 “Utility” Computing ? "Utility computing" has usually envisioned some form of virtualization so that the amount of storage or computing power available is considerably larger than that of a single time- sharing computer. Source: Alan McSweeney, “The Economics of Utility Computing” 23 “Utility” Computing ? a) Pay-for-use Pricing Business Model b) Data Center Virtualization and Provisioning c) Solves Resource Utilization Problem d) Outsourcing e) Web Services Delivery f) Automation 24 Utility Computing Example On-Demand Cyber Infrastructure 25 Utility Solution – Your Perspective Consumer vs Provider Service Infrastructure Procurement Procurement Service Equipment Assurance Pricing Maintenance Resource Availability Utilization Technology Contractor Security SLA Refresh Management System Consultants Application Admins Sizing Capacity Planning Source: Perry Boster, “Utility Computing for Shared Services”, Massachusetts Digital Government Summit, September 23rd, 2004 – Boston, MA 26 Utility Computing Payment Models Same range of charging models as other utility providers: gas, electricity, telecommunications, water, television broadcasting − Flat rate − Tiered − Subscription − Metered − Pay as you go − Standing charges Different pricing models for different customers based on factors such as scale, commitment and payment frequency But the principle of utility computing remains The pricing model is simply an expression by the provider of the costs of provision of the resources and a profit margin 27 Risks in a UC World Data Backup Data Security Partner Competency Defining SLA Getting value from charge back 28 Cloud Computing 29 Cloud Computing US National Institute of Standards and Technology defines Computing as “ 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. ” 30 Source: http://www.smallbiztechnology.com/archive/2011/09/wait-what-is-cloud-computing.html/ 31 Cloud Computing - Overview Prof. Soumya K Ghosh Department of Computer Science and Engineering IIT KHARAGPUR 1 Cloud Computing 2 Cloud Computing US National Institute of Standards and Technology (NIST) defines Computing as: “ 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. ” http://www.smallbiztechnology.com/archive/2011/09/wait-what-is-cloud-computing.html 3 Essential Characteristics On-demand self-service A consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with each service provider. Broad network access Capabilities are available over the network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g., mobile phones, tablets, laptops, and workstations). Resource pooling The provider’s computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand. 4 Cloud Characteristics Measured Service – Cloud systems automatically control and optimize resource use by leveraging a metering capability at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be – monitored, controlled, and reported, providing transparency for both the provider and consumer of the utilized service. Rapid elasticity – Capabilities can be elastically provisioned and released, in some cases automatically, to scale rapidly outward and inward commensurate with demand. To the consumer, the capabilities available for provisioning often appear to be unlimited and can be appropriated in any quantity at any time. 5 Common Characteristics Massive Scale Resilient Computing Homogeneity Geographic Distribution Virtualization Service Orientation Low Cost Software Advanced Security 6 Cloud Services Models Software as a Service (SaaS) The capability provided to the consumer is to use the provider’s applications running on a cloud infrastructure. The applications are accessible from various client devices through either a thin client interface, such as a web browser (e.g., web-based email), or a program interface. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings. e.g: Google Spread Sheet Cloud Infrastructure as a Service (IaaS) The capability provided to provision processing, storage, networks, and other fundamental computing resources Consumer can deploy and run arbitrary software e.g: Amazon Web Services and Flexi scale. 7 Cloud Services Models Platform as a Service (PaaS) The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages, libraries, services, and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, but has control over the deployed applications and possibly configuration settings for the application-hosting environment. 8 Cloud Services Models 9 Types of Cloud (Deployment Models) Private cloud The cloud infrastructure is operated solely for an organization. e.g Window Server 'Hyper-V'. Community cloud The cloud infrastructure is shared by several organizations and supports a specific goal. Public cloud The cloud infrastructure is made available to the general public e.g Google Doc, Spreadsheet, Hybrid cloud The cloud infrastructure is a composition of two or more clouds (private, community, or public) e.g Cloud Bursting for load balancing between clouds. 10 Cloud and Virtualization Virtual Workspaces: – An abstraction of an execution environment that can be made dynamically available to authorized clients by using well-defined protocols, – Resource quota (e.g. CPU, memory share), – Software configuration (e.g. OS). Implement on Virtual Machines (VMs): – Abstraction of a physical host machine, – Hypervisor intercepts and emulates instructions from VMs, and allows management of VMs, – VMWare, Xen, KVM etc. App App App OS OS OS Provide infrastructure API: Hypervisor – Plug-ins to hardware/support structures Hardware Virtualized Stack 11 Virtual Machines VM technology allows multiple virtual machines to run on a single physical machine. App App App App App Guest OS Guest OS Guest OS Xen VMWare (Linux) (NetBSD) (Windows) VM VM VM Virtual Machine Monitor (VMM) / Hypervisor Hardware Performance: Para-virtualization (e.g. Xen) is very close to raw physical performance! 12 Virtualization in General Advantages of virtual machines: – Run operating systems where the physical hardware is unavailable, – Easier to create new machines, backup machines, etc., – Software testing using “clean” installs of operating systems and software, – Emulate more machines than are physically available, – Timeshare lightly loaded systems on one host, – Debug problems (suspend and resume the problem machine), – Easy migration of virtual machines (shutdown needed or not). – Run legacy systems 13 Cloud-Sourcing Why is it becoming important ? – Using high-scale/low-cost providers, – Any time/place access via web browser, – Rapid scalability; incremental cost and load sharing, – Can forget need to focus on local IT. Concerns: – Performance, reliability, and SLAs, – Control of data, and service parameters, – Application features and choices, – Interaction between Cloud providers, – No standard API – mix of SOAP and REST! – Privacy, security, compliance, trust… 14 Cloud Storage Several large Web companies are now exploiting the fact that they have data storage capacity that can be hired out to others. – Allows data stored remotely to be temporarily cached on desktop computers, mobile phones or other Internet-linked devices. Amazon’s Elastic Compute Cloud (EC2) and Simple Storage Solution (S3) are well known examples 15 Advantages of Cloud Computing Lower computer costs: – No need of a high-powered and high-priced computer to run cloud computing's web-based applications. – Since applications run in the cloud, not on the desktop PC, your desktop PC does not need the processing power or hard disk space demanded by traditional desktop software. – When you are using web-based applications, your PC can be less expensive, with a smaller hard disk, less memory, more efficient processor... – In fact, your PC in this scenario does not even need a CD or DVD drive, as no software programs have to be loaded and no document files need to be saved. 16 Advantages of Cloud Computing Improved performance: – With few large programs hogging your computer's memory, you will see better performance from your PC. – Computers in a cloud computing system boot and run faster because they have fewer programs and processes loaded into memory. Reduced software costs: – Instead of purchasing expensive software applications, you can get most of what you need for free. most cloud computing applications today, such as the Google Docs suite. – better than paying for similar commercial software which alone may be justification for switching to cloud applications. 17 Advantages of Cloud Computing Instant software updates – Another advantage to cloud computing is that you are no longer faced with choosing between obsolete software and high upgrade costs. – When the application is web-based, updates happen automatically available the next time you log into the cloud. – When you access a web-based application, you get the latest version without needing to pay for or download an upgrade. Improved document format compatibility. – You do not have to worry about the documents you create on your machine being compatible with other users' applications or OS. – There are less format incompatibilities when everyone is sharing documents and applications in the cloud. 18 Advantages of Cloud Computing Unlimited storage capacity – Cloud computing offers virtually limitless storage. – Your computer's current 1 Tera Bytes hard drive is small compared to the hundreds of Peta Bytes available in the cloud. Increased data reliability – Unlike desktop computing, in which if a hard disk crashes and destroy all your valuable data, a computer crashing in the cloud should not affect the storage of your data. if your personal computer crashes, all your data is still out there in the cloud, still accessible – In a world where few individual desktop PC users back up their data on a regular basis, cloud computing is a data-safe computing platform. For e.g. Dropbox, Skydrive 19 Advantages of Cloud Computing Universal information access – That is not a problem with cloud computing, because you do not take your documents with you. – Instead, they stay in the cloud, and you can access them whenever you have a computer and an Internet connection – Documents are instantly available from wherever you are. Latest version availability – When you edit a document at home, that edited version is what you see when you access the document at work. – The cloud always hosts the latest version of your documents as long as you are connected, you are not in danger of having an outdated version. 20 Advantages of Cloud Computing Easier group collaboration – Sharing documents leads directly to better collaboration. – Many users do this as it is an important advantages of cloud computing multiple users can collaborate easily on documents and projects Device independence – You are no longer tethered to a single computer or network. – Changes to computers, applications and documents follow you through the cloud. – Move to a portable device, and your applications and documents are still available. 21 Disadvantages of Cloud Computing Requires a constant internet connection – Cloud computing is impossible if you cannot connect to the Internet. – Since you use the Internet to connect to both your applications and documents, if you do not have an Internet connection you cannot access anything, even your own documents. – A dead Internet connection means no work and in areas where Internet connections are few or inherently unreliable, this could be a deal-breaker. Does not work well with low-speed connections – Similarly, a low-speed Internet connection, such as that found with dial-up services, makes cloud computing painful at best and often impossible. – Web-based applications require a lot of bandwidth to download, as do large documents. 22 Disadvantages of Cloud Computing Features might be limited – This situation is bound to change, but today many web-based applications simply are not as full-featured as their desktop-based applications. For example, you can do a lot more with Microsoft PowerPoint than with Google Presentation's web-based offering Can be slow – Even with a fast connection, web-based applications can sometimes be slower than accessing a similar software program on your desktop PC. – Everything about the program, from the interface to the current document, has to be sent back and forth from your computer to the computers in the cloud. – If the cloud servers happen to be backed up at that moment, or if the Internet is having a slow day, you would not get the instantaneous access you might expect from desktop applications. 23 Disadvantages of Cloud Computing Stored data might not be secured – With cloud computing, all your data is stored on the cloud. The questions is How secure is the cloud? – Can unauthorized users gain access to your confidential data ? Stored data can be lost! – Theoretically, data stored in the cloud is safe, replicated across multiple machines. – But on the off chance that your data goes missing, you have no physical or local backup. Put simply, relying on the cloud puts you at risk if the cloud lets you down. 24 Disadvantages of Cloud Computing HPC Systems High performance system – Not clear that you can run compute-intensive HPC applications that use MPI/OpenMP! – Scheduling is important with this type of application as you want all the VM to be co-located to minimize communication latency! General Concerns – Each cloud systems uses different protocols and different APIs may not be possible to run applications between cloud based systems – Amazon has created its own DB system (not SQL 92), and workflow system (many popular workflow systems out there) so your normal applications will have to be adapted to execute on these platforms. 25 Evolution of Cloud Computing Business drivers for adopting cloud computing Reasons The main reason for interest in cloud computing is due to the fact that public clouds can significantly reduce IT costs. From and end user perspective cloud computing gives the illusion of potentially infinite capacity with ability to scale rapidly and pay only for the consumed resource. In contrast, provisioning for peak capacity is a necessity within private data centers, leading to a low average utilization of 5-20 percent. 27 IaaS Economics In house server Cloud server Purchase Cost $9600 (x86,3QuadCore,12GB 0 RAM, 300GB HD) Cost/hr (over 3 years) $0.36 $0.68 Cost ratio: Cloud/In house 1.88 Efficiency 40% 80% Cost/Effective hr $0.90 $0.85 Power and cooling $0.36 0 Management Cost $0.10 $0.01 Total cost/effective hr $1.36 $0.86 Cost ratio: In house/Cloud 1.58 Source: Enterprise Cloud Computing by Gautam Shroff 28 Benefits for the end user while using public cloud High utilization High scalability No separate hardware procurement No separate power cost No separate IT infrastructure administration/maintenance required Public clouds offer user friendly SLA by offering high availability (~99%) and also provide compensation in case of SLA miss. Users can rent the cloud to develop and test prototypes before making major investments in technology 29 Benefits for the end user while using public cloud In order to enhance portability from one public cloud to another, several organizations such as Cloud Computing Interoperability Forum and Open Cloud Consortium are coming up with standards for portability. For e.g. Amazon EC2 and Eucalyptus share the same API interface. Software startups benefit tremendously by renting computing and storage infrastructure on the cloud instead of buying them as they are uncertain about their own future. 30 Benefits for Small and Medium Businesses (