Top Banner
2010 SPALIO 27 D. Microsoft Partnerių konfrencija 2010 Architecting Cloud-based Applications for Windows Azure Platform Sergejus Barinovas Architect, Adform
45

Architecting Windows Azure

May 13, 2015

Download

Technology

Practical guide to Windows Azure Platform
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Architecting Cloud-based Applications for Windows Azure Platform

Sergejus BarinovasArchitect, Adform

Page 2: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Quiz

Who has heard about Windows Azure Platform?

Page 3: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Quiz

Who has attended anyWindows Azure presentation?

Page 4: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Quiz

What parts does Windows Azure Platform consist of?

Page 5: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Answer• Windows Azure Compute– Web Role– Worker Role

• Windows Azure Storage– Blob Storage– Drive Storage– Table Storage– Message Queue Storage

• SQL Azure

– Project Huston• Windows Azure AppFabric

Client Access• Windows Azure AppFabric

Service Bus• Project Dallas• Project Sydney

Page 6: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Topic Background

Who has attended anyWindows Azure presentation?

Page 7: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Topic Background

Who knows how, when and what part of Windows Azure to use?

Page 8: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Topic Background

Why?

Page 9: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Topic Background

Lack of practical presentations!Captain Obvious

Page 10: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Disclaimer

This is not a marketing bu presentation

Page 11: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Disclaimer

This is not an overview of Windows Azure Platform

Page 12: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Disclaimer

This is a practical design session how to leverage Windows Azure

Page 13: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

ARCHITECTING FOR THE CLOUD

Page 14: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Our Current Mindset

• We have enough hardware resources– Powerful servers– Fast hard drives

Page 15: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Our Current Mindset

• Number of servers is more or less fixed– Failures are very unlike– All maintenance and new hardware is planned

in advance

Page 16: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Our Current Mindset

• We have reliable network connection– Connection time-out is a BUG, not a FEATURE

Page 17: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Cloud Mindset

• Only mid-range hardware is available and it can FAIL– No powerful servers– No fast hard drives

Page 18: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Cloud Mindset

• Number of servers is dynamic (unknown)– Implies scale-out architecture

Page 19: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Cloud Mindset

• Network connection will always FAIL– Every operation should have retries

Page 20: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

ARCHITECTING PINGY

Page 21: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

What’s Pingy?

Multi-tenant SaaS, that enables monitoring availability and response times of the external Web sites

Page 22: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Pingy Subscriptions

• Personal– Free of charge–Monitoring up-to 2 web sites– Facebook, LiveID and Google authentication

Page 23: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Pingy Subscriptions

• Professional– 49€/year– Custom branding–Monitoring up-to 20 web sites– Facebook, LiveID and Google authentication

Page 24: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Pingy Subscriptions

• Enterprise– 99€/year– Custom branding–Monitoring up-to 200 web sites– Active Directory authentication

Page 25: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Architectural Goals

• Scalability• Availability• Performance

Page 26: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Design Iteration #1

Web site Data store External web sites

Login()Save(Url, Period)

Ping service

GetUrls(Period)Ping(Url)

Save(Results)

GetStatistics()

Page 27: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Design Iteration #1: On-Premise Architecture• Web site– Stateless ASP.NET application within IIS

• Ping service– .NET executable within Windows service

• Data store– SQL Server

Page 28: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Design Iteration #1: Windows Azure Architecture• Web site– Stateless ASP.NET app within Web Role

• Ping service– .NET executable within Worker Role

• Data store– SQL Azure / Windows Azure Table Storage

Page 29: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Windows Azure Roles• Worker Role– Windows Server 2008 x64– .NET Framework 3.5 SP1 and 4.0– Native Code Full Trust

• Web Role– Everything Worker Role has– IIS 7– ASP.NET (3.5 SP1 and 4.0)– Fast CGI

• VM Role*

1 Role = 1..N VM Instances

Page 30: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

VM Instances• Automatically high available and fault-tolerant• OS updates and patches are applied automatically• Scale-up VM instance

