SlideShare ist ein Scribd-Unternehmen logo
1 von 40
W15 - Ar chitectur e Best
Pr actices on W indows Azure
                       Nuno Godinho
                  Cloud Solution Architect


                           Level: Intermediate
About Me
Nuno Filipe Godinho
Cloud Solution Architect @ Aditi
Windows Azure MVP


nunog@aditi.com


http://msmvps.com/blogs/nunogodinho
Twitter: @NunoGodinho
Agenda
•   Changing Metrics
•   Architecture Best Practices
•   Key Takeaways
Traditional architecture vs. Cloud architecture

CHANGING METRICS
CapEx
                                                  Allocated         Load
                                                IT-capacities      Forecast
                              Undercapacity
        IT CAPACITY




                      Overcapacity                              Fixed cost of
                                                                IT-capacities




Investment

                                        Actual Load


                                                      TIME
OpEx
                                              Allocated         Load
                                                  IT           Forecast
                                              capacities

                       No undercapacity
         IT CAPACITY




                       Reduction of                           Possible
                       overcapacity                         reduction of
                                                           IT-capacities
 Reduction                                                   in case of
  of initial                                               reduced load
investments
                                      Actual Load


                                                    TIME
THE Challenge!

•   Traditional architecture         •   Cloud architecture
     – Overcapacity available            – No overcapacity
     – Extra layers != extra costs       – Extra layers == extra costs
     – Costs are hidden                  – Costs are visible
In the Cloud YOU pay for ...
the services used

       Windows Azure                SQL Azure     Block Services
                           3.                   5. Access    6. Service
     1.         2.      Storage                  Control         Bus
                                       4. DB
  Compute    Storage   Transacti                Transactio   Connectio
                          ons                       ns            ns


+ the data transfer consumed

            Outside the            7. out       DataCenter
            datacenter
Too Many parameters???

•   Typically you only use 4-5:
    – Compute hours
    – Storage
    – Storage Transactions
    – SQL Azure database
    – Service Bus Connections
    – Access Control Service
    – Caching
Complex?
Let’s see! Here are some of your datacenter
parameters ...
Complex?
Let’s see! Here are some of your datacenter
parameters ...



       What about Now?

 Still think the same?
ARCHITECTURE BEST
PRACTICES
Architect for Scale
•   Prepare to Scale Up & Scale Out
•   Approaches:
    – Have more processing power or storage in your app
      Scale out to multiple instances, based on performance
      metrics
      Partition your data
           Table Storage : partition keys
           SQL Azure : sharding
       Asynchronous architectures

    – Distribute load to other places
       Content Delivery Network
       Federated Authentication and Authorization
       AppFabric Caching
Architect for Scale – Scale Out


                             Webrole


                          Instance 1

         NLB
                          Instance 2


                          Instance 3
Architect for Scale – Scale Out


                             Webrole


                          Instance 1

         NLB
                          Instance 2


                          Instance 3
Architect for Scale – Scale Out


              “round robin”          Webrole
           no sticky sessions !

                                  Instance 1

         NLB
                                  Instance 2


                                  Instance 3
Architect for Scale – Scale Out
                   performance metrics


    App
   App
  App                                        Local
                                              DB
 running on
 3
 2 instances   defines on metrics and
               polling intervals              interpret metrics

                      Scaling engine
                         changes the configuration

                     Configuration
Prepare for Dynamic Scaling
•   Monitor key performance indicators.

•   Dynamically increase or decrease the
    number of worker role instances.

•   Programmatically expand and trim down
    the number of processing threads to adapt
    to variable load conditions.
Prepare for Dynamic Scaling
•   Partition and process fine-grained
    workloads concurrently using the
    Task Parallel Library in the .NET
    Framework 4.

•   Maintain a viable capacity in solutions
    with highly volatile workload in
    anticipation of sudden spikes to be able to
    handle them without the overhead of
    setting up additional instances.
Plan for Disaster Recovery
•   Disasters happen, plan for it

•   Analyze the impacts of an outage for your
    solution/business
Secure your Communications
•   Service Bus Relay with ACS to improve
    service security

•   Use SSL whenever possible

•   Don’t share your secrets
    – Storage Account
    – Service Bus
    – Access Control Service
    – Caching
    – ...
Pick the right Compute Size
•   Remember:
      1 role instance == 1 VM running Windows.
      1 role instance != one specific task for your code
      You’re paying for the entire VM so why not use it?
Partition your Data
•   Partition Data based on the indexing
    needs.
    – SQL Azure for highly indexed data
    – Storage for the rest.
    – Hybrid Partitioning is normally the best approach


•   Shard your SQL Azure data across
    databases to increase the workload.
Horizontal Partitioning
Vertical Partitioning
Hybrid Partitioning
Instrument your Solution




                       Cost Savings


