3.99k likes | 5.89k Views
Mastering Cloud Computing. Rajkumar Buyya, Christian Vecchiola, Thamarai Selvi. Chapters. • • • • • • • • • • • • • • • •. Part I: Foundations Chapter 1 — Introduction Chapter 2 — Principles of Parallel and Distributed Computing Chapter 3 — Virtualization
E N D
Mastering Cloud Computing Rajkumar Buyya, Christian Vecchiola, Thamarai Selvi
Chapters • • • • • • • • • • • • • • • • Part I: Foundations Chapter 1 — Introduction Chapter 2 — Principles of Parallel and Distributed Computing Chapter 3 — Virtualization Chapter 4 — Cloud Computing Architecture Part II: Cloud Application Programming and the Aneka Platform Chapter 5 — Aneka: Cloud Application Platform Chapter 6 — Concurrent Computing: Thread Programming Chapter 7 — High-Throughput Computing: Task Programming Chapter 8 — Data Intensive Computing: Map-Reduce Programming Part III: Industrial Platforms and New Developments Chapter 9 — Cloud Platforms in Industry Chapter 10 — Cloud Applications Chapter 11 — Advanced Topics in Cloud Computing
I have a lot of infrastructure that I want to rent … I need to grow my infrastructure, but I do not know for how long… I have a surplus of infrastructure that I want to make use of I cannot invest in infrastructure, I just started my business…. I have infrastructure and middleware and I can host applications I want to focus on application logic and not maintenance and scalability issues I have infrastructure and provide application services I want to access and edit my documents and photos from everywhere..
Subscription-Oriented Cloud Services: X{compute, apps, data, ..} as a Service (..aaS) Manjrasoft Public Clouds Applications Development and Runtime Platform Compute Cloud Manager Storage Private Cloud Clients Other Govt. Cloud Services Cloud Services 10
Public Clouds Applications Development and Runtime Platform Compute Storage All users, on any device Cloud Manager Private Resources Private Cloud Private Cloud (Government) Organization Personnel Government Agencies
Cloud Deployment Models Private/Enterprise Clouds Hybrid/Inter Clouds Public/Internet Clouds * 3rd party, multi-tenant Cloud infrastructure & services: * Mixed usage of private and public Clouds: Leasing public cloud services when private cloud capacity is insufficient * A public Cloud model within a company’s own Data Center / infrastructure for internal and/or partners use. * available on subscription basis to all.
No capital investments Quality of Service Pay as you go Billing IT outsourcing Security Cloud Computing?
Software as a Service Web 2.0 Interfaces End user applications Scientific applications Office automation, Photo editing, CRM, and Social Networking Examples: Google Documents, Facebook, Flickr, Salesforce Platform as a Service Runtime Environment for Applications Development and Data Processing Platforms Examples: Windows Azure, Hadoop, Google AppEngine, Aneka Infrastructure as a Service Virtualized Servers Storage and Networking Examples: Amazon EC2, S3, Rightscale, vCloud
2010: Microsoft Azure 1970: DARPA’s TCP/IP 1999: Grid Computing 1984: IEEE 802.3 Ethernet & LAN 1997: IEEE 802.11 (Wi-Fi) 2008: Google AppEngine 1966: Flynn’s Taxonomy SISD, SIMD, MISD, MIMD 1989: TCP/IP IETF RFC 1122 2007: Manjrasoft Aneka 1969: ARPANET 2005: Amazon AWS (EC2, S3) 1984: DEC’s VMScluster 1951: UNIVAC I, First Mainframe 1975: Xerox PARC Invented Ethernet 2004: Web 2.0 Clouds 1990: Lee-Calliau WWW, HTTP, HTML 1960: Cray’s First Supercomputer Grids Clusters Mainframes 1950 1960 1970 1980 1990 2000 2010
Chapter 2 – Parallel and Distributed Computing
ParallelApplications Parallel Programming Environments Sequential Applications Compilers, PVM, MPI, …. Cluster Middleware: Single System Image and Availability Infrastructure PC / Workstation PC / Workstation PC / Workstation PC / Workstation Common SW & Applications Common SW & Applications Common SW & Applications Common SW & Applications Operating System Operating System Operating System Operating System Network Interface HW Network Interface HW Network Interface HW Network Interface HW High speed network connection
Applications User interface for presentation Distributed System Stack Middleware Support for heterogeneous resource sharing, communication, and programming environments for application development Operative System Execution platform including network connectivity services Hardware Computer and network hardware
MPI Programming, JMS, MSMQ, MQS Message Based Communication Paradigms / Architectural Models
Architectures Sequential Era Compilers Applications Problem Solving Environments Architectures Compilers Parallel Era Applications Problem Solving Environments 2030 2020 1990 2000 2010 1970 1980 1960 1940 1950
Instruction Stream Data Input Data Output Processor
Single Instruction Stream Data Input 1 Data Output 1 Processor 1 Data Output 2 Data Input 2 Processor 2 Data Output N Data Input N Processor N
Instruction Stream 1 Instruction Stream N Instruction Stream 2 Single Data Output Stream Single Data Input Stream Processor 1 Processor 2 Processor N
Instruction Stream 1 Instruction Stream N Instruction Stream 2 Data Output 1 Data Input 1 Processor 1 Data Input 2 Data Output 2 Processor 2 Data Output 3 Data Input N Processor N
Cache L1 Cache L1 Core 2 IPC Channel IPC Channel Processor 1 Processor 2 Processor N Processor 2 Processor 1 Processor 2 Memory Bus Memory Bus Memory Bus Memory Bus Local Local Local Global System Memory Memory Memory Memory
Messages IPC Messages IPC Large Level (Processes, Tasks) Task 1 Task 2 Task N Shared Memory Shared Memory function fJ() {…} function f2() {…} function f1() {…} Medium Level (Threads, Functions) Function 1 Function 2 Function J Fine Level (Processor, Instructions) a[1] = … b[1] = … a[k] = … b[k] = … a[0] = … b[0] = … Statements Statements Statements Very Fine Level (Cores, Pipeline, Instructions) x + load
Applications Frameworks for distributed programming Middleware IPC primitives for control and data. Operating System Networking and Parallel Hardware Hardware
Social Networks, Scientific Computing, Enterprise Applications Applications (SaaS) Frameworks for Cloud Application Development Middleware (PaaS) Virtual hardware, networking, OS images, and storage. Hardware and OS (IaaS)
Client-server request Two Tier (Classic Model) client server response Three Tier client server Server/client N Tier server client Server/client Server/client server
P2P peer peer peer peer peer peer peer
RPC Node B Node A Procedure Registry Main Procedure Procedure C:Node B Procedure A Procedure C RPC Service RPC Library Procedure B Program C (RPC Server) Program A (RPC Client) Return Value Marshaling Parameters Marshaling and Procedure Name Return Value Unmarshaling Parameters Unmarshaling and Procedure Name Network
DOF interaction Node B Node A Application B 21 10 16 Instance Remote Instance 15 5: Object Activation 1: Ask for Reference Object Skeleton Object Proxy 11 17 6 20 4 9 14 Remote Reference Module Remote Reference Module Application A 8 7 12 13 3 19 2 18 Network
Web Service WSDL(s) Web Server UDDI Registry WS Client WSDL Web Server Application Web Service WSDL WS Client Application Application
WS technology Stack WSFL Web Service Flow Static UDDI Service Discovery Quality of Service Direct UDDI Service Publication Management Service Description Security WSDL XML-based Messaging SOAP Network HTTP, FTP,e-mail, MQ, IIOP, ….
SOAP Messages POST /InStock HTTP/1.1 Host: www.stocks.com Content-Type: application/soap+xml; charset=utf-8 Content-Length: <Size> <?xml version=“1.0”> Envelope <soap:Envelope xmlns:soap=“http//www.w3.org/2001/12/soap-envelope” soap:encondingStyle=“http//www.w3.org/2001/12/soap-encoding”> Header: Metadata & Assertions <soap:Header></soap:Header> <soap:Body xmlns:m=http://www.stocks.org/stock> <m:GetStockPrice> <m:StockName>IBM<m:StockName> </m:GetStockPrice> </soap:Body> Body: Method Call </soap:Envelope>
SOAP Messages POST /InStock HTTP/1.1 Host: www.stocks.com Content-Type: application/soap+xml; charset=utf-8 Content-Length: <Size> <?xml version=“1.0”> Envelope <soap:Envelope xmlns:soap=“http//www.w3.org/2001/12/soap-envelope” soap:encondingStyle=“http//www.w3.org/2001/12/soap-encoding”> Header: Metadata & Assertions <soap:Header></soap:Header> <soap:Body xmlns:m=http://www.stocks.org/stock> <m:GetStockPriceResponse> <m:Price>34.5<m:Price> </m:GetStockPriceResponse> </soap:Body> Body: Execution Result </soap:Envelope>
Virtual Image Applications Applications Guest Virtual Hardware Virtual Storage Virtual Networking Virtualization Layer Software Emulation Host Physical Storage Physical Hardware Physical Networking
Applications Application - level Virtualization Programming Languages Execution Stack Programming Language level Virtualization Operative Systems OS- level Virtualization Hardware Hardware - level Virtualization
Virtual Resources Sharing Isolation Aggregation Emulation Virtualization Physical Resources
How it is done? Technique Virtualization Model Emulation Application Execution Environment Programming Language High-Level VM Process Level Storage Operating System Multiprogramming Virtualization Network Hardware-assisted Virtualization Full Virtualization Hardware System Level Paravirtualization …. Partial Virtualization
Applications Applications API calls API Libraries Libraries User ISA ABI System calls User ISA Operative System Operative System ISA ISA Hardware Hardware
Least privileged mode (user mode) Ring 3 Privileged modes Ring 2 Ring 1 Ring 0 Most privileged mode (supervisor mode)
Guest In memory representation Virtual Image Storage VMM Host emulation Virtual Machine binary translation instruction mapping interpretation …… Host
VM VM VM VM ISA Virtual Machine Manager VM VM VM VM ISA ABI Virtual Machine Manager Operative System ISA ISA Hardware Hardware
Virtual Machine Instance ISA Instructions (ISA) Interpreter Routines Routines Interpreter Dispatcher Allocator Virtual Machine Manager
Privileged Instructions Sensitive Instructions User Instructions
VM VM VM VM VM VM Virtual Machine Manager Server A (running) Server B (running) Before Migration VM VM VM VM VM VM Virtual Machine Manager Server A (running) Server B (inactive) After Migration
User Applications (unmodified ABI) Management Domain (Domain 0) • VM Management • HTTP interface • Access to the Xen Hypervisor Ring 3 User Domains (Domain U) • Guest OS • Modified codebase • Hypercallsinto Xen VMM Ring 2 Ring 1 Ring 0 Privileged instructions Xen Hypervisor (VMM) • Memory management • CPU state registers • Devices I/O Hardware trap Hardware (x86)
User Applications (unmodified ABI) Ring 3 Ring 2 Ring 1 Guest Operating System • Unmodified codebase • VMM unaware Ring 0 Hypervisor • Binary translation • Instruction caching Hardware trap (sensitive instructions) Dynamic / cached translation (sensitive instructions) Hardware (x86)
User Applications I/O Guest Operating System User Applications VMware Workstation Virtual Machine Instance Host Operating System VMware Hypervisor (VMM) • Direct access to hardware •I/O, memory, networking for guests • Save/Restore CPU state for host OS VMware Driver Hardware (x86)
serverd (daemon) VMware VMware Web Server VMware VM Instance VM Instance VM Instance Host Operating System VMware Hypervisor (VMM) • Direct access to hardware •I/O, memory, networking for guests • Save/Restore CPU state for host OS VMware Driver Hardware (x86)
SNMP vxpa CIM broker VM VM VM syslog hostd DCUI VMX VMX VMX Third-party CIM plug-ins VMM VMM VMM User world API Virtual Ethernet adapter and switch Distributed VM file system Network stack Storage stack Resource scheduling Device drivers VMkernel Hardware
Application Virtualization Zimbra Platform Virtualization vFabric vCloud vCenter vCenter Infrastructure Virtualization vSphere vSphere vSphere vSphere ESXi ESXi ESXi ESXi ESX ESX ESX ESX Server Server Server Server Data Center Data Center Cloud
VMWPs User Applications (Ring 3) User Applications (Ring 3) User Applications (Ring 3) WMI VMMS Hypervisor-aware Kernel (Ring 0) Hypervisor-aware Wndows Kernel (Ring 0) Hypervisor-aware Linux Kernel (Ring 0) Hypervisor-unaware Kernel (Ring 0) VSPs VID VSCs / ICs VSCs / ICs WinHv WinHv LinuxHv I/O Stack Drivers I/O Stack Drivers I/O Stack Drivers Latest Pictures. VMBus VMBus VMBus Unenlightened Child Partition Root / Parent Partition Enlightened Child Partition Enlightened Child Partition Hypervisor (Ring -1) Address Management Partition Management Hypercalls MSRs APIC Scheduler Processor Memory Hardware (x86)