Cloud computing 3702
-
Upload
jess-coburn -
Category
Documents
-
view
340 -
download
0
Transcript of Cloud computing 3702
Scaling DotNetNuke
In The Cloud
Who Is This Guy?
I get to work with an awesome team
(though I never get out in the sun it seems)
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)
DNN Cloud Vs. Chicken Soup
• Did you know, on allrecipes.com there’s over 2400 different recipes to make chicken soup.
• In the same context, there’s more than one way to deploy DNN in the Cloud. This is ours.
http://allrecipes.com/recipe/catherines-spicy-chicken-soup/detail.aspx
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
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.)
A Cloud Example – Scale & Security
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
Our Highly Available Infrastructure
Cluster
Database
Tier
Web Servers
Tier
Networking
Tier
Cluster
Database
Tier
Web Servers
Tier
Networking
Tier
Highly Available Infrastructure
(Azure)
Create an availability set and that ensures each
machine in that set is in a separate fault domain.
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
Configuring Webservers
Here’s a few tips to speed it along.
Configuring Webservers
Use Microsoft Web Platform Installer
Selecting “IIS Recommended Configuration”(http://www.microsoft.com/web/platform)
Configuring WebserversKeep a uniform configuration
There’s a number of commercial control panels,
a personal favorite is websitepanel.net
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.
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)
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
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.
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
DotNetNuke Web Farm Configuration
Add web server aliases
DotNetNuke > Admin > Site Settings(I prefer internal IP Addresses for each site.)
DotNetNuke Web Farm Configuration
Assign Unique URLs to each web serverDotNetNuke > Host > Professional Features > Manage Web Servers
Configuring Farm CachingAdjust Page & Module Caching to Memory
DotNetNuke > Host > Host Settings > Performance Settings
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!
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
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
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
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.
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.
References & Thank Yous
• Jaspreet Bhatia – who helped guide me on
how to setup scheduled tasks
• “DotNetNuke for the System Administrator”
• “DotNetNuke 6.2.3 SuperUser Manual”
• Mitchel Sellers, IowaComputerGurus, Inc
• http://www.iis.net
• http://technet.microsoft.com
• http://www.youtube.com
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
Questions & Answers
Thank You
• Jess Coburn, CEO
Applied Innovations
• www.appliedi.net