Note: Remember to account for
monitoring and diagnostic usage costs!
Federate your Identity
•   Instead of having another Identity Silo,
    Federate your Identity

•   Make your solutions available with Claim-
    based Identity to increase the security

•   Consider having Federation with multiple
    IdP
Use Asynchronous and reduce
coupling
•   Make your architecture work
    asynchronously

•   Embrace Compensable Transactions

•   Use Queues to orchestrate work loads
Asynchronous Work Loads

          webrole
                        Service      workerrole



   Instance 1                     Instance 1      busy

   Instance 2                     Instance 2      free


   Instance 3                     Instance 3      busy




                Putmessage
Asynchronous Work Loads

                 web
                       Service                  worker
                                                  role
                role
                                        Instance 1       busy
   Instance 1
                       Getmessage
                                        Instance 2       free
   Instance 2


   Instance 3                           Instance 3       busy




                             one (and only one) free
                             Instance of the worker
                             role gets the message
Architect Workers for
Idempotency
•   Workers need to perform the operation
    only once even if called several times

•   Built failure recovery mechanisms
Batch Your Work
•   Batch multiple small work items into a
    single queue message

•   Take several messages at a time
Reduce Coupling
Reduce Cloupling
Reduce Latency
•   Use Affinity Groups to lower the latency
    between your service elements
    – Compute
    – Storage


•   Make services closer and in the same Data
    Center and close to each other (in the
    same Cluster)
Make your Internal
Communidation Secure
•   Use Internal Endpoints to gain
    communication between services
    deployed in Windows Azure and increase
    security

•   Always define Traffic Rules for your
    Internal Entpoints
KEY TAKEAWAYS
Key Takeaways
1.    Architect for Scale
2.    Plan for Disaster Recovery
3.    Secure your Communications
4.    Pick the right Compute size
5.    Partition your Data
6.    Instrument your Solution
7.    Federate your Identity
8.    Use Asynchronous and Reduce Coupling
9.    Reduce Latency
10.   Make Internal Communication Secure
T hank You
                  Nuno Godinho
     Cloud Solution Architect @ Aditi


                       nunog@aditi.com
                Twitter: @NunoGodinho

   http://msmvps.com/blogs/nunogodinho

Weitere ähnliche Inhalte

Was ist angesagt?

Getting Started with Big Data and HPC in the Cloud - August 2015
Getting Started with Big Data and HPC in the Cloud - August 2015Getting Started with Big Data and HPC in the Cloud - August 2015
Getting Started with Big Data and HPC in the Cloud - August 2015Amazon Web Services
 
Lap around the Windows Azure Platform - ericnel
Lap around the Windows Azure Platform - ericnelLap around the Windows Azure Platform - ericnel
Lap around the Windows Azure Platform - ericnelEric Nelson
 
Building Big Data Applications on AWS
Building Big Data Applications on AWSBuilding Big Data Applications on AWS
Building Big Data Applications on AWSAmazon Web Services
 
AWS Webcast - Website Hosting in the Cloud
AWS Webcast - Website Hosting in the CloudAWS Webcast - Website Hosting in the Cloud
AWS Webcast - Website Hosting in the CloudAmazon Web Services
 
Getting Started with Managed Database Services on AWS
Getting Started with Managed Database Services on AWSGetting Started with Managed Database Services on AWS
Getting Started with Managed Database Services on AWSAmazon Web Services
 
AWS re:Invent 2016: Deep Learning, 3D Content Rendering, and Massively Parall...
AWS re:Invent 2016: Deep Learning, 3D Content Rendering, and Massively Parall...AWS re:Invent 2016: Deep Learning, 3D Content Rendering, and Massively Parall...
AWS re:Invent 2016: Deep Learning, 3D Content Rendering, and Massively Parall...Amazon Web Services
 
Oracle Peoplesoft on AWS: A quick introduction
Oracle Peoplesoft on AWS: A quick introductionOracle Peoplesoft on AWS: A quick introduction
Oracle Peoplesoft on AWS: A quick introductionTom Laszewski
 
AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)
AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)
AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)Amazon Web Services
 
AWS re:Invent 2016: Bringing Deep Learning to the Cloud with Amazon EC2 (CMP314)
AWS re:Invent 2016: Bringing Deep Learning to the Cloud with Amazon EC2 (CMP314)AWS re:Invent 2016: Bringing Deep Learning to the Cloud with Amazon EC2 (CMP314)
AWS re:Invent 2016: Bringing Deep Learning to the Cloud with Amazon EC2 (CMP314)Amazon Web Services
 
AWS re:Invent 2016: Best Practices for Data Warehousing with Amazon Redshift ...
AWS re:Invent 2016: Best Practices for Data Warehousing with Amazon Redshift ...AWS re:Invent 2016: Best Practices for Data Warehousing with Amazon Redshift ...
AWS re:Invent 2016: Best Practices for Data Warehousing with Amazon Redshift ...Amazon Web Services
 
