Cloud Computing Lesson 2: Basic Architecture Course Module by David S Platt Harvard University Extension School Lecture by Nilanjan Banerjee.

Slides:



Advertisements
Similar presentations
Amazon. Cloud computing also known as on-demand computing or utility computing. Similar to other utility providers like electric, water, and natural gas,
Advertisements

Page 1 Ricardo Villalobos Windows Azure Architect Evangelist Microsoft Corporation Designing, Building, and Deploying Windows Azure applications.
INTRODUCTION TO CLOUD COMPUTING CS 595 LECTURE 6 2/13/2015.
Cloud Computing Lesson 3: Storage Course Module by David S Platt Harvard University Extension School Lecture by: Nilanjan Banerjee.
Windows Communication Foundation and Web Services.
Cloud Computing ECE7650. Cloud Computing Case Study  At one extreme, sharing basic IT infrastructure  E.g Amazon’s EC2: an EC2 instance appears physical.
Azure Services Platform Piotr Zierhoffer. Agenda Cloud? What is Azure? Environment Basic glossary Architecture Element description Deployment.
Overview Of Microsoft New Technology ENTER. Processing....
Windows Azure for scalable compute and storage SQL Azure for relational storage for the cloud AppFabric infrastructure to connect the cloud.
Switching on the cloud for Silverlight MSDN Live Meeting Gill Cleeren Microsoft Regional Director – Silverlight MVP Ordina Belgium.
INTRODUCTION TO CLOUD COMPUTING CS 595 LECTURE 4.
B UILDING M ULTI - TIER W EB A PPLICATIONS IN V IRTUAL E NVIRONMENTS.
Platform as a Service (PaaS)
Google AppEngine. Google App Engine enables you to build and host web apps on the same systems that power Google applications. App Engine offers fast.
Cloud Computing Systems Lin Gu Hong Kong University of Science and Technology Sept. 21, 2011 Windows Azure—Overview.
Cross Platform Mobile Backend with Mobile Services James
A Brief Overview by Aditya Dutt March 18 th ’ Aditya Inc.
Cloud Computing Saneel Bidaye uni-slb2181. What is Cloud Computing? Cloud Computing refers to both the applications delivered as services over the Internet.
Cloud computing is the use of computing resources (hardware and software) that are delivered as a service over the Internet. Cloud is the metaphor for.
Lecture 8 – Platform as a Service. Introduction We have discussed the SPI model of Cloud Computing – IaaS – PaaS – SaaS.
Components of Windows Azure - more detail. Windows Azure Components Windows Azure PaaS ApplicationsWindows Azure Service Model Runtimes.NET 3.5/4, ASP.NET,
Introduction To Windows Azure Cloud
Migrating Business Apps to Windows Azure Marc Müller Principal Consultant, 4tecture GmbH
Getting Started with Windows Azure Name Title Microsoft Corporation.
Cloud Computing. What is Cloud Computing? Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable.
Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL
Windows Azure Tour Benjamin Day Benjamin Day Consulting, Inc.
Wyatt Pearsall November  HyperText Transfer Protocol.
Lecture 8: Design of Parallel Programs Part III Lecturer: Simon Winberg.
Your First Azure Application Michael Stiefel Reliable Software, Inc.
Mostafa Abdollahi Mazandaran University Of Science And Technology January 2011.
Windows Azure Conference 2014 Deploy your Java workloads on Windows Azure.
Azure Services Platform Update James Conard Sr. Director Developer & Platform Evangelism Microsoft Corporation.
The Windows Azure Platform: A Perspective David Chappell Chappell & Associates Copyright © 2009 David Chappell.
Windows Azure for scalable compute and storage SQL Azure for relational storage for the cloud AppFabric infrastructure to connect the cloud.
Windows Azure. Azure Application platform for the public cloud. Windows Azure is an operating system You can: – build a web application that runs.
Chad Collins CEO Henry Chan CTO In Latin, nubifer means “bringing the clouds”
Cloud Computing is a Nebulous Subject Or how I learned to love VDF on Amazon.
 Mike Martin  Architect  MEET Member  Crew Member of Azug  Windows Azure Insider  Windows Azure MVP  
