Cloud Design Patterns Masashi Narumoto | Senior Program Manager
37 Slides1.56 MB
Cloud Design Patterns Masashi Narumoto Senior Program Manager Larry Brader Senior SDET
Meet Masashi Narumoto @dragon119 Senior Program Manager, Microsoft – PM in p&p focused on Windows Azure – Blogging at http://blogs.msdn.com/Masashi narumoto Over 20 years of industry experience – SDE, SDET, PM, Consultant, Evangelist in PSS, MCS, DPE and p&p – Author of Windows Azure Guidance Moving Applications to the Cloud Developing Multi-Tenant Applications for the Cloud Building Hybrid Applications in the Cloud Developing Big Data Solutions in the Cloud
Meet Larry Brader @nullfire42 Senior Tester, Microsoft – Tester in p&p focused on Test Over 30 years of industry experience – Microsoft 10 years SDET, PM, Consultant, in p&p for Azure, Prism Developed mathematical approach to patterns design & testing – review 900 Author of Test Guidance – Testing for Continuous Delivery with Visual Studio 2012 – Building a Release Pipeline with Team Foundation Server 2012 - Military based worked - Developed & tested critical flight software for B1, B2, Built a base computer model of the entire B2 aircraft to validate
Course Topics Cloud Design Patterns 01 Cloud Design Patterns 1 – Patterns for Resiliency and Availability 02 Cloud Design Patterns 2 – Patterns for Scalability 03 04 05
Agenda Module 1 – Patterns for Resiliency & Availability Module 2 – Patterns for Scalability 01 Design Patterns in the Cloud 01 Scalability Problems 02 Resiliency Problems 02 Valet Key Pattern 03 Circuit Breaker Pattern 03 Sharding Pattern 04 Throttling Pattern 04 Materialized View Pattern 05 Health Endpoint Monitoring Pattern 05 Event Sourcing Pattern 06 CQRS Pattern
Module 1: Cloud Design Patterns 1 Masashi Narumoto Senior Program Manager Larry Brader Senior SDET
Design Patterns in the Cloud
Cloud Design Patterns http://aka.ms/Byr7dm
What is design pattern? Definition – Reusable solution to a commonly occurring problem within a given context in software design Examples – Design Patterns - GoF – Patterns of Enterprise Application Architecture - Martin Fowler – Enterprise Integration Patterns - Gregor Hohpe
Logical model
Problem areas in Cloud Applications Resiliency Scalability Security Availability Management & Monitoring Messaging Distributed Data Management Design & Implementation
Resiliency & Availability Problems
Resiliency & Availability ? Problems X
Circuit Breaker Pattern
Circuit Breaker – Context & Problem
Circuit Breaker - Solution
Circuit Breaker - Considerations Exception handling Testing the failed operations Manual override Resource differentiation Accelerated circuit breaking
Circuit Breaker – When (not) to Use Prevent applications from attempting to invoke a remote service that is highly likely to fail Handle accessing local private resource in an application
Circuit Breaker - Example
Throttling Pattern
Throttling – Context & Problem
Throttling – Solution
Throttling – Solution
Throttling – Considerations Design the strategy early on Perform quickly Return a specific error code Can be used together w/ Autoscaling Consider aggressive autoscaling if demands grow very quickly
Throttling – When to use Ensure a system meets SLA Handle burst activity Prevent a single tenant from monopolizing Help cost-optimize a system by limiting the maximum resource levels Combine with auto-scaling
Health Endpoint Monitoring Pattern
Health Endpoint Monitoring – Context & Problem
Health Endpoint Monitoring – Solution
Health Endpoint Monitoring – Considerations Validation of the response Type of information to collect How to secure the endpoints How to test the agent Third party tools
Health Endpoint Monitoring – When to Use Monitor applications to verify availability Monitor middle-tier or shared services to detect and isolate a failure Complement existing instrumentations
Health Endpoint Monitoring - Example
Module 1 - Summary
Circuit Breaker X
Throttling
Health Endpoint Monitoring ?
2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Office, Azure, System Center, Dynamics 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.
Credit and license of photos Circuit Breaker : Photo from : material from Yusmar Yahaya under creative commons license. Throttling : material from Ramon Cutanda Lopez under creative commons license., Cropped from original Health Endpoint Monitoring : material from jasleen kaur under creative commons license. Valet Key: material from Dave Dugdale under creative commons license, Sharding: material from Lucian Savluc under creative commons license , Cropped from original Materialized View: material from sburke2478 under creative commons license, Cropped from original Event Souring: material from grover net under creative commons license CQRS: material from Ben Schumin under creative commons license