Upload
thomas-robbins
View
3.235
Download
1
Embed Size (px)
DESCRIPTION
Topics covered included network architecture, SQL Server configuration, .NET configuration, and Kentico CMS configuration and optimization.Network Architecture- Server configuration- Load balancing- Traffic routing- HTTP/HTTPS considerations- File replicationSQL Server Configuration- Clustered SQL server architecture- Active/Passive- Database configuration/settings.NET Configuration- Session state management- Web server configurationKentico configuration- Web farm synchronization- Best practices
Citation preview
Deploying and Configuring Kentico CMS in a Load-Balanced, Highly Available
EnvironmentBryan Soltis – Senior Software Engineer
Kentico Certified DeveloperKentico Certified Trainer
Agenda
• Overview of Load Balancing / High Availability
• Load Balancing Basicso Methodologyo Architecture
• Configuring Site Traffico Appliances / Softwareo Session Managemento HTTP/HTTPS
• Web Server Configurationo IIS configurationo Site Deploymento IP Configuration
• Database Configurationo Clustered serverso Active / Passive
• Kentico Site Web Farm Supporto Overviewo Web.config settingso CMS Site Manager settings
• Testing the system• Tips / Tricks• Special Considerations
o File replicationo WebAnalyticso SmartSearch
• Questions/Answers
Overview of Load Balancing / High Availability
What is Load Balancing / High Availability?
Load balancing is a technique to distribute workload evenly across two or more computers, network links, CPUs, hard drives, or other resources, in order to get optimal resource utilization, maximize throughput, minimize response time, and avoid overload.
Benefits of Load Balancing
High availability Load dispersion
Redundancy Reduces downtime
Better performance Customizable configuration *
Simple deployment of servers SSL offloading *
Failover support Central session management
Load Balancing Basics
Load balancing a Kentico website consists of deploying the site to multiple web servers/databases to deliver the application.• Load balancing
appliance/software for traffic• Multiple web servers• Clustered SQL Servers• Session Management
Configuring Site Traffic
Configuring site traffic involves deciding how inbound traffic will directed to the multiple servers. This can be managed by hardware or software, with varying configuration options.
Appliances Software
Citrix Netscaler Microsoft NLB
Cisco ACE / IOS Load Balance 9.x
f5 Virtual Load Balancer
Barracuda Open Source *
Configuring Site Traffic
ASP.NET Sessions• In-Proc
Default configuration. Sessions are maintained in memory on the web server. Non-transferable in a load balanced environment.
• State ServerSessions are maintained in memory on one central server. Will allow for sessions to be maintained across the web farm, but still a single point of failure.
• SQL ServerSessions are maintained in a SQL Server database. All page requests will update session information. SQL Server based session, along with clustered SQL servers will provide the most secure, redundant environment.
Noteso Additional SQL Server trips to update session data may result in a performance hito Objects held in session must be serializable. Kentico objects are by default.o Microsoft provides scripts to create databaseo Session data will be automatically cleanup by the database
Configuring Site Traffic
SQL Server Session• All session data stored in SQL
Server• Allow for all web farm
servers to access session data• Simple creation (via scripts)• Self cleaning (via scripts)• Restorable (SQL backups)
Configuring Site Traffic
NLB• Free with Microsoft Windows
Server• Easy installation /
configuration• Limited customization• “Simple” load balancing
Configuring Site Traffic
HTTP / HTTPSTraffic can be secured at load balancer level. This can alleviate processing on the web farm servers because all encryption will occur at the load balancer level.
Note: Typically only available with hardware load balancing.
Web Server Configuration
• Standard IIS sites. • Site will have 1 external IP• Each web server will
contain a unique internal IP. • Load balancer will route
traffic to each internal IP as configured.
• Site is fully deployed to each server in the web farm.
Database Configuration
SQL Server databases can be configured in a number of ways to achieve redundancy and high availability.• Active / Active
o Best use of hardwareo Potential performance
issues• Active / Passive
o Minimum performance issues
o Hardware held in reserve
Kentico Site Web Farm Support
Kentico supports multiple web servers in a web farm. Kentico will automatically replicate uploaded files to all servers in the web farm at configurable intervals. Scheduled tasks are utilized to automate replication.
Kentico pulls data form the database and holds it in memory on the server for faster loading and efficiency (caching). Content changes are immediately viewing on the server they are applied to, however, all other servers need refresh the data.
Note: Kentico does not replace any load balance functionality.
Kentico Site Web Farm Support
• Each server will have its internal IP and identifier defined in the web.config file.
• Additional parameters can be configured to specify exact content to synchronize.
Kentico Site Web Farm Support
• Servers can be enabled/disabled directly from CMS Site Manager
• Site modifications are listed as tasks for each server
• Scheduled tasks can be configured to automate synchronizations
Testing the System
• Deploy to web farm environment• Configure Kentico site for web farm support• Configure site to store files on file system• Update content within the site• Upload files (Bizform, content, etc.)• Check Synchronization tasks• Confirm file modifications are replicated
Tips / Tricks
• Web.config parameterso CMSWebFarmSynchronizeFileso CMSWebFarmSynchronizeBizFormFileso CMSWebFarmSynchronizeDeleteFileso CMSWebFarmMaxFileSizeo CMSWebFarmUpdateWithinRequest
• Debuggingo CMSDebugWebFarmo CMSDebugAllWebFarmo CMSDebugWebFarmLiveo CMSDebugWebFarmLogLength
• “Smart” load balancing• Scheduled tasks• No-downtime server maintenance• “Sticky sessions”
Special Considerations
• Web analytics files• SmartSearch index files• DFS• Code updates• Hardware vs Software
load balancing• Affinity• Session Management• HTTPS
Questions /Answers
Start a Conversation With Uswww.BitWizards.com
http://blogs.bitwizards.com/bryan_soltis