4/26/2017 Use Cloud-Based Load Testing Service to Find Scale and Performance Bottlenecks Randy Pagels Sr. Developer Technology Specialist © 2012 Microsoft.
3/12/2013Computer Engg, IIT(BHU)1 CLOUD COMPUTING-1.
Web Technologies Lecture 13 Introduction to cloud computing.
3 TIME IT CAPACITY Actual Load Allocated IT-capacities Too Much Power Not Enough Power Load Forecast.
Azure in a Day Training: Windows Azure Module 1: Windows Azure Overview Module 2: Development Environment / Portal – DEMO: Signing up for Windows Azure.
Windows Azure poDRw_Xi3Aw.
Enabling the Cloud OS Today  New high-density Web Sites with elastic cloud scaling and complete dev-ops experiences  New rich IaaS experience for self-service.
Cloud Computing – UNIT - II. VIRTUALIZATION Virtualization Hiding the reality The mantra of smart computing is to intelligently hide the reality Binary->
Microsoft Cloud Computing. Topics to be covered 1.Environmental Features of windows azure 2.What is Cloud Computing 3.Roles in Cloud Computing 4.Benefits.
Technology Drill Down: Windows Azure Platform Eric Nelson | ISV Application Architect | Microsoft UK |
Hello Cloud… Mike Benkovich
(re)-Architecting cloud applications on the windows Azure platform CLAEYS Kurt Technology Solution Professional Microsoft EMEA.
CLIENT SERVER COMPUTING. We have 2 types of n/w architectures – client server and peer to peer. In P2P, each system has equal capabilities and responsibilities.
Building web applications with the Windows Azure Platform Ido Flatow | Senior Architect | Sela | This session.
1 Cloud Computing, CS An OS for Multicore and Cloud + Microsoft Azure Platform.
KAASHIV INFOTECH – A SOFTWARE CUM RESEARCH COMPANY IN ELECTRONICS, ELECTRICAL, CIVIL AND MECHANICAL AREAS
Windows Azure and iOS Chris Risner Windows Azure Technical Evangelist Microsoft
 Cloud Computing technology basics Platform Evolution Advantages  Microsoft Windows Azure technology basics Windows Azure – A Lap around the platform.
Amazon Web Services. Amazon Web Services (AWS) - robust, scalable and affordable infrastructure for cloud computing. This session is about:
Windows Communication Foundation and Web Services
Platform as a Service (PaaS)
Platform as a Service (PaaS)
Cloud Computing - Basic Architecture
Dr.S.Sridhar, Director, RVCT, RVCE, Bangalore
Platform as a Service.
Dr.S.Sridhar, Director, RVCT, RVCE, Bangalore
The Improvement of PaaS Platform ZENG Shu-Qing, Xu Jie-Bin 2010 First International Conference on Networking and Distributed Computing SQUARE.
02 | Hosting Services in Windows Azure
Outline Virtualization Cloud Computing Microsoft Azure Platform
Brandon Hixon Jonathan Moore
Saranya Sriram Developer Evangelist | Microsoft
Presentation transcript:

Cloud Computing Lesson 2: Basic Architecture Course Module by David S Platt Harvard University Extension School Lecture by Nilanjan Banerjee

OK, Cloud Sounds Good, Now What? Continuing the electric power analogy, how do we have to design our software (motors and other consumers of electricity) to run on this nice cloud platform (power generation and transmission network) over which we, the customers, have very little detailed control (must use available voltages, frequencies, etc.)?

Some Common Patterns in Distributed Programming

Background Part 0: Virtualization You can’t physically touch the cloud server machines. Hardware can and frequently will change. To avoid dependency on specific hardware, you generally write your server program to run on virtual machines.

Background Part 0: Virtualization Diagram Cloud Stack Virtual Machine Manager Operating System Hardware Cloud Applications Cloud Services

Background Part 1: Abstraction Objects used locally represent a combination of code and data in the classic OO sense of the term. method 1 (object) method n state

Background Part 1, Abstraction Client 1 Proxy Service Host Instance 1 Instance 2 Client 2 Proxy In remote access, Client machines generally access servers through proxy objects, which expose methods similar to local objects, but actually contain communication code that makes a call to server and returns results. The proxy Looks like a local object, feels like a local object, programmer likes to think of it as a local object because that’s easy and familiar. But it isn’t really a local object, and shouldn’t be treated as one, as it is above.

Background Part 2: Statelessness It is expensive and difficult to maintain the connection from proxy to a specific server-side object from one call to the next. For example, load balancing is difficult, as is lifetime management. So you generally want to design your objects so that they don’t expect their internal state to be maintained from one call to another. The proxy often stays alive on the client side, but is connected to a difference object instance on the server side on its next call.

Background Part 2: Statelessness Client 1 Proxy Service Host Instance 1 Instance 2 Instance 3 Client 2 Proxy t=0 t=1

Background Part 2: Statelessness The term statelessness does not mean that no data is maintained from one call to the next. It does mean that no data is maintained in an individual object instance. Whatever data is maintained from one call to the next is maintained in some sort of storage system, so that the next object instance can pick up where the first left off.

Background Part 2: Statelessness Client 1 Proxy Service Host Instance 1 Instance 2 Instance 3 Client 2 Proxy t=0 t=1 Object fetches previous state from storage when it is instantiated at the start of a call. It stores current state in storage when it is deactivated at the end of a call.

