architecting with a 'cloud first' mindset

37
MICROSOFT CONFIDENTIAL – INTERN Marc Mercuri Hatay Tuna Sr. Director Architect Cloud Strategy MCS Architecting with a “Cloud First” mindset Presented in 201

Upload: marc-mercuri

Post on 13-Apr-2017

259 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Architecting  with a 'cloud first' mindset

Marc Mercuri Hatay Tuna Sr. Director ArchitectCloud Strategy MCS

Architecting with a “Cloud First” mindset

Presented in 2012

Page 2: Architecting  with a 'cloud first' mindset

AGENDA + OBJECTIVESDesign Practices for “Cloud First” Applications

You will learn new onesYou will remember some of them – because cloud forces you to do soYou will update some of them

These practices are applicable to both on-premise and cloud applications

TO DO during design

Page 3: Architecting  with a 'cloud first' mindset

DECOMPOSE APPLICATION BY WORKLOADS

Page 4: Architecting  with a 'cloud first' mindset

DECOMPOSE APPLICATION BY WORKLOADS

Consider applications are composed of multiple workloadsProducts like SharePoint and Windows Server are designed with this principle in mind

Different workloads have different profiles: and requirementsAvailability, Operational, Cost, Health, Security, Capacity, And so on…

eCommerce as an example:Browse + SearchCheckout

4

Page 5: Architecting  with a 'cloud first' mindset

WINDOWS PACKAGING TAXONOMY

5

composition by packaging functionality

COMPONENTS: Reusable, self-describing, unit of testing , distribution and servicing

FEATURES: Product building-block which, in combination with other features or components, delivers a set of functionalityROLES: Composition of features that forms the unit of management (deployment, update and so on)

WORKLOADS: Composition of often related roles that run together on a server or set of servers

SOLUTION: A set of integrated workloads that together address a specific problem for a targeted customer segmentPRODUCT: A SKU or a solution packaged as a product

Page 6: Architecting  with a 'cloud first' mindset

DEFINE LIFECYCLE MODEL

Page 7: Architecting  with a 'cloud first' mindset

DEFINE APPLICATION LIFECYCLEApplication Lifecycle define the key stages and milestones application goes through when it is operational

Such stages are defined using time vs. usage/capacity/availability etc.

Often usage has direct relationship with capacity, availability and cost

7

M T W T F S S

Workload 1

Workload 2

J F M A M J J A S O N D

Workload 1

Workload 2

Page 8: Architecting  with a 'cloud first' mindset

DEFINE AVAILABILITY MODEL + PLAN

Page 9: Architecting  with a 'cloud first' mindset

DEFINE AVAILABILITY MODEL + PLANAvailability Model defines the when and why of the availability and drives SLA(s)Availability Plan is the how of the availability – how the availability of the application and its workloads will be guaranteed.

Resiliency is KING!

Football API (Example)Live Match Scores + Commentary

100% during a live gameNone when there is no match

Team + Player Stats99% all the time

Application SLA != Platform SLA 9

J F M A M J J A S O N D

Workload 1

Workload 2

Page 10: Architecting  with a 'cloud first' mindset

DEFINE HEALTH MODEL

Page 11: Architecting  with a 'cloud first' mindset

Catch

Recover

Monitor

DEFINE REAL-TIME HEALTHThere is more to a system than softwareUnderstand how hardware failures affect the systemUnderstand “good health”Understand “diminished health”Understand “failure” Ensure your “system” understands health dependencies

I challenge you – “Beat the Users”Know about health before users tells you

11

App + Data

Page 12: Architecting  with a 'cloud first' mindset

DEFINE SECURITY + IDENTITY

MODEL

Page 13: Architecting  with a 'cloud first' mindset

DESIGN FOR SECURITY

Use Secure Development Lifecycle (SDL). Full STOP!

13

Remember?Trustworthy Computing

Page 14: Architecting  with a 'cloud first' mindset

DEFINE SECURITY + IDENTITY MODELIdentity Lifecycle Management is often missed

FederationProvisioning and De-provisioningManagement (for example employee promotion)Administration (for example password reset)

Access + ControlAuthenticationAuthorisation + Roles Based AccessAuditing

Externalise your identity providerNote that it is a dependency

14

Page 15: Architecting  with a 'cloud first' mindset

DEFINE CAPACITY MODEL + PLAN

Page 16: Architecting  with a 'cloud first' mindset

DEFINE CAPACITY MODEL + PLAN

Capacity Model defines the when and why of the capacity and drives hosting cost model

Capacity Plan is the how of the capacity – how the capacity for the application and its workloads will be guaranteed.

16

J F M A M J J A S O N D

Workload 1

Workload 2

Page 17: Architecting  with a 'cloud first' mindset

DEFINE COST MODEL

Page 18: Architecting  with a 'cloud first' mindset

DEFINE COST MODEL

Break-down the cost by workloads and consumptions patterns

You don’t have to do this for every use case – group similar scenarios into groups with similar cost profiles

Develop a heat-map to represent your cost modelRepresent your cost in the lifecycle model

18