VM Instance Size CPU Memory Instance Storage I/O PerformanceSmall 1.6 GHz 1.75 GB 225 GB ModerateMedium 2 x 1.6 GHz 3.5 GB 490 GB HighLarge 4 x 1.6 GHz 7 GB 1,000 GB HighExtra Large 8 x 1.6 GHz 14 GB 2,040 GB High

Page 31: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

SQL Azure• Relational database as a service• A subset of full SQL Server 2008• Automatically high available and fault-tolerant• Implements same TDS protocol as a regular SQL does– Existing tools just works

• Editions– Web (up-to 5 GB)– Business (up-to 50 GB)

Page 32: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Windows Azure Table Storage• Provide massively scalable structured storage• No schema stored for a table (NoSQL)• Mandatory Properties for every entity– PartitionKey & RowKey– Timestamp

• Automatic partitioning by PartitionKey

Page 33: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Blob storage

Design Iteration #1: Custom Branding

Web site

Login()

Save(Files)Upload(Theme)

?

Data store Ping service

External web sites

Page 34: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Design Iteration #1: Custom Branding

Web site Data store

Login()

Save(Files)

Shared Files

Upload(Theme)

Blob storage Data store Ping

serviceExternal

web siteshttp://<account>.blob.core.windows.net/<container>/<blobname>

Page 35: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Blob Storage• Provide a simple interface for storing named files

along with the metadata• Block Blob– Targeted at streaming workloads– Size limit 200 GB per Blob

• Page Blob– Targeted at random read/write workloads– Size limit 1 TB per Blob

• CDN Option

Page 36: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Design Iteration #2: ScalabilityWeb sites

Data store

External web sites

Login()

GetUrls()

Save()

Ping service

Ping()

Web sites

Blob storage

Upload()Theme()

Table storage

Save()

GetStats()

Page 37: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Design Iteration #2: ScalabilityWeb sites

Data store

External web sites

Login()

Ping scheduler

GetUrls()ExecuteTask()

Save()

Pingers

Ping()

PingersWeb sites

Blob storage

Upload()Theme()

Table storage

Save()

GetStats()

Page 38: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Design Iteration #2: ScalabilityWeb sites

Data store

External web sites

Login()

Ping scheduler

GetUrls()

Save()

PingersMessage queue

Ping()

Pingers

GetTask()

Web sites

Blob storage

Save()

Upload() QueueTask()Theme()

Table storage

GetStats()

Page 39: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Windows Azure Queue Storage• Provide reliable storage and delivery of messages– Two-step consumption

• Messages put into queue can be processed in any order and multiple times

Page 40: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Design Iteration #3: SSO Authentication

Web site Table storage

External web sites

Login()Save()

Ping scheduler

GetUrls()QueueTask()

Save()

GetStats()

PingersMessage queue

Ping()

Pingers

GetTask()

Web sites

Blob storage

Upload()Theme()

Page 41: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

SSO Authentication Challenges• Multiple authentication protocols and identity providers• Integrated Active Directory authentication from the

Cloud

Page 42: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Windows Azure AppFabric Access Control• Federated, claims-based single sign-on authentication

as a service• Supports:– Active Directory Federation Services (AD FS) 2– OAuth, WS-Trust and WS-Federation protocols– Live ID, Google, Yahoo and Facebook identity providers– SAML 1.1, SAML 2.0 and SWT formats

Page 43: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Summary• IIS, Web – Web Role• Windows Service – Worker Role• SQL Server – SQL Azure, Table Storage• NoSQL – Table Storage• Shared Files – BLOB Storage• Message Queues – Queue Storage• SSO Authentication – AppFabric Access Control

Page 44: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Examples, Source Code• http://sergejus.blogas.lt/tag/pingy• http://sergejus.blogas.lt/tag/windows-azure

Page 45: Architecting Windows Azure

2010 SPALIO 27 D.

Microsoft Partnerių konfrencija 2010

Architecting Cloud-based Applications for Windows Azure Platform

Q&A