Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

39
Windows Azure Architecture, Services and Programming Model Ilian Iliev Telerik Corp. www.telerik. com

Transcript of Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Page 1: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Windows AzureArchitecture, Services and Programming Model

Ilian IlievTelerik

Corp.www.telerik.com

Page 2: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

What is Windows Azure?

Platform Overview and Architecture

Page 3: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

The Microsoft Cloud~100 Globally Distributed Data Centers

Quincy, WA Chicago, IL San Antonio, TX Dublin, Ireland Generation 4 DCs

3

Page 4: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

The Microsoft CloudHighly available, scalable, and consistent application

fabric environment

4

Page 5: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

How Your Ideas are Shipped without the

Cloud?Lets say you have an idea?

What do you need to manage to ship your idea to potential customers?

Managing environment

Server acquisition

Patching

Installing OS

Network

Storage

Memory

RoutersHard drive failure

Load balancingUpdating

5

Page 6: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

How Windows Azure solves your problems?

Windows Azure runs your application code Inside virtual machines

Managed by the fabric controller

6

Page 7: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Platform Services

Software Services

Application Services

Infrastructure Services

The Microsoft Cloud Categories of Services

7

Page 8: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Storage Unstructured Data

BlobsMessage Queues

Distributed File System

Content Distribution

Data Transact-SQL

Data Synchronizati

on

Relational Database

ADO.NET, ODBC, PHP

Connectivity

Composite Application

s

On-Premise Bridging

Service Bus

SecurityClaims-Based

Identity

Federated Identities

Secure Token

Service

Declarative Policies

Application Services

ApplicationMarketplac

e

Information Marketplac

e

Personal Data

Repository

Frameworks

Workflow Hosting

Distributed Cache

Services Hosting

Windows Azure Platform

Compute C / C++Win32 VHD

8

Page 9: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Compute

Storage

Data SQL Azure Data Sync

Connectivity

Project “Sydney”

Security “Geneva”

Application Services

Frameworks

“Dublin” “Velocity”

Windows Azure Platform

Service Bus

Access Control

Table Storage

Blob Storage

Queue DriveContent Delivery Network

9

Page 10: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Storage

Data SQL Azure Data Sync

Connectivity

Project “Sydney”

Security “Geneva”

Application Services

Frameworks

“Dublin” “Velocity”

Service Bus

Access Control

Table Storage

Blob Storage

Queue DriveContent Delivery Network

Windows Azure Compute

Compute

Development, service hosting, & management environment .NET, Java PHP, Python, Ruby, native

code (C/C++, Win32, etc.) ASP.NET providers, FastCGI,

memcached, MySQL, Tomcat Full-trust – supports standard

languages and APIs Secure certificate store Management API’s, and logging and

diagnostics systems

10

Page 11: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Storage

Data SQL Azure Data Sync

Connectivity

Project “Sydney”

Security “Geneva”

Application Services

Frameworks

“Dublin” “Velocity”

Service Bus

Access Control

Table Storage

Blob Storage

Queue DriveContent Delivery Network

Windows Azure Compute(2)

Compute

Multiple roles – Web, Worker, Virtual Machine (VHD)

Multiple VM sizes

1.6 GHz CPU x64, 1.75GB RAM, 100Mbps network, 250GB volatile storage

Small (1X), Medium (2X), Large (4X), X-Large (8X)

In-place rolling upgrades, organized by upgrade domains

Walk each upgrade domain one at a time

11

Page 12: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Storage

Data SQL Azure Data Sync

Connectivity

Project “Sydney”

Security “Geneva”

Application Services

Frameworks

“Dublin” “Velocity”

Service Bus

Access Control

Table Storage

Blob Storage

Queue DriveContent Delivery Network

Windows Azure Diagnostics

Compute

Configurable trace, performance counter, Windows event log, IIS log & file buffering

Local data buffering quota management

Query & modify from the cloud and from the desktop per role instance

Transfer to storage scheduled & on-demand

Filter by data type, verbosity & time range

12

Page 13: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Compute

Data SQL Azure Data Sync

Connectivity

Project “Sydney”

Security “Geneva”

Application Services

Frameworks