Cloud Architecture Tutorial - Platform Component Architecture (2of3)
Cloud Architecture Tutorial - Platform Component Architecture (2of3)Cloud Architecture Tutorial - Platform Component Architecture (2of3)
Cloud Architecture Tutorial - Platform Component Architecture (2of3)Adrian Cockcroft
 
HSBC and AWS Day - Big Data and HPC on AWS
HSBC and AWS Day - Big Data and HPC on AWSHSBC and AWS Day - Big Data and HPC on AWS
HSBC and AWS Day - Big Data and HPC on AWSAmazon Web Services
 
AWS re:Invent 2016: Bring Microsoft Applications to AWS to Save Money and Sta...
AWS re:Invent 2016: Bring Microsoft Applications to AWS to Save Money and Sta...AWS re:Invent 2016: Bring Microsoft Applications to AWS to Save Money and Sta...
AWS re:Invent 2016: Bring Microsoft Applications to AWS to Save Money and Sta...Amazon Web Services
 
Understanding VMware Cloud on AWS
Understanding VMware Cloud on AWSUnderstanding VMware Cloud on AWS
Understanding VMware Cloud on AWSRightScale
 
Taming the cost of your first cloud - CCCEU 2014
Taming the cost of your first cloud - CCCEU 2014Taming the cost of your first cloud - CCCEU 2014
Taming the cost of your first cloud - CCCEU 2014Tim Mackey
 
Virtualizing Apache Spark and Machine Learning with Justin Murray
Virtualizing Apache Spark and Machine Learning with Justin MurrayVirtualizing Apache Spark and Machine Learning with Justin Murray
Virtualizing Apache Spark and Machine Learning with Justin MurrayDatabricks
 
Getting Started with Amazon Redshift
Getting Started with Amazon RedshiftGetting Started with Amazon Redshift
Getting Started with Amazon RedshiftAmazon Web Services
 
AWS 201 - A Walk through the AWS Cloud: App Hosting on AWS - Games, Apps and ...
AWS 201 - A Walk through the AWS Cloud: App Hosting on AWS - Games, Apps and ...AWS 201 - A Walk through the AWS Cloud: App Hosting on AWS - Games, Apps and ...
AWS 201 - A Walk through the AWS Cloud: App Hosting on AWS - Games, Apps and ...Amazon Web Services
 
Creating Your Virtual Data Center: VPC Fundamentals and Connectivity Options
Creating Your Virtual Data Center: VPC Fundamentals and Connectivity OptionsCreating Your Virtual Data Center: VPC Fundamentals and Connectivity Options
Creating Your Virtual Data Center: VPC Fundamentals and Connectivity OptionsAmazon Web Services
 

Was ist angesagt? (20)

Getting Started with Big Data and HPC in the Cloud - August 2015
Getting Started with Big Data and HPC in the Cloud - August 2015Getting Started with Big Data and HPC in the Cloud - August 2015
Getting Started with Big Data and HPC in the Cloud - August 2015
 
Lap around the Windows Azure Platform - ericnel
Lap around the Windows Azure Platform - ericnelLap around the Windows Azure Platform - ericnel
Lap around the Windows Azure Platform - ericnel
 
Building Big Data Applications on AWS
Building Big Data Applications on AWSBuilding Big Data Applications on AWS
Building Big Data Applications on AWS
 
AWS Webcast - Website Hosting in the Cloud
AWS Webcast - Website Hosting in the CloudAWS Webcast - Website Hosting in the Cloud
AWS Webcast - Website Hosting in the Cloud
 
Getting Started with Managed Database Services on AWS
Getting Started with Managed Database Services on AWSGetting Started with Managed Database Services on AWS
Getting Started with Managed Database Services on AWS
 
AWS re:Invent 2016: Deep Learning, 3D Content Rendering, and Massively Parall...
AWS re:Invent 2016: Deep Learning, 3D Content Rendering, and Massively Parall...AWS re:Invent 2016: Deep Learning, 3D Content Rendering, and Massively Parall...
AWS re:Invent 2016: Deep Learning, 3D Content Rendering, and Massively Parall...
 
Oracle Peoplesoft on AWS: A quick introduction
Oracle Peoplesoft on AWS: A quick introductionOracle Peoplesoft on AWS: A quick introduction
Oracle Peoplesoft on AWS: A quick introduction
 
Cost Optimization at Scale
Cost Optimization at ScaleCost Optimization at Scale
Cost Optimization at Scale
 
AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)
AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)
AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)
 
