cloud computing 3702

32
Scaling DotNetNuke In The Cloud

Upload: jess-coburn

Post on 11-Jul-2015

344 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Cloud computing 3702

Scaling DotNetNuke

In The Cloud

Page 2: Cloud computing 3702

Who Is This Guy?

I get to work with an awesome team

(though I never get out in the sun it seems)

Page 3: Cloud computing 3702

Presentation Overview

I’ll cover infrastructure setup and application configuration of DotNetNuke in a elastic scalable cloud hosting environment.

• Infrastructure As A Service (IAAS) Focused

• Professional Edition & Enterprise Edition Focus

• Platform Agnostic (yes Azure & Amazon included)

Page 5: Cloud computing 3702

DotNetNuke – CMS built for the

cloud• Robust caching provider for distributed

deployment

• Customizable performance settings

• Quickly configured for load balanced environments

• The DNN Team has always been aligned closely with Microsoft and the approach to the cloud is no different

Page 6: Cloud computing 3702

Why The Cloud?

• COST – Thanks to virtualization everyone should

consider a HA clustered environment

• Scale Up / Out – Ability to scale your workloads

• Pay Per Use – Pay for what you need, when you

need it

• On Demand – Control your environment as

needed

• Increased Security – Datacenters no closets

• Increased Scale – Compute, Bandwidth, Etc

(obligatory cloud presentation content please bear with me. It’ll get better.)

Page 7: Cloud computing 3702

A Cloud Example – Scale & Security

Page 8: Cloud computing 3702

Why IAAS Over PAAS (yes, I’m biased)

• Avoid platform & vendor lock in

• Greater control over your deployment

• Granular Security Settings

• Controlled Scaling

• Granular Scale Up & Scale Down

Scenarios

• Proven scalability and reliability

• Greater compatibility with existing

modules

Page 9: Cloud computing 3702

Our Highly Available Infrastructure

Cluster

Database

Tier

Web Servers

Tier

Networking

Tier

Cluster

Database

Tier

Web Servers

Tier

Networking

Tier

Page 10: Cloud computing 3702

Highly Available Infrastructure

(Azure)

Create an availability set and that ensures each

machine in that set is in a separate fault domain.

Page 11: Cloud computing 3702

High Availability Infrastructure

(Amazon)

Amazon uses Availability Zones and elastic load balancers to

balance traffic between them.

Availability Zone A Availability Zone B

Elastic Load Balancer

Page 12: Cloud computing 3702

Configuring Webservers

Here’s a few tips to speed it along.

Page 13: Cloud computing 3702

Configuring Webservers

Use Microsoft Web Platform Installer