“Dublin” “Velocity”

Service Bus

Access Control

Windows Azure Storage

Rich data abstractions – tables, blobs, queues, drives, CDN Capacity (100TB), throughput

(100MB/sec), transactions (1K req/sec) High accessibility

Supports geo-location Language & platform agnostic REST

APIs URL:

http://<account>.<store>.core.windows.net

Client libraries for .NET, Java, PHP, etc.

Storage

13

Page 14: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Compute

Storage

Data SQL Azure Data Sync

Connectivity

Project “Sydney”

Security “Geneva”

Application Services

Frameworks

“Dublin” “Velocity”

Service Bus

Access Control

Table Storage

Blob Storage

Queue DriveContent Delivery Network

Windows Azure Table Storage

Designed for structured data, not relational data

Data definition is part of the application A Table is a set of Entities (records) An Entity is a set of Properties

(fields) No fixed schema

Each property is stored as a <name, typed value> pair

Two entities within the same table can have different properties

No schema is enforced

14

Page 15: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Compute

Storage

Data SQL Azure Data Sync

Connectivity

Project “Sydney”

Security “Geneva”

Application Services

Frameworks

“Dublin” “Velocity”

Service Bus

Access Control

Table Storage

Blob Storage

Queue DriveContent Delivery Network

Windows Azure Blob Storage

Storage for large, named files plus their metadata

Block Blob Targeted at streaming workloads Each blob consists of a sequence of

blocks Each block is identified by a Block ID Size limit 200GB per blob

Page Blob Targeted at random read/write

workloads Each blob consists of an array of pages Each page is identified by its offset from

the start of the blob Size limit 1TB per blob

15

Page 16: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Compute

Storage

Data SQL Azure Data Sync

Connectivity

Project “Sydney”

Security “Geneva”

Application Services

Frameworks

“Dublin” “Velocity”

Service Bus

Access Control

Table Storage

Blob Storage

Queue DriveContent Delivery Network

Windows Azure Queue

Performance efficient, highly available and provide reliable message delivery

Asynchronous work dispatch Inter-role communication Polling based model; best-effort FIFO data

structure Queue operations

Create Queue Delete Queue List Queues Get/Set Queue Metadata

> Message operations

• Add Message

• Get Message(s)

• Peek Message(s)

• Delete Message

16

Page 17: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Compute

Storage

Data SQL Azure Data Sync

Connectivity

Project “Sydney”

Security “Geneva”

Application Services

Frameworks

“Dublin” “Velocity”

Service Bus

Access Control

Table Storage

Blob Storage

Queue DriveContent Delivery Network

Windows Azure Drive

Provides a durable NTFS volume for Windows Azure applications to use Use existing NTFS APIs to access a

durable drive Durability and survival of data on

application failover Enables migrating existing NTFS

applications to the cloud Drives can be up to 1TB; a VM can

dynamically mount up to 8 drives

17

Page 18: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Compute

Storage

Data SQL Azure Data Sync

Connectivity

Project “Sydney”

Security “Geneva”

Application Services

Frameworks

“Dublin” “Velocity”

Service Bus

Access Control

Table Storage

Blob Storage

Queue DriveContent Delivery Network

Windows Azure Drive(2)

A Windows Azure Drive is a Page Blob

Example, mount Page Blob as X:\

http://<account>.blob.core.windows.net/<container>/<blob>

All writes to drive are made durable to the Page Blob

Drive made durable through standard Page Blob replication

18

Page 19: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Compute

Storage

Data SQL Azure Data Sync

Connectivity

Project “Sydney”

Security “Geneva”

Application Services

Frameworks

“Dublin” “Velocity”

Service Bus

Access Control

Table Storage

Blob Storage

Queue DriveContent Delivery Network

Windows Azure Content Delivery Network

Provides high-bandwidth global blob content delivery 18 locations globally (US, Europe, Asia,

Australia and South America), and growing

Blob service URL vs. CDN URL Blob URL:

http://<account>.blob.core.windows.net/ CDN URL: http://<guid>.vo.msecnd.net/ Support for custom domain names

Access details Blobs are cached in CDN until the TTL

passes Use per-blob HTTP Cache-Control policy