AWS re:Invent 2016: Bringing Deep Learning to the Cloud with Amazon EC2 (CMP314)
AWS re:Invent 2016: Bringing Deep Learning to the Cloud with Amazon EC2 (CMP314)AWS re:Invent 2016: Bringing Deep Learning to the Cloud with Amazon EC2 (CMP314)
AWS re:Invent 2016: Bringing Deep Learning to the Cloud with Amazon EC2 (CMP314)
 
AWS re:Invent 2016: Best Practices for Data Warehousing with Amazon Redshift ...
AWS re:Invent 2016: Best Practices for Data Warehousing with Amazon Redshift ...AWS re:Invent 2016: Best Practices for Data Warehousing with Amazon Redshift ...
AWS re:Invent 2016: Best Practices for Data Warehousing with Amazon Redshift ...
 
Cloud Architecture Tutorial - Platform Component Architecture (2of3)
Cloud Architecture Tutorial - Platform Component Architecture (2of3)Cloud Architecture Tutorial - Platform Component Architecture (2of3)
Cloud Architecture Tutorial - Platform Component Architecture (2of3)
 
HSBC and AWS Day - Big Data and HPC on AWS
HSBC and AWS Day - Big Data and HPC on AWSHSBC and AWS Day - Big Data and HPC on AWS
HSBC and AWS Day - Big Data and HPC on AWS
 
AWS re:Invent 2016: Bring Microsoft Applications to AWS to Save Money and Sta...
AWS re:Invent 2016: Bring Microsoft Applications to AWS to Save Money and Sta...AWS re:Invent 2016: Bring Microsoft Applications to AWS to Save Money and Sta...
AWS re:Invent 2016: Bring Microsoft Applications to AWS to Save Money and Sta...
 
Understanding VMware Cloud on AWS
Understanding VMware Cloud on AWSUnderstanding VMware Cloud on AWS
Understanding VMware Cloud on AWS
 
Taming the cost of your first cloud - CCCEU 2014
Taming the cost of your first cloud - CCCEU 2014Taming the cost of your first cloud - CCCEU 2014
Taming the cost of your first cloud - CCCEU 2014
 
Virtualizing Apache Spark and Machine Learning with Justin Murray
Virtualizing Apache Spark and Machine Learning with Justin MurrayVirtualizing Apache Spark and Machine Learning with Justin Murray
Virtualizing Apache Spark and Machine Learning with Justin Murray
 
Getting Started with Amazon Redshift
Getting Started with Amazon RedshiftGetting Started with Amazon Redshift
Getting Started with Amazon Redshift
 
AWS 201 - A Walk through the AWS Cloud: App Hosting on AWS - Games, Apps and ...
AWS 201 - A Walk through the AWS Cloud: App Hosting on AWS - Games, Apps and ...AWS 201 - A Walk through the AWS Cloud: App Hosting on AWS - Games, Apps and ...
AWS 201 - A Walk through the AWS Cloud: App Hosting on AWS - Games, Apps and ...
 
Creating Your Virtual Data Center: VPC Fundamentals and Connectivity Options
Creating Your Virtual Data Center: VPC Fundamentals and Connectivity OptionsCreating Your Virtual Data Center: VPC Fundamentals and Connectivity Options
Creating Your Virtual Data Center: VPC Fundamentals and Connectivity Options
 

Ähnlich wie Architecture Best Practices on Windows Azure

Cost effective azure
Cost effective azureCost effective azure
Cost effective azureGal Kogman
 
Windows Azure and the cloud: What it’s all about
Windows Azure and the cloud: What it’s all aboutWindows Azure and the cloud: What it’s all about
Windows Azure and the cloud: What it’s all aboutMaarten Balliauw
 
MEW22 22nd Machine Evaluation Workshop Microsoft
MEW22 22nd Machine Evaluation Workshop MicrosoftMEW22 22nd Machine Evaluation Workshop Microsoft
MEW22 22nd Machine Evaluation Workshop MicrosoftLee Stott
 
Oracle in the Cloud
Oracle in the CloudOracle in the Cloud
Oracle in the Cloudzain1425
 
Building Cost-Aware Cloud Architectures - Jinesh Varia (AWS) and Adrian Cockc...
Building Cost-Aware Cloud Architectures - Jinesh Varia (AWS) and Adrian Cockc...Building Cost-Aware Cloud Architectures - Jinesh Varia (AWS) and Adrian Cockc...
Building Cost-Aware Cloud Architectures - Jinesh Varia (AWS) and Adrian Cockc...Amazon Web Services
 
Cloud Computing with .Net
Cloud Computing with .NetCloud Computing with .Net
Cloud Computing with .NetWesley Faler
 
Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...
Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...
Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...Michaël Figuière
 
Building a highly scalable and available cloud application
Building a highly scalable and available cloud applicationBuilding a highly scalable and available cloud application
Building a highly scalable and available cloud applicationNoam Sheffer
 