Selecting “IIS Recommended Configuration”(http://www.microsoft.com/web/platform)

Page 14: Cloud computing 3702

Configuring WebserversKeep a uniform configuration

There’s a number of commercial control panels,

a personal favorite is websitepanel.net

Page 15: Cloud computing 3702

Configuring Webservers

Leverage IIS Shared Config mode

With a few simple steps you can use the same IIS configuration

across multiple web servers, this includes SSL certificates.

Page 16: Cloud computing 3702

File Replication for Shared

Config/DataEasiest Solution is DFS Replication

Then Configure Replication in DFS Management.

See Resources for DFS-R guidance.

(sorry, I only have an hour)

Page 17: Cloud computing 3702

Load Balancer SetupApplication Request Routing (ARR) is a great option.

Things to watch out for or to do:

• Caching of AXD files (set an exclusion)

• Persistant Sessions / Server Affinity / Sticky Sessions

• Replication not working correctly.

• Application Pool Recycling

• Stale Cache when updating images, css, etc

• Recommend offloading SSL

• Recommend offloading compression of static content

Page 18: Cloud computing 3702

Database Server

Clustering/Mirroring

Most sites perform fine with one database

server but for true HA you’ll want a second.

It’s straightforward but check the resources

for links and guidance.

Page 19: Cloud computing 3702

Overwhelmed?

Sound Complicated?

Time consuming?

Maybe even painful?

Good News!

There’s an easier way!

Windows Azure Web Sites

Same Technology

Hosted by AppliedI.net

Ok, you can host it too.. http://www.microsoft.com/hosting/en/us/services.aspx

Page 20: Cloud computing 3702

DotNetNuke Web Farm Configuration

Add web server aliases

DotNetNuke > Admin > Site Settings(I prefer internal IP Addresses for each site.)

Page 21: Cloud computing 3702

DotNetNuke Web Farm Configuration

Assign Unique URLs to each web serverDotNetNuke > Host > Professional Features > Manage Web Servers

Page 22: Cloud computing 3702

Configuring Farm CachingAdjust Page & Module Caching to Memory

DotNetNuke > Host > Host Settings > Performance Settings

Page 23: Cloud computing 3702

Configuring Farm Caching

Manage Cache Settings on Pages & ModulesDotNetNuke > Page/Module > Page Settings > Cache Settings

If you use memory caching everywhere you can disable two

scheduled tasks:

• Purge Module Cache

• Purge Output Cache

This will reduce disk I/O greatly!

Page 24: Cloud computing 3702

Configuring Scheduled Tasks

Scheduled Tasks may run on one server or all servers. It depends

on the scheduled task at hand. Below are the Purge tasks

Purge Users Online - this task is required only if Users Online module is in use on the site; otherwise you can disable it.

Purge Log Buffer - this task should be enabled and should run frequently enough to purge all event from memory to

database.

PurgeCache-This task purges expired items from the database entity cache. There are two standard providers

FileCachingProvider, and WebRequestCachingProvider.

File – All cache files more than 2 hours old that no longer have any keys in memory will be deleted by this task. This task

should be on when File based caching is in use, it only needs to run on 1 web server in a web farm.

WebRequest – Cache item lifetime is managed by the ASP.Net web cache. The PurgeCache task has no effect on

WebRequest caching and does not need to run when WebRequest caching is in use.

PurgeModuleCache: This task purges items from the module cache. There are 3 standard providers File, Database,

Memory. Each module in the system may have different settings, it is best to always run this task. It only needs to run on

1 web server in a web farm to be sure that any cache that exists will be purged.

File – All cache files with an expiry date that has passed will be deleted.

Database – All ModuleCache records with an expiration date that has passed will be deleted.

Memory – Cache item lifetime is managed by the ASP.Net web cache. The Purge Module cache is not required as this

task has no effect on Memory caching.

Purge Output Cache: This task purges items from the page output cache. There are 3 standard providers File,

Database, Memory. Each page in the system may have different settings, it is best to always run this task. It only needs

to run on 1 web server in a web farm to be sure that any cache that exists will be purged.

File – All cache files with an expiry date that has passed will be deleted.

Database – All ModuleCache records with an expiration date that has passed will be deleted.

Memory – Cache item lifetime is managed by the ASP.Net web cache. The Purge Output cache is not required as this

task has no effect on Memory caching

Page 25: Cloud computing 3702

Configuring Scheduled Tasks

When using the File based cache provider

(Host > Host Settings > Performance Settings)

Core Tasks That Should Run on All Servers

• Purge Module Cache

• Purge Cache

• Purge Log Buffer

• Purge Output Cache

• Purge Users Online

Page 26: Cloud computing 3702

Configuring Scheduled Tasks

When using the Memory based cache provider

(Host > Host Settings > Performance Settings)

Core Tasks That Should Run on All Servers

• Purge Log Buffer

• Purge Users Online

Page 27: Cloud computing 3702

Configuring Scheduled Tasks

Core Tasks That Should Run on ONE Server

• Purge Site Log

• Purge Schedule History

• Search Engine Scheduler or Search Crawler

• Send Forum Emails (from forum module)

• Cleanup Forum Email History (from forum module)

• Event Notification (from core event module)

• Messaging Dispatch

The frequency of any task depends on your particular site needs.

Page 28: Cloud computing 3702

Configuring Search

• CE includes Search Engine

Scheduler

• PE includes Search Engine

Scheduler & Search Crawler.

NOTE: You only need one search

module and the Search Crawler will

crawl all content including module

content.

Page 29: Cloud computing 3702

References & Thank Yous

• Jaspreet Bhatia – who helped guide me on

how to setup scheduled tasks

• “DotNetNuke for the System Administrator”

PDF

• “DotNetNuke 6.2.3 SuperUser Manual”

PDF

• Mitchel Sellers, IowaComputerGurus, Inc

• http://www.iis.net

• http://technet.microsoft.com

• http://www.youtube.com

Page 30: Cloud computing 3702

References & Thank Yous (cont’d)

ARR Setup Details

• http://learn.iis.net/tags/ARR/default.aspx

Database Mirroring

• http://blogs.technet.com/b/josebda/archive/2009/04/02/sql-

server-2008-database-mirroring.aspx

• http://www.youtube.com/playlist?list=PL582F622A572D6286&f

eature=plcp

Shared Config/Shared Storage

• http://www.iis.net/learn/manage/managing-your-configuration-

settings/shared-configuration_264

Setting up DFS-R

• http://technet.microsoft.com/en-

us/library/cc732863(v=ws.10).aspx

Page 31: Cloud computing 3702

Questions & Answers

Page 32: Cloud computing 3702

Thank You

• Jess Coburn, CEO

Applied Innovations

[email protected]

• www.appliedi.net