architecting with a 'cloud first' mindset
TRANSCRIPT
Marc Mercuri Hatay Tuna Sr. Director ArchitectCloud Strategy MCS
Architecting with a “Cloud First” mindset
Presented in 2012
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
DECOMPOSE APPLICATION BY WORKLOADS
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
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
DEFINE LIFECYCLE MODEL
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
DEFINE AVAILABILITY MODEL + PLAN
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
DEFINE HEALTH MODEL
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
DEFINE SECURITY + IDENTITY
MODEL
DESIGN FOR SECURITY
Use Secure Development Lifecycle (SDL). Full STOP!
13
Remember?Trustworthy Computing
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
DEFINE CAPACITY MODEL + PLAN
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
DEFINE COST MODEL
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
DEFINE OPERATIONAL MODEL + PLAN
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
DEFINE DATA MODEL
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
DEFINE DEVELOPMENT APPROACH
DEFINE TESTING STRATEGY
DEFINE DEPLOYMENT MODEL + PLAN
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?
DEFINE MULTI-TENANCY MODEL
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
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
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
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
EMPHASIS
32
Automation Flexibility Capacity Economics
Independent Isolated Shared
DEFINE SaaS MODEL
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
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
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
© 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.