Взгляд на облака с точки зрения HPC
Взгляд на облака с точки зрения HPCВзгляд на облака с точки зрения HPC
Взгляд на облака с точки зрения HPCOlga Lavrentieva
 
Top 6 Reasons to Use a Distributed Data Grid
Top 6 Reasons to Use a Distributed Data GridTop 6 Reasons to Use a Distributed Data Grid
Top 6 Reasons to Use a Distributed Data GridScaleOut Software
 
The impact of cloud NSBCon NY by Yves Goeleven
The impact of cloud NSBCon NY by Yves GoelevenThe impact of cloud NSBCon NY by Yves Goeleven
The impact of cloud NSBCon NY by Yves GoelevenParticular Software
 
Using Distributed In-Memory Computing for Fast Data Analysis
Using Distributed In-Memory Computing for Fast Data AnalysisUsing Distributed In-Memory Computing for Fast Data Analysis
Using Distributed In-Memory Computing for Fast Data AnalysisScaleOut Software
 
AWS Startup Webinar | Developing on AWS
AWS Startup Webinar | Developing on AWSAWS Startup Webinar | Developing on AWS
AWS Startup Webinar | Developing on AWSAmazon Web Services
 
High Performance Computing - Cloud Point of View
High Performance Computing - Cloud Point of ViewHigh Performance Computing - Cloud Point of View
High Performance Computing - Cloud Point of Viewaragozin
 
A scalable server environment for your applications
A scalable server environment for your applicationsA scalable server environment for your applications
A scalable server environment for your applicationsGigaSpaces
 
Introduction to Cloud Data Center and Network Issues
Introduction to Cloud Data Center and Network IssuesIntroduction to Cloud Data Center and Network Issues
Introduction to Cloud Data Center and Network IssuesJason TC HOU (侯宗成)
 
Erlang as a cloud citizen, a fractal approach to throughput
Erlang as a cloud citizen, a fractal approach to throughputErlang as a cloud citizen, a fractal approach to throughput
Erlang as a cloud citizen, a fractal approach to throughputPaolo Negri
 
Erlang and the Cloud: A Fractal Approach to Throughput
Erlang and the Cloud: A Fractal Approach to ThroughputErlang and the Cloud: A Fractal Approach to Throughput
Erlang and the Cloud: A Fractal Approach to ThroughputWooga
 

Ähnlich wie Architecture Best Practices on Windows Azure (20)

Cost effective azure
Cost effective azureCost effective azure
Cost effective azure
 
Windows Azure and the cloud: What it’s all about
Windows Azure and the cloud: What it’s all aboutWindows Azure and the cloud: What it’s all about
Windows Azure and the cloud: What it’s all about
 
MEW22 22nd Machine Evaluation Workshop Microsoft
MEW22 22nd Machine Evaluation Workshop MicrosoftMEW22 22nd Machine Evaluation Workshop Microsoft
MEW22 22nd Machine Evaluation Workshop Microsoft
 
Oracle in the Cloud
Oracle in the CloudOracle in the Cloud
Oracle in the Cloud
 
Building Cost-Aware Cloud Architectures - Jinesh Varia (AWS) and Adrian Cockc...
Building Cost-Aware Cloud Architectures - Jinesh Varia (AWS) and Adrian Cockc...Building Cost-Aware Cloud Architectures - Jinesh Varia (AWS) and Adrian Cockc...
Building Cost-Aware Cloud Architectures - Jinesh Varia (AWS) and Adrian Cockc...
 
Cloud Computing with .Net
Cloud Computing with .NetCloud Computing with .Net
Cloud Computing with .Net
 
Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...
Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...
Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...
 
Building a highly scalable and available cloud application
Building a highly scalable and available cloud applicationBuilding a highly scalable and available cloud application
Building a highly scalable and available cloud application
 
Взгляд на облака с точки зрения HPC
Взгляд на облака с точки зрения HPCВзгляд на облака с точки зрения HPC
Взгляд на облака с точки зрения HPC
 
Top 6 Reasons to Use a Distributed Data Grid
Top 6 Reasons to Use a Distributed Data GridTop 6 Reasons to Use a Distributed Data Grid
Top 6 Reasons to Use a Distributed Data Grid
 
Azure JumpStart
Azure JumpStartAzure JumpStart
Azure JumpStart
 
The impact of cloud NSBCon NY by Yves Goeleven
The impact of cloud NSBCon NY by Yves GoelevenThe impact of cloud NSBCon NY by Yves Goeleven
The impact of cloud NSBCon NY by Yves Goeleven
 
Using Distributed In-Memory Computing for Fast Data Analysis
Using Distributed In-Memory Computing for Fast Data AnalysisUsing Distributed In-Memory Computing for Fast Data Analysis
Using Distributed In-Memory Computing for Fast Data Analysis
 