for TTL (new) CDN provides only anonymous HTTP

access19

Page 20: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Compute

Storage

Data SQL Azure Data Sync

Connectivity

Project “Sydney”

Security “Geneva”

Application Services

Frameworks

“Dublin” “Velocity”

Service Bus

Access Control

Table Storage

Blob Storage

Queue DriveContent Delivery Network

SQL Azure Highly available, scalable, and consistent

distributed relational database; geo-replication and geo-location of data

Relational database, provided as a service Highly symmetrical development and

tooling experience (use TDS protocol and T-SQL)

Highly scaled out, on commodity hardware Built on the SQL Server technology

foundation Editions: Web (1GB), Business (10GB)

20

Page 21: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Compute

Storage

Data SQL Azure Data Sync

Connectivity

Project “Sydney”

Security “Geneva”

Application Services

Frameworks

“Dublin” “Velocity”

Service Bus

Access Control

Table Storage

Blob Storage

Queue DriveContent Delivery Network

SQL Azure Data Sync

Tools for data synchronization with SQL Azure Connect on-premises apps with

the cloud Create cached-mode clients

Built on Microsoft Sync Framework and ADO.NET Sync Services

21

Page 22: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Compute

Storage

Data SQL Azure Data Sync

Connectivity

Project “Sydney”

Security “Geneva”

Application Services

Frameworks

“Dublin” “Velocity”

Service Bus

Access Control

Table Storage

Blob Storage

Queue DriveContent Delivery Network

AppFabric Service Bus Securely connect

applications Over the internet Across any network

topology Across organizational

boundaries Primary application

patterns Eventing – notify

applications and/or devices

Service Remoting – securely project on-premises services out to the cloud

Tunneling – app-to-app communication with NAT/Firewall traversal

22

Page 23: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Compute

Storage

Data SQL Azure Data Sync

Connectivity

Project “Sydney”

Security “Geneva”

Application Services

Frameworks

“Dublin” “Velocity”

Service Bus

Access Control

Table Storage

Blob Storage

Queue DriveContent Delivery Network

AppFabric Access Control

Provides outsourcing of claims-based access control for REST web services

Key capabilities: Usable from any

platform Low friction way to

onboard new clients Integrates with ADFS

v2 Supports OAuth

WRAP / SWT Enables simple

delegation Used today by Service

Bus and “Dallas”

23

Page 24: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Compute

Storage

Data SQL Azure Data Sync

Connectivity

Project “Sydney”

Security “Geneva”

Application Services

Frameworks

“Dublin” “Velocity”

Service Bus

Access Control

Table Storage

Blob Storage

Queue DriveContent Delivery Network

“Geneva”> Next generation identity and access

management platform

• Claims-based access and single sign-on for on-premise and cloud-based applications in the enterprise, across organizations, and on the Web

> “Geneva Framework“ (Windows Identity Foundation)

• Provides .NET development tools, which includes pre-built, user-access logic that externalizes authentication from applications. It helps developers build claims-aware .NET applications, plus build custom security token services (STS)

> “Geneva Server“

• An STS for IT that issues and transforms claims and other tokens, manages user access and enables federation and access management for simplified single sign-on

24

Page 25: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Compute

Storage

Data SQL Azure Data Sync

Connectivity

Project “Sydney”

Security “Geneva”

Application Services

Frameworks

“Dublin” “Velocity”

Service Bus

Access Control

Table Storage

Blob Storage

Queue DriveContent Delivery Network

“Geneva”

“CardSpace Geneva”

helping users navigate between multiple logons for simplified single sign-on

providing complete user control and transparency for how personal information is shared

25

Page 26: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Compute

Storage

Data SQL Azure Data Sync

Connectivity

Project “Sydney”

Security “Geneva”

Application Services

Frameworks

“Dublin” “Velocity”

Service Bus

Access Control

Table Storage

Blob Storage

Queue DriveContent Delivery Network

“Velocity”

Distributed in-memory cache platform for developing scalable, available, and highly-performance applications

Caches any serializable CLR object and provides access through simple cache APIs

Supports enterprise scale: tens to hundreds of computers

Configurable to run as a service accessed over the network

