Cloud Computing - Basic Architecture

Slides:



Advertisements
Similar presentations
Database Architectures and the Web
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.
“It’s going to take a month to get a proof of concept going.” “I know VMM, but don’t know how it works with SPF and the Portal” “I know Azure, but.
Azure Services Platform Piotr Zierhoffer. Agenda Cloud? What is Azure? Environment Basic glossary Architecture Element description Deployment.
Presented by Sujit Tilak. Evolution of Client/Server Architecture Clients & Server on different computer systems Local Area Network for Server and Client.
SaaS, PaaS & TaaS By: Raza Usmani
Lecture The Client/Server Database Environment
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.
The Client/Server Database Environment
Cloud Computing Systems Lin Gu Hong Kong University of Science and Technology Sept. 21, 2011 Windows Azure—Overview.
Client/Server Architectures
Cross Platform Mobile Backend with Mobile Services James
A Brief Overview by Aditya Dutt March 18 th ’ Aditya Inc.
Cloud Computing for the Enterprise November 18th, This work is licensed under a Creative Commons.
Cloud Computing Lesson 2: Basic Architecture Course Module by David S Platt Harvard University Extension School Lecture by Nilanjan Banerjee.
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.
Introduction To Windows Azure Cloud
Migrating Business Apps to Windows Azure Marc Müller Principal Consultant, 4tecture GmbH
Cloud Computing. What is Cloud Computing? Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable.
Mostafa Abdollahi Mazandaran University Of Science And Technology January 2011.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
Cloud Computing A set of Internet-based application.
Microsoft Azure SoftUni Team Technical Trainers Software University
Cloud Computing is a Nebulous Subject Or how I learned to love VDF on Amazon.
Chapter 8 – Cloud Computing
Web Technologies Lecture 13 Introduction to cloud computing.
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.
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.
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.
Cloud Computing from a Developer’s Perspective Shlomo Swidler CTO & Founder mydrifts.com 25 January 2009.
 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:
Agenda  What is Cloud Computing?  Milestone of Cloud Computing  Common Attributes of Cloud Computing  Cloud Service Layers  Cloud Implementation.
Platform as a Service (PaaS)
Unit 3 Virtualization.
Platform as a Service (PaaS)
By: Raza Usmani SaaS, PaaS & TaaS By: Raza Usmani
Chapter 9: The Client/Server Database Environment
Dr.S.Sridhar, Director, RVCT, RVCE, Bangalore
Platform as a Service (PaaS)
The Client/Server Database Environment
Prepared by: Assistant prof. Aslamzai
Principles of Network Applications
Cloud Data platform (Cloud Application Development & Deployment)
Platform as a Service.
Dr.S.Sridhar, Director, RVCT, RVCE, Bangalore
MVC and other n-tier Architectures
The Client/Server Database Environment
The Client/Server Database Environment
Chapter 9: The Client/Server Database Environment
The Improvement of PaaS Platform ZENG Shu-Qing, Xu Jie-Bin 2010 First International Conference on Networking and Distributed Computing SQUARE.
Introduction to J2EE Architecture
PHP / MySQL Introduction
Introduction to Cloud Computing
#01 Client/Server Computing
CNIT131 Internet Basics & Beginning HTML
02 | Hosting Services in Windows Azure
20409A 7: Installing and Configuring System Center 2012 R2 Virtual Machine Manager Module 7 Installing and Configuring System Center 2012 R2 Virtual.
Outline Virtualization Cloud Computing Microsoft Azure Platform
Lecture 1: Multi-tier Architecture Overview
Brandon Hixon Jonathan Moore
Software models - Software Architecture Design Patterns
Saranya Sriram Developer Evangelist | Microsoft
Microsoft Virtual Academy
#01 Client/Server Computing
Presentation transcript:

Cloud Computing - Basic Architecture

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.)?

Software Architecture Evolution

Mainframe Architecture Approach Mainframe provides all resources and logic Terminals for user interaction (thin clients) Advantages Simple deployment Problems and Limitations Limited GUI capabilities Every client allocates server resources  Limited scalability Terminals: UI Mainframe: Application and Data

Client/Server Architecture Approach Increased capabilities of PCs Logic partially transferred to clients Central database server Advantages Better user experience (GUIs) Problems and Limitations Client has permanent stateful connection Client holds server resources (db con, …) Limited scalability Thick Clients : UI + Logic Mac Linux-Workstation PC Server: Data

Middle-Tier Architecture Thin Clients Approach Logic bundled in Middle-tier Clients have no permanent connection to Middle-tier  stateless connections Advantages Middleware provides services (pooling, security, …) Resources shared between clients  improved scalability Problems: new programming model Middle-Tier: Logic + Services (Middleware) Data-Tier

Browser Server Architecture Extension of the mid-tier architecture Expose functions through web services Highly scalable Network dependent Stateless connection

B/S-C/S Hybrid Architecture

Multi-Tier Cloud Software Architecture Virtualization Web services Orchestra / service bus Client-side interfaces Client-side Interfaces Expose cloud to clients Orchestra/Service Bus Bridge the cloud with users Web Services Stateless form of cloud services Virtualization Foundation for cloud

First Tier Virtualization dynamically increase and decrease computing capacity can be achieved on many different layers of abstraction application server, operating system processes, virtual machines, logical partitions of physical hardware For cloud computing - mostly logical machine level of abstraction

Second Tier Web Services access to cloud resources via WebService APIs (RESTful API) APIs typically are hidden behind wrapper libraries Java, C#, C++ (and other .NET languages) for the client "web languages" such as Python, Ruby, and PHP

Third Tier Orchestration / Service Bus Compute services, data stores, and messaging middleware. Platforms differ w.r.t. their support for integrating external services Be it hosted on premise or at partner sites

Fouth Tier Clients-side user interfaces Cloud computing applications need to expose a client-side UI Portals integrate mashups in a web browser Simple user interfaces often based on Ajax and JavaScript Trend to fully fledged component model such as JavaBeans/Applets or Silverlight/.NET Downloadable and can be executed on the client's computer

Programming Models Stateful vs. Stateless programming Separation of cerncerns Dependence Injection Layered architecture Domain objects Asychnorous message passing

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.

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

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.

Statelessness Service Host Instance 1 Instance 2 Instance 3 Client 1 Proxy t=0 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.

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.

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).

Message Passing Service Client Message Broker Queue Client Instance 1

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, on that AMI (classic IaaS model) Additional services, such as storage or payment processing, are available a la carte (see next lesson). These parts are PaaS

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

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 Mostly IaaS, not so much PaaS

Azure Overview

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. I’d call this full PaaS.

Inside the Azure Layer Chappell Figure 2, from page 4

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 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 CPU Memory GB Storage I/O Perf Small 1.6 GHz 1.75 225 Moderate Medium 2 x 1.6 GHz 3.5 490 High Large 4 x 1.6 GHz 7 1000 Extra Large 8 x 1.6 GHz 14 2040

Inside the Compute Layer Each VM contains a single role instance. Chappell Figure 3, page 5

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. Conceptually similar to the Context object in COM+, in that it provides connection to the environment in which it runs.

Usage Scenarios

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

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

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

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.

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

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

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

Thanks!