NoSQL and ACID
NoSQL and ACIDNoSQL and ACID
NoSQL and ACID
 
AWS Startup Webinar | Developing on AWS
AWS Startup Webinar | Developing on AWSAWS Startup Webinar | Developing on AWS
AWS Startup Webinar | Developing on AWS
 
High Performance Computing - Cloud Point of View
High Performance Computing - Cloud Point of ViewHigh Performance Computing - Cloud Point of View
High Performance Computing - Cloud Point of View
 
A scalable server environment for your applications
A scalable server environment for your applicationsA scalable server environment for your applications
A scalable server environment for your applications
 
Introduction to Cloud Data Center and Network Issues
Introduction to Cloud Data Center and Network IssuesIntroduction to Cloud Data Center and Network Issues
Introduction to Cloud Data Center and Network Issues
 
Erlang as a cloud citizen, a fractal approach to throughput
Erlang as a cloud citizen, a fractal approach to throughputErlang as a cloud citizen, a fractal approach to throughput
Erlang as a cloud citizen, a fractal approach to throughput
 
Erlang and the Cloud: A Fractal Approach to Throughput
Erlang and the Cloud: A Fractal Approach to ThroughputErlang and the Cloud: A Fractal Approach to Throughput
Erlang and the Cloud: A Fractal Approach to Throughput
 

Mehr von Nuno Godinho

Windows Azure Security & Compliance
Windows Azure Security & ComplianceWindows Azure Security & Compliance
Windows Azure Security & ComplianceNuno Godinho
 
Extensibility with sl4 and mef (pt)
Extensibility with sl4 and mef (pt)Extensibility with sl4 and mef (pt)
Extensibility with sl4 and mef (pt)Nuno Godinho
 
Extensibility with sl4 and mef (en)
Extensibility with sl4 and mef (en)Extensibility with sl4 and mef (en)
Extensibility with sl4 and mef (en)Nuno Godinho
 
TechDays 2010 Portugal - WCF RIA Services 16x9
TechDays 2010 Portugal - WCF RIA Services 16x9TechDays 2010 Portugal - WCF RIA Services 16x9
TechDays 2010 Portugal - WCF RIA Services 16x9Nuno Godinho
 
TechDays 2010 Portugal - The Microsoft Silverlight Analytics Framework 16x9
TechDays 2010 Portugal - The Microsoft Silverlight Analytics Framework 16x9TechDays 2010 Portugal - The Microsoft Silverlight Analytics Framework 16x9
TechDays 2010 Portugal - The Microsoft Silverlight Analytics Framework 16x9Nuno Godinho
 
TechDays 2010 Portugal - Scaling your data tier with app fabric 16x9
TechDays 2010 Portugal - Scaling your data tier with app fabric 16x9TechDays 2010 Portugal - Scaling your data tier with app fabric 16x9
TechDays 2010 Portugal - Scaling your data tier with app fabric 16x9Nuno Godinho
 
TechDays 2010 Portugal - Introduction to Silverlight 4.0 16x9
TechDays 2010 Portugal - Introduction to Silverlight 4.0 16x9TechDays 2010 Portugal - Introduction to Silverlight 4.0 16x9
TechDays 2010 Portugal - Introduction to Silverlight 4.0 16x9Nuno Godinho
 
TechDays 2010 Portugal - Entity Framework 4.0 and Beyond
TechDays 2010 Portugal - Entity Framework 4.0 and BeyondTechDays 2010 Portugal - Entity Framework 4.0 and Beyond
TechDays 2010 Portugal - Entity Framework 4.0 and BeyondNuno Godinho
 
TechDays 2010 Portugal - Event Driven Architectures - 16x9
TechDays 2010 Portugal - Event Driven Architectures - 16x9TechDays 2010 Portugal - Event Driven Architectures - 16x9
TechDays 2010 Portugal - Event Driven Architectures - 16x9Nuno Godinho
 

Mehr von Nuno Godinho (11)

Windows Azure Security & Compliance
Windows Azure Security & ComplianceWindows Azure Security & Compliance
Windows Azure Security & Compliance
 
Wif and sl4 (pt)
Wif and sl4 (pt)Wif and sl4 (pt)
Wif and sl4 (pt)
 
Wif and sl4 (en)
Wif and sl4 (en)Wif and sl4 (en)
Wif and sl4 (en)
 
Extensibility with sl4 and mef (pt)
Extensibility with sl4 and mef (pt)Extensibility with sl4 and mef (pt)
Extensibility with sl4 and mef (pt)
 
Extensibility with sl4 and mef (en)
Extensibility with sl4 and mef (en)Extensibility with sl4 and mef (en)
Extensibility with sl4 and mef (en)
 
