39
Running, improving and maintaining a site in the real world Dave Voyles Technical Evangelist Email: [email protected] @DaveVoyles

Running, improving & maintaining a site in the real world

Embed Size (px)

Citation preview

Page 1: Running, improving & maintaining a site in the real world

Running, improving and maintaining a site in the real world

Dave VoylesTechnical Evangelist

Email: [email protected]

@DaveVoyles

Page 2: Running, improving & maintaining a site in the real world

Agenda

1)Scenario: Scale2)Scenario: Adapt to Change3)Scenario: Environments

Page 3: Running, improving & maintaining a site in the real world

Let’s get Real

Page 4: Running, improving & maintaining a site in the real world

Scenario: Scale

Page 5: Running, improving & maintaining a site in the real world

5

Scenario description

Your site load varies over time.

You need to adapt.

Smoothly.

Page 6: Running, improving & maintaining a site in the real world

6

Load profiles

INCREASING

BATCHLo

ad Noload

Load

PREDICTABLE

Load

UNPREDICTABLE

Load

Page 7: Running, improving & maintaining a site in the real world

7

Step 1: Preserve server bandwidthPROBLEM:

Your servers are wasting bandwidth serving static files.

Page 8: Running, improving & maintaining a site in the real world

8

Step 1: Preserve server bandwidthSOLUTION:

Serve static files from blob storage.

This is a step towards to delivering content from a content delivery network (CDN).

Page 9: Running, improving & maintaining a site in the real world

9

Step 2: Caching

PROBLEM:

Your servers have finite resources.

You don’t want to repeat work you don’t have to.

Page 10: Running, improving & maintaining a site in the real world

10

Step 2: Caching

SOLUTION:

Store ASP.NET page output cache in Windows Azure Caching Service.

Page 11: Running, improving & maintaining a site in the real world

11

Step 3: Manual scale

PROBLEM:

You need more server resources.

Page 12: Running, improving & maintaining a site in the real world

12

Step 2: Manual Scale

SOLUTION:

Add more servers (horizontal scaling).

Use more powerful servers (vertical scaling).

Page 13: Running, improving & maintaining a site in the real world

13

Page 14: Running, improving & maintaining a site in the real world

14

Step 3: Auto-scale

PROBLEM:

Manual scaling reaction time means outages.

Manual scaling is busy work.

Page 15: Running, improving & maintaining a site in the real world

15

Step 2: Auto-scale

SOLUTION:

Use auto-scale.

Page 16: Running, improving & maintaining a site in the real world

16

Page 17: Running, improving & maintaining a site in the real world

DemoScenario: Scale

Page 18: Running, improving & maintaining a site in the real world

Scenario: Change

Page 19: Running, improving & maintaining a site in the real world

19

Scenario description

Your site isn’t done when you deploy to

production.

You need to add new features.

Change adds risk.

Page 20: Running, improving & maintaining a site in the real world

20

Step 1: Manage database schemaPROBLEM:

Your database and application code need to stay in sync.

Page 21: Running, improving & maintaining a site in the real world

21

Step 1: Manage database schemaSOLUTION:

Use Entity Framework Data Migrations.

Page 22: Running, improving & maintaining a site in the real world

DemoScenario: Data migrations

Page 23: Running, improving & maintaining a site in the real world

23

Step 2: Manage deployments

PROBLEM:

People sometimes make misteaks.

Page 24: Running, improving & maintaining a site in the real world

24

Step 2: Manage deployments

SOLUTION:

Use deployment rollback.

Page 25: Running, improving & maintaining a site in the real world

25

Page 26: Running, improving & maintaining a site in the real world

DemoScenario: Deployment rollback

Page 27: Running, improving & maintaining a site in the real world

27

Step 3: Leverage services

PROBLEM:

Large changes often require you to add new features quickly.

Page 28: Running, improving & maintaining a site in the real world

28

Step 3: Leverage services

SOLUTION:

Take advantage of available Windows Azure services.

Page 29: Running, improving & maintaining a site in the real world

DemoScenario: Windows Azure Active Directory

Page 30: Running, improving & maintaining a site in the real world

Scenario: Multiple Environments

Page 31: Running, improving & maintaining a site in the real world

31

Scenario description

Running a real site requires multiple internal environments.

Global availability requires multiple worldwide deployments.

Page 32: Running, improving & maintaining a site in the real world

32

Step 1: Dev / Test environmentsPROBLEM:

Setting up development web server environments is time consuming.

You need to see your code running somewhere other than deployment before deploying.

Page 33: Running, improving & maintaining a site in the real world

33

Step 1: Dev / Test environmentsSOLUTION:

Environment consistency via deployment setup in Windows Azure Web Sites or VM images.

Cost savings by paying only for what you need.

Page 34: Running, improving & maintaining a site in the real world

DISCOUNTVIRTUAL MACHINES

33%

25%DISCOUNTRESERVED WEB SITESCLOUD SERVICES, HDINSIGHT

MONTHLY CREDITVISUAL STUDIO ULTIMATEWITH MSDN

$150

CREDIT CARD REQUIRED

NO

MONTHLY CREDITVISUAL STUDIO PREMIUMWITH MSDN

$100 MONTHLY CREDIT

VISUAL STUDIO PROFESSIONAL WITH MSDN

$50

Page 35: Running, improving & maintaining a site in the real world

35

Step 2: Global Reach

PROBLEM:

It’s hard to deploy a consistent environment in multiple datacenters.

Page 36: Running, improving & maintaining a site in the real world

36

Step 2: Global Reach

SOLUTION:

Use automated deployment workflow to ensure consistency in deployment process.

Page 37: Running, improving & maintaining a site in the real world

37

Step 3: Continuous Delivery

PROBLEM:

Bugs and issues in your code get harder to fix the longer it takes to find out about them.

Deployment is a risky, error-prone operation.

Page 38: Running, improving & maintaining a site in the real world

38

Step 3: Continuous Delivery

SOLUTION:

Use continuous integration to automate build, unit & integration testing.

Use automated deployment workflow to ensure consistency in deployment process.

Page 39: Running, improving & maintaining a site in the real world

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