Kentico webinar load_balanced_solutions

20

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

Transcript of Kentico webinar load_balanced_solutions

Page 1: Kentico webinar load_balanced_solutions
Page 2: Kentico webinar load_balanced_solutions

Deploying and Configuring Kentico CMS in a Load-Balanced, Highly Available

EnvironmentBryan Soltis – Senior Software Engineer

Kentico Certified DeveloperKentico Certified Trainer

Page 3: Kentico webinar load_balanced_solutions

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

Page 4: Kentico webinar load_balanced_solutions

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

Page 5: Kentico webinar load_balanced_solutions

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

Page 6: Kentico webinar load_balanced_solutions

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 *

Page 7: Kentico webinar load_balanced_solutions

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

Page 8: Kentico webinar load_balanced_solutions

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)

Page 9: Kentico webinar load_balanced_solutions

Configuring Site Traffic

NLB• Free with Microsoft Windows

Server• Easy installation /

configuration• Limited customization• “Simple” load balancing

Page 10: Kentico webinar load_balanced_solutions

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.

Page 11: Kentico webinar load_balanced_solutions

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.

Page 12: Kentico webinar load_balanced_solutions

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

Page 13: Kentico webinar load_balanced_solutions

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.

Page 14: Kentico webinar load_balanced_solutions

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.

Page 15: Kentico webinar load_balanced_solutions

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

Page 16: Kentico webinar load_balanced_solutions

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

Page 17: Kentico webinar load_balanced_solutions

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”

Page 18: Kentico webinar load_balanced_solutions

Special Considerations

• Web analytics files• SmartSearch index files• DFS• Code updates• Hardware vs Software

load balancing• Affinity• Session Management• HTTPS

Page 19: Kentico webinar load_balanced_solutions

Questions /Answers

Page 20: Kentico webinar load_balanced_solutions

Start a Conversation With Uswww.BitWizards.com

[email protected]

http://blogs.bitwizards.com/bryan_soltis