TechDays 2010 Portugal - WCF RIA Services 16x9
TechDays 2010 Portugal - WCF RIA Services 16x9TechDays 2010 Portugal - WCF RIA Services 16x9
TechDays 2010 Portugal - WCF RIA Services 16x9
 
TechDays 2010 Portugal - The Microsoft Silverlight Analytics Framework 16x9
TechDays 2010 Portugal - The Microsoft Silverlight Analytics Framework 16x9TechDays 2010 Portugal - The Microsoft Silverlight Analytics Framework 16x9
TechDays 2010 Portugal - The Microsoft Silverlight Analytics Framework 16x9
 
TechDays 2010 Portugal - Scaling your data tier with app fabric 16x9
TechDays 2010 Portugal - Scaling your data tier with app fabric 16x9TechDays 2010 Portugal - Scaling your data tier with app fabric 16x9
TechDays 2010 Portugal - Scaling your data tier with app fabric 16x9
 
TechDays 2010 Portugal - Introduction to Silverlight 4.0 16x9
TechDays 2010 Portugal - Introduction to Silverlight 4.0 16x9TechDays 2010 Portugal - Introduction to Silverlight 4.0 16x9
TechDays 2010 Portugal - Introduction to Silverlight 4.0 16x9
 
TechDays 2010 Portugal - Entity Framework 4.0 and Beyond
TechDays 2010 Portugal - Entity Framework 4.0 and BeyondTechDays 2010 Portugal - Entity Framework 4.0 and Beyond
TechDays 2010 Portugal - Entity Framework 4.0 and Beyond
 
TechDays 2010 Portugal - Event Driven Architectures - 16x9
TechDays 2010 Portugal - Event Driven Architectures - 16x9TechDays 2010 Portugal - Event Driven Architectures - 16x9
TechDays 2010 Portugal - Event Driven Architectures - 16x9
 

Kürzlich hochgeladen

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 

Kürzlich hochgeladen (20)

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 

