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 Chapter 1 - Introduction I need to grow my infrastructure, but I do not know for how long… I cannot invest in infrastructure, I just started my business…. I have a lot of infrastructure that I want to rent … I have a surplus of infrastructure that I want to make use of 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.. Manjrasoft Subscription-Oriented Cloud Services: X{compute, apps, data, ..} as a Service (..aaS) Public Clouds Applications Development and Runtime Platform Compute Cloud Manager Clients Storage Private Cloud Other Cloud Services 10 Govt. Cloud Services Public Clouds Applications Development and Runtime Platform Compute Storage All users, on any device Cloud Manager Private Resources Private Cloud Organization Personnel Private Cloud (Government) Government Agencies Cloud Deployment Models Public/Internet Clouds * 3rd party, multi-tenant Cloud infrastructure & services: * available on subscription basis to all. Private/Enterprise Clouds * A public Cloud model within a company’s own Data Center / infrastructure for internal and/or partners use. Hybrid/Inter Clouds * Mixed usage of private and public Clouds: Leasing public cloud services when private cloud capacity is insufficient No capital investments Quality of Service Pay as you go Billing IT outsourcing Security Cloud Computing? Web 2.0 Interfaces Software as a Service 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 1970: DARPA’s TCP/IP 1999: Grid Computing 1984: IEEE 802.3 Ethernet & LAN 1966: Flynn’s Taxonomy SISD, SIMD, MISD, MIMD 1997: IEEE 802.11 (Wi-Fi) 1989: TCP/IP IETF RFC 1122 2010: Microsoft Azure 2008: Google AppEngine 2007: Manjrasoft Aneka 1969: ARPANET 1984: DEC’s VMScluster 1951: UNIVAC I, First Mainframe 1975: Xerox PARC Invented Ethernet Clouds 2004: Web 2.0 1990: Lee-Calliau WWW, HTTP, HTML 1960: Cray’s First Supercomputer Grids 2005: Amazon AWS (EC2, S3) 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 Common SW & Applications PC / Workstation Common SW & Applications PC / Workstation Common SW & Applications PC / Workstation Common SW & Applications Operating System Operating System Operating System Operating System Network Interface HW Network Interface HW Network Interface HW High speed network connection Network Interface HW Applications Distributed System Stack User interface for presentation 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 1940 1950 1960 1970 1980 1990 2000 2010 2020 2030 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 2 Instruction Stream N Single Data Output Stream Single Data Input Stream Instruction Stream 1 Processor 1 Processor 2 Processor N Instruction Stream 1 Instruction Stream 2 Instruction Stream N 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 Memory Bus Global System Memory Processor 1 Memory Bus Local Memory Processor 2 Memory Bus Local Memory Processor 2 Memory Bus Local Memory Messages IPC Messages IPC Task 1 function f1() {…} Function 1 a[0] = … b[0] = … Statements + Task 2 Shared Memory function f2() {…} Function 2 a[1] = … b[1] = … Statements x Task N Shared Memory function fJ() {…} Function J a[k] = … b[k] = … Statements load Large Level (Processes, Tasks) Medium Level (Threads, Functions) Fine Level (Processor, Instructions) Very Fine Level (Cores, Pipeline, Instructions) Frameworks for distributed programming Applications 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 Virtual hardware, networking, OS images, and storage. Middleware (PaaS) Hardware and OS (IaaS) Client-server request Two Tier (Classic Model) client server response Three Tier client Server/client server 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 A Procedure C:Node B Procedure B RPC Library Procedure C RPC Service Program C (RPC Server) Program A (RPC Client) Parameters Marshaling and Procedure Name Return Value Unmarshaling Parameters Unmarshaling and Procedure Name Return Value Marshaling Network DOF interaction Node B Node A Application B 21 10 Instance 16 Remote Instance 15 1: Ask for Reference Object Skeleton Object Proxy 9 11 20 Remote Reference Module 17 14 6 5: Object Activation 4 Remote Reference Module Application A 8 2 12 7 13 19 18 3 Network Web Server UDDI Registry WS Client Web Service WSDL(s) Web Server Application Web Service WSDL WS Client Application Application WSDL Static UDDI Service Discovery Direct UDDI Service Publication WSDL Service Description SOAP XML-based Messaging HTTP, FTP,e-mail, MQ, IIOP, …. Network Quality of Service Web Service Flow Management WSFL Security WS technology Stack 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”> <soap:Envelope xmlns:soap=“http//www.w3.org/2001/12/soap-envelope” soap:encondingStyle=“http//www.w3.org/2001/12/soap-encoding”> <soap:Header></soap:Header> Envelope Header: Metadata & Assertions <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”> <soap:Envelope xmlns:soap=“http//www.w3.org/2001/12/soap-envelope” soap:encondingStyle=“http//www.w3.org/2001/12/soap-encoding”> <soap:Header></soap:Header> Envelope Header: Metadata & Assertions <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> Chapter 3 – Virtualisation Guest Virtual Image Applications Applications Virtual Hardware Virtual Storage Virtual Networking Virtualization Layer Software Emulation Host Physical Hardware Physical Storage Physical Networking Applications Execution Stack Application - level Virtualization Programming Languages Programming Language level Virtualization Operative Systems OS- level Virtualization Hardware Hardware - level Virtualization Virtual Resources Sharing Aggregation Emulation Isolation Virtualization Physical Resources How it is done? Execution Environment Process Level Storage Technique Virtualization Model Emulation Application High-Level VM Programming Language Multiprogramming Operating System Virtualization Network Hardware-assisted Virtualization Full Virtualization Hardware System Level …. Paravirtualization Partial Virtualization Applications Applications API calls API Libraries ABI Libraries System calls Operative System Operative System ISA ISA Hardware Hardware User ISA User ISA Least privileged mode (user mode) Ring 3 Ring 2 Privileged modes Ring 1 Ring 0 Most privileged mode (supervisor mode) Guest In memory representation Storage VMM Virtual Image Host emulation Virtual Machine binary translation instruction mapping interpretation …… Host VM VM VM VM ISA Virtual Machine Manager VM VM VM VM ISA ABI Operative System Virtual Machine Manager ISA ISA Hardware Hardware Virtual Machine Instance ISA Instructions (ISA) Dispatcher Interpreter Interpreter Routines Routines 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 Ring 2 Ring 1 Ring 0 User Domains (Domain U) • Guest OS • Modified codebase • Hypercalls into Xen VMM 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 Dynamic / cached translation (sensitive instructions) Hardware trap (sensitive instructions) Hardware (x86) I/O User Applications Guest Operating System User Applications VMware Workstation Host Operating System VMware Driver Hardware (x86) Virtual Machine Instance VMware Hypervisor (VMM) • Direct access to hardware •I/O, memory, networking for guests • Save/Restore CPU state for host OS serverd (daemon) VMware VMware Web Server VMware Host Operating System VMware Driver Hardware (x86) VM Instance VM Instance VM Instance VMware Hypervisor (VMM) • Direct access to hardware •I/O, memory, networking for guests • Save/Restore CPU state for host OS CIM broker Third-party CIM plug-ins vxpa hostd SNMP DCUI syslog VMX VMX User world API VMkernel Hardware VM VM VM VMM VMM VMM VMX Resource scheduling Distributed VM file system Virtual Ethernet adapter and switch Storage stack Network stack Device drivers Zimbra Application Virtualization vFabric Platform Virtualization vCloud vCenter vCenter vSphere vSphere vSphere vSphere ESXi ESXi ESXi ESXi ESX ESX ESX ESX Server Server Server Server Data Center Data Center Cloud Infrastructure Virtualization VMWPs User Applications (Ring 3) WMI VMMS Hypervisor-aware Kernel (Ring 0) VSPs I/O Stack Drivers VID WinHv Hypervisor-aware Wndows Kernel (Ring 0) I/O Stack Drivers Hypervisor (Ring -1) Hypercalls Hardware (x86) User Applications (Ring 3) Hypervisor-aware Linux Kernel (Ring 0) VSCs / ICs Hypervisor-unaware Kernel (Ring 0) VSCs / ICs WinHv I/O Stack Drivers LinuxHv Latest Pictures. VMBus Root / Parent Partition User Applications (Ring 3) VMBus VMBus Enlightened Child Partition MSRs APIC Unenlightened Child Partition Enlightened Child Partition Scheduler Processor Address Management Memory Partition Management Chapter 4 – Cloud Computing Architecture User-level Middleware Web 2.0, Mashups, Concurrent and Distributed Programming, Workflows , Libraries, Scripting Cloud Hosting Platforms QoS Negotiation, Admission Control, Pricing, SLA Management, Monitoring, Execution Management, Metering, Accounting SaaS Pure SaaS IaaS Pure PaaS Cloud Programming Environment and Tools Core Middleware Virtual Machine (VM), VM Management and Deployment Cloud Resources System Infrastructure Autonomic Cloud Economy IaaS (M) Cloud Applications Social Computing, Enterprise ISV, Scientific Computing, CDNs Adaptive Management PaaS User Applications Web based Management Interface Web Services, Portals, REST API Infrastructure Management Software Pricing / Billing Scheduling QoS SLA Management Provisioning Monitoring Reservation VM Image Repository VM Pool Management Physical Infrastructure Datacenter Cluster Desktop / Heterogeneous Resources Third Party IaaS Cloud Web based Interface Web Services, Portals, REST API Programming API / Libraries PaaS Core Middleware User Management Elasticity & Scaling Runtime Resources Management Physical Infrastructure Application Management QoS / SLA Management & Billing IaaS Providers IaaS (M) IaaS PaaS Platform as a Service Solutions DataSynapse, Zimory Pools, Elastra CloudServer, Aneka, …. Infrastructure Management Software Eucalyptus, OpenNebula, VMWare vCloud, OpenPEX, InterGrid, … Virtual Machine Technology KVM, Xen, VMWare, … Datacenters, Clusters, Desktop Grids Physical Infrastructure Hybrid / Heterogeneous Cloud Public Cloud Private Cloud Paas IaaS (M) Dynamic Provisioning Public Cloud Datacenter Cluster Desktop Grids / NOWs Community Cloud Application Services 3rd Party Cloud Public Cloud Private Cloud Development Platforms Public Cloud Private Cloud Federal and Government Bodies Private Users Public Services Industries Enterprises Chapter 5 – Aneka: Cloud Application Platform Multiple Applications Thread Task ... MapReduce 1. SDK Aneka 2. Runtime Multi-core Cluster 2100 2100 2100 2100 2100 2100 2100 2100 Grid Cloud Multiple Infrastructures MapReduce other models… Billing & Reporting Resource Reservation Storage Licensing & Accounting Fabric Services Dynamic Resource Provisioning Hardware Profiling PAL – Platform Abstraction Layer Infrastruscture ECMA 334: .NET or Mono / Windows, Linux, & Mac Enterprise Desktop Grid Data Centers Clusters Public Cloud Persistence and Security Foundation Services HTTP File Share …… Aneka Repository Node Manager Node Manager Aneka Containers Node Manager Node Manager Management Console Aneka Containers Aneka Containers Aneka Containers 100% Infrastrucutre Overhead 90% 80% 70% 60% 50% 40% 30% 20% 10% 0% 1 2 4 8 16 32 Number of Resources 64 128 200 512 600 256 Time (minutes: log2 scale) Time (minutes: decimal scale) 500 400 300 200 100 128 64 32 16 8 4 2 1 0 1 2 4 8 16 32 64 128 Number of Resources Ideal Execution Time Actual Execution Time 200 1 2 4 8 16 32 64 128 Number of Resources Ideal Execution Time Actual Execution Time 200 100% 90% 30 Infrastrucutre Overhead Infrastructure Overhead (m) 35 25 20 15 10 5 80% 70% 60% 50% 40% 30% 20% 10% 0 0% 1 2 4 8 16 32 Number of Resources 64 128 200 1 2 4 8 16 32 Number of Resources 64 128 200 Middleware - Container Application Services MapReduce Bag of Tasks PSM Other models… Foundation Services Storage Resource Reservation Billing & Reporting Licensing & Accounting Fabric Services High-Availability Resource Provisioning Hardware Profiling Membership PAL – Platform Abstraction Layer Infrastruscture ECMA 334: .NET or Mono / Windows, Linux, & Mac Enterprise Desktop Grid Data Centers Clusters Public Cloud Persistence & Security Distributed Threads Index (master) Index (master) Scheduling Scheduling Accounting Failover Accounting Reporting Reporting Reservation Reservation Provisioning Provisioning Mandatory Mandatory Master Node Index (slave) Storage Mandatory Storage Node Index (slave) Storage Mandatory Storage Node Index (slave) Index (slave) Index (slave) Execution Execution Execution Allocation Allocation Allocation Mandatory Mandatory Mandatory Worker Node Worker Node Worker Node Amazon EC2 Master Node Reporting, Billing, Accouting AWS Task Scheduling Service Storage Service Provisioning Service Dynamic Resources Slave Node Static Resources Task Execution Service Aneka Hybrid Cloud Reporting, Billing, Accouting Application Management & Scheduling High Performance and QoS Public Clouds Provisioning Service Low priority workloads Desktops & Workstations Cluster Resources Master Node Resource Provisioning Application Management & Scheduling Resource Reservation Virtual Clusters Desktop Machines Workstations Clusters Master Node Slave Nodes Reporting, Billing, Accouting Application Management & Scheduling Resource Provisioning Amazon EC2 Instances Amazon EC2 Instance EC2 Boundaries Local Infrastructure Master Node Reporting, Billing, Accouting Application Management & Scheduling Desktops & Workstations Provisioning Service Resource Reservation Clusters Virtual Cluster Resources Initialized Unknown IService.Start() Starting Pausing <Error> IService.Pause() Paused Running Resuming IService.Stop() Stopping Stopped IService.Continue() Chapter 6 – Concurrent Computing: Thread Programming To Memory CPU: single die Cache L2 Cache L1 Core 1 Cache L1 Core 2 Cache L1 Core N Process Execution Timeline Shared Memory Main Thread Thread Local Storage Instructions (program counter) Thread Thread Thread Process Result a. Embarrassingly parallel Units of work Process Result b. Inherently sequential B 6x3 A 4x6 C 4x3 2 2,1 1 Units of work Process Unit 1 Unit 2 Unit 3 Unit 4 Unit 5 Result Unstarted Unstarted Start() Start() Abort() Suspend() Suspend Requested Suspended Running Wait SleepJoin StagingIn Started Queued Aborted Re Abort Requested Stopped Wait()/Sleep()/Join() Interrupt() Running Staging Out a. System.Threading.Thread life cycle. Completed b. Aneka.Threading.AnekaThread life cycle. Chapter 7 – High-Throughput Computing: Task Programming Access Node(s) Tasks Middleware Remote Environment Local Node Computing Nodes MPI_COMM_WORLD 2 0 8 1 9 7 6 4 3 0 7 3 9 4 3 1 4 1 Communicator A 6 10 6 5 1 8 5 2 2 0 11 5 11 Group A 10 2 4 Communicator B 0 3 Group B Header Section MPI Include File Prototypes declaration Do Work Serial Code MPI Environment Initialization Code Section Do Work and Message Passing Parallel Code MPI Environment Shutdown Do Work Serial Code Users Workflow Design & Definition Workflow Application Modeling & Definition Tools Information Services Build Time Workflow Specification Run Time Resource Info Service Application Info Service Workflow Enactment Engine Workflow Execution & Control Interaction with Distributed Resources Interaction with Information Services Task + Data Scheduler Data Movement Dependency Manager Language Interpreter Data Provenance Runtime Manager Fault Management Middleware Supporting Clusters, Grids, and Clouds Distributed Computing Resources StorageService TaskScheduler TaskManager AnekaApplication Task1 : ITask AnekaTask Index Node Task2 : ITask (… more tasks) AnekaTask Membership Catalogue Aneka Cloud Local Node TaskExecution Service File dependencies Result Files Input/Output Files Remote FTP Client Machine StorageService TaskScheduler Web Service TaskManager Index Node Membership Catalogue AnekaTask Aneka Cloud AnekaTask TaskExecution Service PSMParameterInfo PSMContext PSMCommandInfo PSMFileInfo PSM Model PSMJobInfo IJobManager PSM Model ITask AnekaTask TaskManager Aneka Application Model AnekaApplication<AnekaTask, TaskManager> Offspring Environment IOffspringPlugin DefaultPlugin AppInstance AutoPlugin LogPlugin Strategy Controller IDistributionEngine DistributionEngineBase ITaskStrategy TaskStrategyBase Local Engine AnekaEngine TaskManager Aneka Cloud Workflow Logic 1 Workflow Logic N StrategyController Control Thread (Strategy Management) Monitoring Thread (Feedback from Distribution Engine) Init Application Task Feedback Init Strategy Task Failed? Submit Tasks No Wait No Yes Invoke OnSuccess Invoke OnFailed New Task? Complete or Stop? Yes Yes No Release Strategy Signal Shutdown Application Yes Iteration Complete? No Submit Chapter 8 – Data Intensive Computing: Map-Reduce Programming Heterogeneous Formats Distributed Petabytes Data intensive problems Data/compute intensive problems Current Problems Compute intensive problems Data Complexity (volume/format/distribution) Homogeneous Formats Non-distributed Megabytes or Gigabytes Model Solvers Simulations Simple search Computational Complexity Statistical Models Decision support Knowledge generation Storage Facility Information & Discovery Instrument Storage Facility Scientist Storage Facility Compute Site Storage Facility Compute Site Instrument Compute Site Compute Site Storage Facility Scientist Key Ring Storage Peer Storage Peer Pluggable Storage Engine (BDB, MySQL) Request Coordinator Storage Peer Failure and Membership Detection . Storage Peer Storage Peer Storage Peer Tablet Server Tablet Server Tablet Server Master Server Tablet Server Tablet Server Tablet Server Logs Logs Chubby Tablet Files Logs Logs Tablet Files GFS Tablet Files Tablet Files MapReduce Infrastructure / Runtime Distributed File System Input Data File Map Task Reduce Task Output Data File Input Data File Map Task Input Data File Map Task Output Data File Input Data File Input Data File Map Task Input Data File Output Data File Reduce Task Map Task Output Aggregation by Key Input Input Data File User Program (1) fork (1) fork (1) fork Master (2) assign map (2) assign reduce Worker Split 0 Split 1 Split 2 (6) write (4) local write (3) read Worker Worker (5) remote read Split 3 Worker Split 4 Output File 0 Output File 1 Worker input files map phase intermediate files reduce phase output files X Input File Input File Input File Input File R R R R X X X X M M M Stage X M Channels M M Output File Output File Vertices (processes) Aneka Cloud Map Task Reduce Task MapReduce Execution Service DFS Implementation Map Task Reduce Task MapReduce Execution Service Split 0 Split 1 Split 2 Split 3 Split 4 Output File 0 Map Task intermediate files Output File 1 Reducer Mapper MapReduceApplication Input Data File Input Data File Input Data File Input Data File Client Machine MapReduce Scheduling Service Reduce Task MapReduce Execution Service MapReduceSchedulerService Message translation and Event Triggering MapReduceScheduler upload queue Aneka Middleware MapReduceApplication initialization queue dispatch thread resubmission queue reporting queue DFS Implementation initialization thread dispatch queue failure queue MapReduce Execution Services upload thread report thread MapReduceExecutorService Message translation and Event Triggering ExecutorManager Aneka Middleware command queue job and task information command thread completion thread report thread MapReduce Scheduling Service DFS Implementation Sandbox MapReduceExecutor MapReduceExecutor Reduce Task Map Task Header: 3 bytes magic number, 1 byte version ……. Record Block: Integer (4 bytes) Length of the block Integer (4 bytes) Length of the key Key byte array Value byte array SKIPPED, 62% DEBUG ERROR INFO, 22% INFO SKIPPED DEBUG, 12% WARN ERROR, 4% WARN, 0% 189439 76895 55523 54878 3 10 180 6 984 4385 5 5 31 10 610 610 User ECG Sensor User Requests ECG Sensor Module 2 4 3 PaaS SaaS User Requests Bluetooth connectivity ECG Data Analysis as a Service Dynamically Scalable Runtime (QoS-based scaling of computing resources) Security Runtime Wireless / Mobile 3G Network IaaS 1 Embedded Bluetooth Enabled Data Communication & Processor Module User Requests Large Number 6 5 Jeeva Portal Aneka Task Graph A A : BLAST B : Create Data Vector B C : HH Classifier D : SS Classifier E : TT Classifier F : HS Classifier G : ST Classifier H : TH Classifier Initial Phase Classification Phase Final Phase C D E F I G H I : Predict Final Secondary Structure Chapter 9 – Cloud Platforms in Industry Compute Services Storage Services Communication Services Additional Services Amazon Elastic Compute Cloud (EC2) Amazon Simple Storage Service (S3) Amazon Simple Queue Service (SQS) Amazon GovCloud Amazon Elastic MapReduce Amazon Elastic Block Store (EBS) Amazon Simple Notification Service (EBS) Amazon CloudWatch AWS Elastic Beanstalk Amazon ElastiCache Amazon Simple Email Service (SES) AWS Cloudformation Amazon SimpleDB Autoscaling Amazon Relational Database Service (RDS) Amazon Virtual Private Cloud (VPC) Amazon CloudFront Amazon Direct Connect Amazon Import/Export Amazon Elastic Load Balancing Amazon Route 53 Amazon Flexible Payment Service (FPS) Amazon DevPay Amazon Fullfillment Web Service (FWS) Amazon Mechanical Turk Alexa Web Information Service Alexa Top Sites Amazon AWS Platform Data Store Web App Web App Web App Web App Url Fetch Image Manipulation Task Queue Sandboxed Runtime Environment Sandboxed Runtime Environment Python SDK Google AppEngine Infrastructure Local Machine Development Runtime Cron Jobs Windows Azure Platform Management portal Identity Marketplace Compute Storage Networking Windows Azure Compute Windows Azure Storage Windows Azure Connect DataMarket SQL Azure AppFabric Service Bus Applications ment t ools AppFabric Integration AppFabric Access Control Content Delivery Network (CDN) re AppFabric Caching Performance Enterprise Level Infrastructure Windows Azure Windows Azure AppFabric SQL Azure Marketplace HTTP / REST PHP SQL Server Applications and Tools ODBC WCF Data Services ADO.NET Tabular Data Stream (TDS) TDS + Secure Socket Layer Services Layer Provisioning Provisioning Provisioning Billing and Metering Billing and Metering Billing and Metering Connection Routing Connection Routing Connection Routing Platform Layer SQL Server SQL Server SQL Server SQL Azure Fabric SQL Azure Fabric SQL Azure Fabric Management Services Management Services Management Services Infrastructure Layer Chapter 10 – Cloud Applications Datasets Cloud-CoXCS (Task orchestrator) CoXCS Tasks Aneka Elastic Sizing (EC2,…, ) Portal (SaaS) Distribution Archiving Local Storage Aneka Public Cloud Private Cloud Force.com Platform Metadata Cache User-base 1: Application 1 Bulk Processing Engine Pivot Tables Multitenant-aware Query Optimiser Metadata Tables (UDD) Runtime Application Generator Data Tables Full-text Search Engine Shared Database User-base 2: Application 2 COMMON APPLICATION SCREENS TENANTSPECIFIC SCREENS OBJECTS (TABLES) Virtual Application Components User-base 3: Application 3 Indexes User EyeOS Server User eyeos apps User extern extras system users Client-side scripts workgroups Scalability engine EC2 instances: web front end Amazon SQS Amazon S3: Video storage EC2 instances: video rendering Aneka MayaRender Render Files Scenarios Maya: Train Design Render Tasks Aneka Networked LAN Gamer Titan Gaming Portal Aneka Gamer Log Processing Task Gamer Game Server Log Processing Task Game Server Game Server Log Processing Task Dropbox Folder Automatic synchronization Dropbox Folder Dropbox Folder Chapter 11 – Advanced Topics in Cloud Computing User Applications Revenue Power Consumption Reducing Power Cost and Maximizing Revenue Reducing Power Cost and Carbon Emission Cloud Data Center VMM Users Compute Cloud Brokers Negotiate Bid Pool Node Pool Node Cluster (VM Pool) Directory Bank Auctioneer Enterprise Resource Server (Proxy) Storage Cloud Cloud Exchange Enterprise IT Consumer Compute Cloud = Cloud Coordinator Storage Cloud Market-Oriented Models Allocation Decision Local Global Market Model Objective Profit-based System-based Application Model User Centric Hybrid Bag of Tasks Game Theory Proportional Share Bargaining Participant Focus Commodity Market Vickery Auction Workflow Posted Price Auction Single Sided Double Auction Dutch Auction English Auction Resource Centric Parallel Applications Contract Net Combinatorial Auction First Price Sealed Auction System Centric Others eg. Storage Brokers Users Service Request Examiner and Admission Control SLA Allocator - Customer-driven Service Management - Computational Risk Management - Autonomic Resource Management Accounting Pricing VM Monitor Dispatcher Service Request Monitor Virtual Machines Physical Machines Cloud Data Center s physics biology medicine modeling CAD science engineering bag of tasks banking finance teaching education parameter sweep business message passing workflow 3D rendering imaging blogging photos social networking multimedia map-reduce Web 2.0 Interfaces: Ajax, Web Services, Service Portals, REST y Market Maker Meta-broker Cloudbus Middleware Workflow Engine Other Middlew PaaS Ven Broker PaaS Vendor 2 ask Model Thread Model PSM MapReduce Accounting Metering Pricing Billing Cloud Federation Stack Conceptual Level Motivations Advantages Opportunities Obligations Logical and Operational Level Federation Model Cloud Service, Provider, Agreements Market and Pricing Models Service Level Agreements Infrastructural Level Protocol, Interfaces, and Standards Programmatic Interoperation Federation Platforms (RESERVOIR, InterCloud) Communication is related to IMF interface requests Communication is internal and proprietary HTTP OCCI Interface any channel, any protocol Provider’s APIs Provider’s Infrastructure Resource Management Framework Resources OCCI Clients Other Clients Most interoperable Least interoperable Clients can be in the Cloud or Enterprise and provide additional services (data, computing, etc…) Block Storage Client Export Data to the Cloud File System Client POSIX (NFS, CIFS, WebDAV) Acting in the Role of Managing Data / Storage iSCSI, FC, FCoE, LUNs, Targets Management of the Cloud Storage can be standalone or part of the overall management of your Cloud Computing Object Storage Client XAM Client Database / Table Client CDMI Container Container Container Data Storage Cloud Draw Resources on Demand Storage Cloud Data Management Interface (CDMI) Data Services Service Application 1 Service Application 2 Service Application 3 Virtualizer Virtualizer Virtualizer Computational Resource Computational Resource Computational Resource VEE Host VEE Host VEE Host RESERVOIR Site 1 RESERVOIR Site 2 Service Provider manifest Service Manager Service Manager Service Manager SLA SLA VEE Manager (VEEM) VEE Manager (VEEM) VEE Manager (VEEM) VEE Hosts VEE Hosts (e.g. hypervisor, VJSC Host, …) VEE Hosts Site A Site B Site C User User Broker User User Interface VM Manager (e.g. Eucalyptus) VM Manager (e.g. EC2) Cloud Coordinator Cloud Coordinator User Interface Cloud Exchange Publish / Query Offers / Request User Interface User Cloud Coordinator VM Manager (e.g. Open Nebula) User Resource Negotiation User Coral CDN Windows Azure Nirvanix Coral Connector Nirvanix Connector MetaCDN Manager MetaCDN Database Amazon S3 Azure Connector MetaCDN Allocator S3 Connector XYZ Connector MetaCDN Load Redirector XYZ Web Service Access SLA Web Portal SLA Applications Users SLA SLA Users Applications Web Portal Web Service Access MetaCDN Load Redirector MetaCDN Allocator MetaCDN Database Nirvanix Connector Nirvanix MetaCDN Manager Coral Connector Coral CDN Azure Connector Windows Azure S3 Connector Amazon S3 XYZ Connector XYZ Buyers Capacity Provider (Storage) SpotCloud Connector SLA Deployment Comparative Listing of Offerings Capacity Provider (Compute) SpotCloud Connector QoS and SLA Monitoring Transactions Bookkeeping and Billing Engine User Profiles Database VM Package Repository Other Stuff Index / Map Management Nodes Management Infrastructure Management Storage management Local caching File lookup forwarding Failover master Slave Storage management Local caching File lookup forwarding Slave Storage management Local caching File lookup forwarding Slave Hierarchical File System (Files and Directories) Flat File System (Files) Raw File System (Byte stream) Client 1 Client 2 Client N File Map (GUID Location) Bucket List DFS Failover master Slave – Bucket N Slave – Bucket 2 Slave – Bucket 1 DFS Client DFS Infrastructure Aneka DFS Wrapper Service : IService DFS API Aneka Container Application-based Storage Interface DFS Service