Supports dynamic scaling and automatic load balancing

26

Page 27: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Compute

Storage

Data SQL Azure Data Sync

Connectivity

Project “Sydney”

Security “Geneva”

Application Services

Frameworks

“Dublin” “Velocity”

Service Bus

Access Control

Table Storage

Blob Storage

Queue DriveContent Delivery Network

“Velocity” Supports continuous availability of

cached data by storing copies on separate cache hosts

Integration with administration and monitoring tools such as Event Tracing for Windows (ETW) and System Center.

27

Page 28: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Compute

Storage

Data SQL Azure Data Sync

Connectivity

Project “Sydney”

Security “Geneva”

Application Services

Frameworks

“Dublin” “Velocity”

Service Bus

Access Control

Table Storage

Blob Storage

Queue DriveContent Delivery Network

“Dublin” Evolution of WAS/IIS and

Windows App Server role to run and manage WF and WCF services Enhances the hosting of

Windows Communication Foundation (WCF) and Windows Workflow (WF) in the Windows Process Activation Service (WAS)

Simplified deployment and management of WCF and WF services hosted in WAS

Configuration of persistence for durable workflows

28

Page 29: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Compute

Storage

Data SQL Azure Data Sync

Connectivity

Project “Sydney”

Security “Geneva”

Application Services

Frameworks

“Dublin” “Velocity”

Service Bus

Access Control

Table Storage

Blob Storage

Queue DriveContent Delivery Network

“Dublin” Customizable tracking

profiles with dedicated, queryable storage for tracked data

Customizable monitoring of hosted services

29

Page 30: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Compute

Storage

Data SQL Azure Data Sync

Connectivity

Project “Sydney”

Security “Geneva”

Application Services

Frameworks

“Dublin” “Velocity”

Service Bus

Access Control

Table Storage

Blob Storage

Queue DriveContent Delivery Network

“Dallas”

Information-as-a-service Discover, acquire, and consume

structured, blob, and real-time data to power any application – on any platform and any screen size

Brokerage Business – partner driven ecosystem and global reach to deliver data and functionality to developers and information workers

Analytics and Reporting – single click analysis to augment private data with public data

Built on Windows Azure and SQL Azure30

Page 31: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Azure Pricing Computing Nodes

Shared CPU, 768 MB RAM $0.02 / hour ($15 / month)

1 Core, 1.75 GB RAM $0.12 / hour ($90 / month)

Storage

$0.125 / GB + $0.01 / 10000 operations SQL Azure Database

100 MB – $0.0067 / hour ($5 / month)

1 GB – $0.0133 / hour ($10 / month)31

Pricing(as of April 2012)

Page 32: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

AppFabric Service Bus

32

Page 33: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

AppFabric Access Control

33

Page 34: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Table Storage Concepts

EntitiesTablesAccounts

moviesonline

Email = …Name = …

Email = …Name = …

Genre = …Title = …

Genre = …Title = …

Users

Movies

34

Page 35: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Queue Storage Concepts

Messages

QueuesAccounts

sally

128 x 128 http://...

256 x 256 http://...

http://...

http://...

thumbnailjobs

traverselinks

35

Page 36: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Blob Storage Concepts

BlobContainerAccounts

sally

PIC01.JPG

PIC02.JPG

MOV1.AVI

images

movies

36

Page 37: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Blob Storage ConceptsAdding Blocks and Pages

BlobContainer

Accounts

sally

PIC01.JPG

PIC02.JPG

images

movies

Blocks

MOV1.AVI

Block or Page 1

Block or Page 1

Block or Page 1

37

Page 38: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Windows Azure

Questions? ??

? ? ??

?? ?

http://clouddevcourse.telerik.com

Page 39: Architecture, Services and Programming Model Ilian Iliev Telerik Corp. .

Homework

1. Install Windows Azure SDK for your favorite programming language E.g. C#, Java, PHP or JavaScript

2. Create a "Hello World" Azure application Run it in the Azure Compute emulator

3. Create an application for uploading, listing and downloading files from Azure Blobs Run it in the Azure Storage emulator

As a result of your homework submit the source code of your Azure applications.

39