Architecture Best Practices on Windows Azure

  • 1. W15 - Ar chitectur e Best Pr actices on W indows Azure Nuno Godinho Cloud Solution Architect Level: Intermediate
  • 2. About Me Nuno Filipe Godinho Cloud Solution Architect @ Aditi Windows Azure MVP nunog@aditi.com http://msmvps.com/blogs/nunogodinho Twitter: @NunoGodinho
  • 3. Agenda • Changing Metrics • Architecture Best Practices • Key Takeaways
  • 4. Traditional architecture vs. Cloud architecture CHANGING METRICS
  • 5. CapEx Allocated Load IT-capacities Forecast Undercapacity IT CAPACITY Overcapacity Fixed cost of IT-capacities Investment Actual Load TIME
  • 6. OpEx Allocated Load IT Forecast capacities No undercapacity IT CAPACITY Reduction of Possible overcapacity reduction of IT-capacities Reduction in case of of initial reduced load investments Actual Load TIME
  • 7. THE Challenge! • Traditional architecture • Cloud architecture – Overcapacity available – No overcapacity – Extra layers != extra costs – Extra layers == extra costs – Costs are hidden – Costs are visible
  • 8. In the Cloud YOU pay for ... the services used Windows Azure SQL Azure Block Services 3. 5. Access 6. Service 1. 2. Storage Control Bus 4. DB Compute Storage Transacti Transactio Connectio ons ns ns + the data transfer consumed Outside the 7. out DataCenter datacenter
  • 9. Too Many parameters??? • Typically you only use 4-5: – Compute hours – Storage – Storage Transactions – SQL Azure database – Service Bus Connections – Access Control Service – Caching
  • 10. Complex? Let’s see! Here are some of your datacenter parameters ...
  • 11. Complex? Let’s see! Here are some of your datacenter parameters ... What about Now? Still think the same?
  • 13. Architect for Scale • Prepare to Scale Up & Scale Out • Approaches: – Have more processing power or storage in your app Scale out to multiple instances, based on performance metrics Partition your data Table Storage : partition keys SQL Azure : sharding Asynchronous architectures – Distribute load to other places Content Delivery Network Federated Authentication and Authorization AppFabric Caching
  • 14. Architect for Scale – Scale Out Webrole Instance 1 NLB Instance 2 Instance 3
  • 15. Architect for Scale – Scale Out Webrole Instance 1 NLB Instance 2 Instance 3
  • 16. Architect for Scale – Scale Out “round robin” Webrole no sticky sessions ! Instance 1 NLB Instance 2 Instance 3
  • 17. Architect for Scale – Scale Out performance metrics App App App Local DB running on 3 2 instances defines on metrics and polling intervals interpret metrics Scaling engine changes the configuration Configuration
  • 18. Prepare for Dynamic Scaling • Monitor key performance indicators. • Dynamically increase or decrease the number of worker role instances. • Programmatically expand and trim down the number of processing threads to adapt to variable load conditions.
  • 19. Prepare for Dynamic Scaling • Partition and process fine-grained workloads concurrently using the Task Parallel Library in the .NET Framework 4. • Maintain a viable capacity in solutions with highly volatile workload in anticipation of sudden spikes to be able to handle them without the overhead of setting up additional instances.
  • 20. Plan for Disaster Recovery • Disasters happen, plan for it • Analyze the impacts of an outage for your solution/business
  • 21. Secure your Communications • Service Bus Relay with ACS to improve service security • Use SSL whenever possible • Don’t share your secrets – Storage Account – Service Bus – Access Control Service – Caching – ...
  • 22. Pick the right Compute Size • Remember: 1 role instance == 1 VM running Windows. 1 role instance != one specific task for your code You’re paying for the entire VM so why not use it?
  • 23. Partition your Data • Partition Data based on the indexing needs. – SQL Azure for highly indexed data – Storage for the rest. – Hybrid Partitioning is normally the best approach • Shard your SQL Azure data across databases to increase the workload.
  • 27. Instrument your Solution Cost Savings Note: Remember to account for monitoring and diagnostic usage costs!
  • 28. Federate your Identity • Instead of having another Identity Silo, Federate your Identity • Make your solutions available with Claim- based Identity to increase the security • Consider having Federation with multiple IdP
  • 29. Use Asynchronous and reduce coupling • Make your architecture work asynchronously • Embrace Compensable Transactions • Use Queues to orchestrate work loads
  • 30. Asynchronous Work Loads webrole Service workerrole Instance 1 Instance 1 busy Instance 2 Instance 2 free Instance 3 Instance 3 busy Putmessage
  • 31. Asynchronous Work Loads web Service worker role role Instance 1 busy Instance 1 Getmessage Instance 2 free Instance 2 Instance 3 Instance 3 busy one (and only one) free Instance of the worker role gets the message
  • 32. Architect Workers for Idempotency • Workers need to perform the operation only once even if called several times • Built failure recovery mechanisms
  • 33. Batch Your Work • Batch multiple small work items into a single queue message • Take several messages at a time
  • 36. Reduce Latency • Use Affinity Groups to lower the latency between your service elements – Compute – Storage • Make services closer and in the same Data Center and close to each other (in the same Cluster)
  • 37. Make your Internal Communidation Secure • Use Internal Endpoints to gain communication between services deployed in Windows Azure and increase security • Always define Traffic Rules for your Internal Entpoints
  • 39. Key Takeaways 1. Architect for Scale 2. Plan for Disaster Recovery 3. Secure your Communications 4. Pick the right Compute size 5. Partition your Data 6. Instrument your Solution 7. Federate your Identity 8. Use Asynchronous and Reduce Coupling 9. Reduce Latency 10. Make Internal Communication Secure
  • 40. T hank You Nuno Godinho Cloud Solution Architect @ Aditi nunog@aditi.com Twitter: @NunoGodinho http://msmvps.com/blogs/nunogodinho

Hinweis der Redaktion

  1. Visual Studio Live! Las Vegas 2011 © 2012 Visual Studio Live! All rights reserved.
  2. Hidden costs in traditional IT!
  3. © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
  4. Slide Objective Get a graphical overview of horizontal partitioning Speaking notes Horizontal partitioning involves taking horizontal slices through a data set Each slice is placed onto a separate node The schema on each node is the same This example is partitioning by the first letter of the last name Worth asking attendees if this is a good approach… It should spark some discussion and allude to some topics to come in the deck Notes
  5. Slide Objective Get a graphical overview of vertical partitioning Speaking notes Vertical partitioning involves taking vertical slices through a data set Each slice is placed onto a separate node The schema on each node is different Nodes will typically be quite different in character and cost This example is partitioning indexed data onto SQL Azure and the larger binary parts of the data set into cheaper Windows Azure storage Notes
  6. Slide Objective Get a graphical overview of vertical partitioning Speaking notes Vertical partitioning involves taking vertical slices through a data set Each slice is placed onto a separate node The schema on each node is different Nodes will typically be quite different in character and cost This example is partitioning indexed data onto SQL Azure and the larger binary parts of the data set into cheaper Windows Azure storage Notes
  7. Instrumentation/measurement is key to saving costs Measuring and monitoring is crucial to saving costs Where does CPU time get spent? How much % CPU do you use? Storage transactions – what parts of your code are calling storage? What partitions are they hitting in storage? Server logs What URLs are getting served? Characteristics of that content (compression, caching, etc) Use monitoring and diagnostics API to see CPU usage Storage Route all storage access through common code Remember to account for monitoring/diagnostic usage Use Fiddler and Development Storage locally to verify storage patterns
  8. Visual Studio Live! Las Vegas 2011 © 2012 Visual Studio Live! All rights reserved.