Background Part 3: Chunkiness Calls to local objects are very quick, call overhead is low. In distributed system, call overhead is very much larger. Therefore, it is important to make fewer calls, with more data in each call Optimum level of chunkiness depends on application and will require experimentation EARLY in design process.

Background Part 4: Message Passing If client has to wait for server to finish processing, or even be alive at the same time as the server, we can wait a long time to get the job done Often the client does best to leave a message about a job it wants done, then harvest the results later. Example: voice mail or text msgs vs. direct conversation. Different programming model: no immediate output parameters. Output comes through another msg (again, like voice mail).

Background Part 4: Message Passing Client Message Client Message Message Broker Queue Service Instance 1 Instance 2

Cloud Architecture of Different Vendors

Amazon Cloud Offering Amazon Elastic Compute Cloud You create Amazon Machine Images (their VM) containing your choice of OS (Linux or Windows) You then run whatever programs you want, such as IIS. Additional services, such as storage or payment processing, are available a la carte

Google Cloud Offering Request/Response Python/Java VM process App Stdlib Stateless service APIs Stateful service APIs MemcacheDatastoreBlobstore URL Fetch Mail Images Task Queues XMPP Google Accounts

Google Cloud Offering You write your app and plug it into Google App Engine, which handles HTTP(S) requests, nothing else. Think RPC: request in, processing, response out. Works well for the web and AJAX App configuration is dead simple, no performance tuning needed Everything is built to scale. “Infinite” number of apps, requests/sec, storage capacity. APIs are simple, stupid

Azure Overview

Application is the software built by the programmer. It does something useful for the user, who connects to it via the Internet Azure runs on multiple Windows PCs in a data center. It is the layer that provides system services to the application. From the app’s point of view, this is the operating system.

Inside the Azure Layer

Compute service runs applications. Storage service stores data in simple blobs, tables, and queues. Relational storage is available through SQL Azure (next lecture) Fabric is the control, management, and monitoring service for Azure itself.

Inside the Compute Layer Each compute instance (web role or worker role) runs in its own virtual machine. Your service agreement specifies the number and size of VMs that you can run Instance Size CPUMemory GB Storage GB I/O Perf Small1.6 GHz Moderate Medium2 x 1.6 GHz3.5490High Large4 x 1.6 GHz71000High Extra Large8 x 1.6 GHz142040High

Inside the Compute Layer Each VM contains a single role instance.

Web Roles A Web role is a computing object instance which is exposed to the outside Internet. It runs in a VM containing IIS 7. Can communicate with the outside world via ASP.NET, WCF, or any other.NET technology that works with IIS.

Worker Roles A Worker Role is a computing object which is not exposed to the outside Internet It runs in a VM which does not contain IIS. Conceptually similar to a background processing job. Worker roles may process requests queued by Web roles, or they may sift through large amounts of pre-stored data on their own.

Agent Each compute instance contains an Agent which represents the application’s connection to Azure. Provides simple API that lets a compute instance interact with the Azure Fabric.

Usage Scenarios

Scalable Web Application Many Web Roles to handle many users Data stored in tables Example: online multiplayer game

Application or Service Bus Blobs Tables Queues REST Firewall Pattern 1A On-Premise LOB Application or Service bus leveraging scalable cloud storage

Blobs Tables Queues Pattern 1 Highly scalable dynamic HTML or RIA application leveraging scalable cloud storage ASP.NETASP.NET Web Roles HTML or Silverlight in the browser ASP.NETASP.NET ASP.NETASP.NET ASP.NETASP.NET

Parallel Processing Application Many Worker Roles to process data and perform calculations Data stored as blobs One Web Role for control. Roles communicate with each other via queues.

Queues Pattern 2A Highly scalable dynamic HTML or RIA application leveraging Azure Queues to pass messages to a background processing agent. Background Processing Web Role Worker RoleHTML or Silverlight in the browser ASP.NETASP.NET

Blobs Tables Queues Pattern 2 Highly scalable dynamic HTML or RIA application leveraging Azure Queues to pass messages to a background processing agent. Background Processing Web Role Worker Role ASP.NETASP.NET ServiceService HTML or Silverlight in the browser

Demo Thumbnail Application From Azure SDK

Web RoleWorker Role Blob Container Picture Blob 1 Picture Blob 2 Thumbnail Blob 1 1. User uploads pictures to blobs Queue “Make TN for new blob 2” 2. Web role puts msg in queue 3. Worker role fetches msg 4. Worker creates TN blob, places in container Thumbnail Blob 2 0, 5 Web role displays thumbnails to user

Credits Slides 5-7, 9, 14, 18 and 19 contain information from “Cloud Computing: Software Engineering Fundamentals”, by J. Heinzelreiter and W. Kurschl, Upper Austria University of Applied Sciences Slides 20 and 22, contain diagrams from David Chappell’s white paper “Introducing Windows Azure”,