2. Who Is This Guy?
I get to work with an awesome team
(though I never get out in the sun it seems)
3. 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)
4. 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
5. 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
6. 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.)
11. High Availability Infrastructure
(Amazon)
Elastic Load Balancer
Availability Zone A Availability Zone B
Amazon uses Availability Zones and elastic load balancers to
balance traffic between them.
13. Configuring Webservers
Use Microsoft Web Platform Installer
Selecting “IIS Recommended Configuration”
(http://www.microsoft.com/web/platform)
14. Configuring Webservers
Keep a uniform configuration
There’s a number of commercial control panels,
a personal favorite is websitepanel.net
15. 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.
16. File Replication for Shared
Config/Data
Easiest Solution is DFS Replication
Then Configure Replication in DFS Management.
See Resources for DFS-R guidance.
(sorry, I only have an hour)
17. Load Balancer Setup
Application 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
18. 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.
19. Overwhelmed?
Sound Complicated?
Good News!
Time SameAzure Web Sites
consuming?
Windows
Technology
There’s even painful?
Maybe an easier way!
Hosted by AppliedI.net
Ok, you can host it too.. http://www.microsoft.com/hosting/en/us/services.aspx
20. DotNetNuke Web Farm Configuration
Add web server aliases
DotNetNuke > Admin > Site Settings
(I prefer internal IP Addresses for each site.)
21. DotNetNuke Web Farm Configuration
Assign Unique URLs to each web server
DotNetNuke > Host > Professional Features > Manage Web Servers
23. Configuring Farm Caching
Manage Cache Settings on Pages & Modules
DotNetNuke > 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!
24. 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
25. 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
26. 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
27. 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.
28. 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.
29. 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
32. Thank You
• Jess Coburn, CEO
Applied Innovations
• jcoburn@appliedi.net
• www.appliedi.net
Notas del editor
Tier 4 Datacenter built to deliver a minimum of 99.995% uptime across all critical systems.750,000 SF160 Global CarriersN+2 Cooling and Power7 inch steel reinforced walls, 32FT about sea level, outside the 500 year flood zone and able to withstand winds in excess of a category 5Security? The 3rd floor is dedicated to the US Government and the Southern Command.
Avoid Platform & Vendor lock-inMaintain greater levels of control over your deployment- Granular Security
In our environment we build self contained clusters and you deploy your application there. In Amazon EC2 you would do the same thing but build this out in Availability Zones. In Azure Virtual Servers you would do this again but build it out in “Cloud Services”
Things to watch out for:PHP Configuration changes would need to be customized.NET will require consistent machine keys so you’ll want to use a common machine key in the server’s .net configurationWatch out for website logging on multiple servers using the same logging folder and creating file clashesOf course before all of this you’ll want to enable DFS replication or use a Network File Share.