Page 19: Architecting  with a 'cloud first' mindset

DEFINE OPERATIONAL MODEL + PLAN

Page 20: Architecting  with a 'cloud first' mindset

MINIMIZE/ELIMINATE MANUAL OPERATIONS + REACTIVE SUPPORT

Using the lifecycle models identifyAll pro-active operationsAll possible events and reactions

Implementation optionsManual (Human) – Slow and Not ConsistentElectronic (Human + Software) – Slow and ConsistentAutomated (Software) – Fast and Consistent

Look to automate both pro-active operations and reactive responses

Design the system to recover from any failure at any level

Application + Data

Platform

Datacenter

Page 21: Architecting  with a 'cloud first' mindset

DEFINE DATA MODEL

Page 22: Architecting  with a 'cloud first' mindset

DEFINE DATA MODEL

Data Model definesHow your data is structured, grouped and partitioned (following workload pattern)How your data is deployed – which data goes whereHow your data is secured and accessedHow your data is queried and patterns (for example I/O, Tx.)

22

Volume Velocity Variety Variability

Page 23: Architecting  with a 'cloud first' mindset

DEFINE DEVELOPMENT APPROACH

Page 24: Architecting  with a 'cloud first' mindset

DEFINE TESTING STRATEGY

Page 25: Architecting  with a 'cloud first' mindset

DEFINE DEPLOYMENT MODEL + PLAN

Page 26: Architecting  with a 'cloud first' mindset

DEFINE DEVELOPMENT, TESTING + DEPLOYMENT MODELS

Rethink!

Examples:What version of facebook are you using?

How do facebook develop, test and release new versions of facebook? Are there any versions?

How do you test your new web site you will launch at Super Bowl on Sunday?

Simulating 500M users?

How does Amazon deploy country specific features in every country?

Page 27: Architecting  with a 'cloud first' mindset

DEFINE MULTI-TENANCY MODEL

Page 28: Architecting  with a 'cloud first' mindset

DEFINE MULTI-TENANCY MODEL

Multi-tenancy is about instances of your software.

A multi-tenancy model defines how your software will beDevelopedConfiguredDeployedManagedScaled

For each of your customer

Page 29: Architecting  with a 'cloud first' mindset

Acc. Owner

Admin

< 1000 Users

< 1000 users < 4000 users

Management & Support

Software Provider

A copy of the Software (instance per customer) is configured, deployed, scaled and managed independently.

Acc. Owner

Admin

< 4000 Users

MULTI-INSTANCE MODEL

Page 30: Architecting  with a 'cloud first' mindset

SINGLE INSTANCE MODEL

30

Acc. Owner

Admin

< 1000 Users

Management & Support

Software Provider

A Software (single instance for all customers) is configured, deployed, scaled and managed.

Acc. Owner

Admin

< 4000 Users

All Users

Page 31: Architecting  with a 'cloud first' mindset

4 MODELS OF TENANCY STACK

Infrastructure

Platform

Application

Tenant

Infrastructure

Platform

Application

Tenant

IaaS

Platform

Application

Tenant

Platform

Application

Tenant

IaaS

PaaS

Application

Tenant

Application

Tenant

IaaS

PaaS

SaaS

Tenant Tenant

Specialisation vs. Generalisation

Multi-Instance Single-Instance

Isolated SharedIndependent

Page 32: Architecting  with a 'cloud first' mindset

EMPHASIS

32

Automation Flexibility Capacity Economics

Independent Isolated Shared

Page 33: Architecting  with a 'cloud first' mindset

DEFINE SaaS MODEL

Page 34: Architecting  with a 'cloud first' mindset

DEFINE SAAS MODELSaaS Model defines how your application will be provided as a servicesKey Activities

On-BoardingProvisioning

ExampleWL1: $0.005 10K tx a monthWL2: $0.020 10K tx a month

Customer A: 5000 usersWL1: %20WL2: %80

Customer B: 7000 usersWL1: %65WL2: %35

Commercial

Multi-TenancySaaS

Informs, Influences, Impacts

I challenge you – “Put $ on the User”

Calculate user’s “footprint” on the application

Page 35: Architecting  with a 'cloud first' mindset

DESIGN FOR CLOUD APPLICATIONS

Decompose Application

by Workloads

Define Lifecycle

Model

Define Availability

Model

Define Deployment Model + Plan

Define Health Model

Define Security Model

Define Capacity

Model + PlanDefine Cost

ModelDefine

Operational Model + Plan

Define Integration

Model

Define Data Model

Define Testing

Strategy

Define Development Approach

Define Multi-Tenancy Model

Define SaaS Model

Page 36: Architecting  with a 'cloud first' mindset

MICROSOFT CONF IDENTIAL – INTERNAL ONLY

SESSION OBJECTIVES AND TAKEAWAYS

Session Objective(s): Learn Design Practices to develop application with “Cloud First” mindset

Apply these practices as part of design process for both on-premise and cloud solutions

These will be make life easier when your customer is ready to move to cloud

Page 37: Architecting  with a 'cloud first' mindset

© 2012 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.