(re)-Architecting cloud applications on the windows Azure platform CLAEYS Kurt Technology Solution Professional Microsoft EMEA.

Slides:



Advertisements
Similar presentations
Page 1 Ricardo Villalobos Windows Azure Architect Evangelist Microsoft Corporation Designing, Building, and Deploying Windows Azure applications.
Advertisements

From Server to Service: How Microsoft moved Team Foundation Server to Windows Azure Grant Holliday Senior Premier Field Engineer AZR323b.
Mark Simms Principal Program Manager Windows Azure Customer Advisory Team.
“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.
Emmanuel Mesas Microsoft Western Europe Leverage Azure Services & Platform with Existing Application.
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.
Presented by Sujit Tilak. Evolution of Client/Server Architecture Clients & Server on different computer systems Local Area Network for Server and Client.
COS302. = Managed for YouStandalone Servers IaaSPaaSSaaS Applications Runtimes Database Operating System Virtualization Server Storage Networking.
11 SERVER CLUSTERING Chapter 6. Chapter 6: SERVER CLUSTERING2 OVERVIEW  List the types of server clusters.  Determine which type of cluster to use for.
Microsoft Load Balancing and Clustering. Outline Introduction Load balancing Clustering.
Migrating Applications to Azure Cloud. Azure migration is a porting project Gap Analysis Migration Cost Analysis Risk Reduction.
Cloud Computing Systems Lin Gu Hong Kong University of Science and Technology Sept. 21, 2011 Windows Azure—Overview.
SOFTWARE AS A SERVICE PLATFORM AS A SERVICE INFRASTRUCTURE AS A SERVICE.
What is a “modern” application? Ulrich (Uli) Homann Chief Architect, Microsoft Services Microsoft Corporation.
PlacePlace TypeType ServiceService Analysis Caching Integration Sync Search Relational BLOB Query BackupLoad Multi Dim In Memory File XML Reporting.
Cross Platform Mobile Backend with Mobile Services James
A Brief Overview by Aditya Dutt March 18 th ’ Aditya Inc.
itcamp12 # Premium conference on Microsoft technologies Serving 10 million requests per day How to solve the architecture challenges of a high.
Eric Nelson Developer Evangelist Microsoft UK | Lap around.
Components of Windows Azure - more detail. Windows Azure Components Windows Azure PaaS ApplicationsWindows Azure Service Model Runtimes.NET 3.5/4, ASP.NET,
Training Workshop Windows Azure Platform. Presentation Outline (hidden slide): Technical Level: 200 Intended Audience: Developers Objectives (what do.
Migrating Business Apps to Windows Azure Marc Müller Principal Consultant, 4tecture GmbH
Getting Started with Windows Azure Name Title Microsoft Corporation.
Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL
Your First Azure Application Michael Stiefel Reliable Software, Inc.
EXPOSE GOOGLE APP ENGINE AS TASKTRACKER NODES AND DATA NODES.
Introduction to Windows Azure BUGAEV ROMAN. Azure Windows Azure Platform is thus classified as platform as a service and forms part of Microsoft's cloud.
Windows Azure Conference 2014 Deploy your Java workloads on Windows Azure.
AZR308. Building distributed systems on an abstraction against commodity hardware at Internet scale, composed of multiple services. Distributed System.
Microsoft Azure SoftUni Team Technical Trainers Software University
Azure Services Platform Update James Conard Sr. Director Developer & Platform Evangelism Microsoft Corporation.
Visual Studio Windows Azure Portal Rest APIs / PS Cmdlets US-North Central Region FC TOR PDU Servers TOR PDU Servers TOR PDU Servers TOR PDU.
Windows Azure for scalable compute and storage SQL Azure for relational storage for the cloud AppFabric infrastructure to connect the cloud.
Chad Collins CEO Henry Chan CTO In Latin, nubifer means “bringing the clouds”
Windows Azure Cloud Services Anton Boyko.NET developer.
Windows Azure Custom Software Development Mobile Middleware Windows Azure Compute Dipl.-Ing. Damir Dobric Lead Architect daenet
Scalability == Capacity * Density.
Azure in a Day Training: Windows Azure Module 1: Windows Azure Overview Module 2: Development Environment / Portal – DEMO: Signing up for Windows Azure.
Microsoft Cloud Solution.  What is the cloud?  Windows Azure  What services does it offer?  How does it all work?  How to go about using it  Further.
1 Neil Kidd MTC Architect - DPE NeilKidd Neil Kidd MTC Architect - DPE NeilKidd.
Mick Badran Using Microsoft Service Fabric to build your next Solution with zero downtime – Lvl 300 CLD32 5.
Technology Drill Down: Windows Azure Platform Eric Nelson | ISV Application Architect | Microsoft UK |
Building Cloud Solutions Presenter Name Position or role Microsoft Azure.
Building web applications with the Windows Azure Platform Ido Flatow | Senior Architect | Sela | This session.
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.
WINDOWS AZURE AND THE HYBRID CLOUD. Hybrid Concepts and Cloud Services.
Migration of Real Product into Windows Azure Lessons Learned.
Deploying Web Application
Building Scalable Resilient Websites in Azure
Logo here Module 3 Microsoft Azure Web App. Logo here Module Overview Introduction to App Service Overview of Web Apps Hosting Web Applications in Azure.
Exceedra + Azure Mark Rendle Principal Software Architect
Reliable Services Jeffrey Richter Microsoft Azure Service Fabric.
Service Fabric Patterns & Best Practices
02 | Hosting Services in Windows Azure
Windows Azure 講師: 李智樺, Ruddy Lee
Outline Virtualization Cloud Computing Microsoft Azure Platform
Managing Services with VMM and App Controller
Saranya Sriram Developer Evangelist | Microsoft
Migrating your applications to Azure
Developing for Windows Azure
MS AZURE By Sauras Pandey.
Building global and highly-available services using Windows Azure
02 – Cloud Services Bret Stateham | Senior Technical Evangelist​
System Center Configuration Manager Cloud Services – Cloud Distribution Point Presented By: Ginu Tausif.
New, Old or Pink - it is all good
ZORAN BARAC DATA ARCHITECT at CIN7
Microsoft Azure Services Platform
Presentation transcript:

(re)-Architecting cloud applications on the windows Azure platform CLAEYS Kurt Technology Solution Professional Microsoft EMEA

If you want to use the benefits of Azure... Benefis are : Elastic Scalability High Availablity (SLA) Reduced costs Mass storage Assync architecture Yes ! Even if the benefits are not really important... You are just looking for a hosting platform... Yes ! For Azure... applications should be stateless. To avoid failures. Do you need to re-Architect ?

Azure apps are loadbalanced No sticky sessions. No server affinity. Azure is a public PAAS It’s public, some of the resources are shared. It’s a Platform, delivers generic building blocks to implement a solution. Azure compute is a scale out environment Adding more instances of the same power instead of adding more power to a single instance. Azure is a OPEX environment The code (you architect) decides how much you pay. Azure Basics

Azure Compute SLA Windows Azure has separate SLA’s for compute and storage. For compute, we guarantee that when you deploy two or more role instances in different fault and upgrade domains your Internet facing roles will have external connectivity at least 99.95% of the time. Additionally, we will monitor all of your individual role instances and guarantee that 99.9% of the time we will detect when a role instance’s process is not running and initiate corrective action.

Azure Solution Architecture Internet Windows Azure Service Your Service Web Site (ASPX, ASMX, WCF) Web Site (ASPX, ASMX, WCF) Web Role (ASPX, WCF) Worker Service Worker Role Your Storage Tables Blobs Queues NLBNLB SQL Data SQL

Azure Network Load Balancer webrole Instance 1 Instance 2 Instance 3 NLB

Azure Network Load Balancer webrole Instance 1 Instance 2 Instance 3 NLB

Azure Network Load Balancer webrole Instance 1 Instance 2 Instance 3 NLB “round robin” no sticky sessions !

No sticky sessions Avoid use session variables Store state in ASP.NET viewstate More bandwidth needed Not compatible with MVC pattern Store state in SQL Azure You could redirect sessions state to SQL Azure, Azure Storage or AppFabric Caching No server affinity Do not write data to the local filesystem Write data to Azure storage You could use Azure Blob drives (in single instance setup) Developing for a load balancer

Scaling engine App running on 2 instances performance metrics Local DB Scaling engine defines on metrics and polling intervals interprete metrics changes the configuration App 3

Scaling should done in units. A unit-of-scale is a combination of components in multiple layers. Example: application instances and the database together should be considered as the unit-of-scale. If you add application instances you should also add databases. Not necessary 1-to-1, but you should know how many instances a database can handle and add them if needed. Consider all mechanisms that have different scaling behavior like queues, storage, blob drive IO, bandwidth... Unit of Scale pattern

Azure Storage support huge volume tables Tableschema is part of your application Huge capacity 100TB of storage per storage account 1 subscription can have 5 storage accounts Need to partition your tables to have a good response time Azure will move hot partitions to separate nodes to achieve SLA’s Scaling storage

Azure Storage Tables Tables are partitioned to support load balancing across storage nodes unique

Table Partioning Partition keyRow keyData Partition “A” Storage node 1 Partition “B” Storage node 2

All cities in world ( )

Sharing a SQL Server node means throttling to protect the other customers. Throttling means : a connection to SQL Azure could be dropped unexpectedly. Solution : Before issuing a command against a connection check if is still open, re-open it if SQL Azure has closed it. SQL Azure throttling/retry logic using (ReliableSqlConnection conn = new ReliableSqlConnection(connString)) { // Attempt to open a connection using the specified retry policy. conn.Open(sqlAzureRetryPolicy); //... execute SQL queries against this connection... } using (ReliableSqlConnection conn = new ReliableSqlConnection(connString)) { // Attempt to open a connection using the specified retry policy. conn.Open(sqlAzureRetryPolicy); //... execute SQL queries against this connection... }

Service Azure Queues webrole Instance 1 Instance 2 Instance 3 workerrole Instance 1 Instance 2 Instance 3 busy free busy Putmessage

Azure Queues webrole Instance 1 Instance 2 Instance 3 workerrole Instance 1 Instance 2 Instance 3 busy free busy Getmessage one (and only one) free instance of the workerrole gets the message Service

Working with Queues CloudQueueMessage cloudQueueMessage; cloudQueueMessage = cloudQueue.GetMessage(); //process single message CloudQueueMessage cloudQueueMessage; cloudQueueMessage = cloudQueue.GetMessage(); //process single message List cloudQueueMessages; cloudQueueMessages = cloudQueue.GetMessages(32).ToList(); //process all messages on multiple threads List cloudQueueMessages; cloudQueueMessages = cloudQueue.GetMessages(32).ToList(); //process all messages on multiple threads Workerroles read messages from queue to start a job assync. GetMessage = 1 REST call, GetMessages(32) = 1 REST call

Working with Queues while (true) { System.Threading.Thread.Sleep(timeToSleep); CloudQueueMessage cloudQueueMessage; cloudQueueMessage = cloudQueue.GetMessage(); if(cloudQueueMessage!=null) { //process single message } while (true) { System.Threading.Thread.Sleep(timeToSleep); CloudQueueMessage cloudQueueMessage; cloudQueueMessage = cloudQueue.GetMessage(); if(cloudQueueMessage!=null) { //process single message } } Watch out for trying to read messages to often.

1 year, 24 h/day every second 10 GetMessage calls = $315,36 1 year, 24 h/day, every minute 1 GetMessageCall = $0,52 Operational costs Costs multiplied by 600 !!

Re-architecting is needed. Just moving app to cloud is easy but does not give you all benefits. Need some design patterns to reach the benefits : Scalibilty – Unit of Scale Stateless applications Data partitioning Retry Logic vs Throttling Assync architectures using queues Cost effective coding Summary