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

Back to top button