Power for Web Applications. Scaling Cold Fusion Applications Douglas Nottage, Autobytel.com.

Slides:



Advertisements
Similar presentations
The Internet.
Advertisements

Implementing Tableau Server in an Enterprise Environment
3.02H Publishing a Website 3.02 Develop webpages..
Case Study: Photo.net March 20, What is photo.net? An online learning community for amateur and professional photographers 90,000 registered users.
Tableau Software Australia
XIr2 Recommended Performance Tuning Andy Erthal BI Practice Manager.
The Scaling IQ Test: When Dev and Admin Collide Richard Campbell Strangeloop Networks.
Adding scalability to legacy PHP web applications Overview Mario A. Valdez-Ramirez.
1 Content Delivery Networks iBAND2 May 24, 1999 Dave Farber CTO Sandpiper Networks, Inc.
Cold Fusion High Availability “Taking It To The Next Level” Presenter: Jason Baker, Digital North Date:
Toolbox Mirror -Overview Effective Distributed Learning.
Web Caching Schemes1 A Survey of Web Caching Schemes for the Internet Jia Wang.
Web Server Hardware and Software
Scalability and planning for growth 1WUCM1. Content management issues Structural – Naming (e.g. file, URL) policy – File and directory naming needs: invent/design/borrow.
Week 2 IBS 685. Static Page Architecture The user requests the page by typing a URL in a browser The Browser requests the page from the Web Server The.
C HAPTER 4 W EB H OSTING. I. I NTRODUCTION To make your Web site visible to the world, it has to be hosted on a Web server. In this tutorial we will teach.
 Proxy Servers are software that act as intermediaries between client and servers on the Internet.  They help users on private networks get information.
Microsoft Load Balancing and Clustering. Outline Introduction Load balancing Clustering.
LEARN THE QUICK AND EASY WAY! VISUAL QUICKSTART GUIDE HTML and CSS 8th Edition Chapter 21: Publishing Your Pages on the Web.
NovaBACKUP 10 xSP Technical Training By: Nathan Fouarge
E-insights, LLC © 2000 All rights reserved. Understanding Web Traffic Michael Whelan part - 2.
WEB ANALYTICS Prof Sunil Wattal. Business questions How are people finding your website? What pages are the customers most interested in? Is your website.
Windows Server MIS 424 Professor Sandvig. Overview Role of servers Performance Requirements Server Hardware Software Windows Server IIS.
For more notes and topics visit:
E.halFILE 2.2 New Application Features Session II.
Server Load Balancing. Introduction Why is load balancing of servers needed? If there is only one web server responding to all the incoming HTTP requests.
 Internet vs WWW  Pages vs Sites  How the Internet Works  Getting a Web Presence.
Reading Data in Web Pages tMyn1 Reading Data in Web Pages A very common application of PHP is to have an HTML form gather information from a website's.
Chapter 7: Using Windows Servers to Share Information.
About Dynamic Sites (Front End / Back End Implementations) by Janssen & Associates Affordable Website Solutions for Individuals and Small Businesses.
Copyright ®xSpring Pte Ltd, All rights reserved Versions DateVersionDescriptionAuthor May First version. Modified from Enterprise edition.NBL.
Global NetWatch Copyright © 2003 Global NetWatch, Inc. Factors Affecting Web Performance Getting Maximum Performance Out Of Your Web Server.
5 Chapter Five Web Servers. 5 Chapter Objectives Learn about the Microsoft Personal Web Server Software Learn how to improve Web site performance Learn.
COLD FUSION Deepak Sethi. What is it…. Cold fusion is a complete web application server mainly used for developing e-business applications. It allows.
1 Bandwidth Kevin Morrison Management Information Systems MWF 1-1:50pm.
AMSI Hosting Options User Panel Discussion Presented by Brian Torney Session 107 Advantages of Self Hosting.
Web Page Design I Basic Computer Terms “How the Internet & the World Wide Web (www) Works”
Network Management Tool Amy Auburger. 2 Product Overview Made by Ipswitch Affordable alternative to expensive & complicated Network Management Systems.
Ideas to Improve SharePoint Usage 4. What are these 4 Ideas? 1. 7 Steps to check SharePoint Health 2. Avoid common Deployment Mistakes 3. Analyze SharePoint.
Step By Step Windows Server 2003 Installation Guide Step By Step Windows Server 2003 Installation Guide.
Module 11: Implementing ISA Server 2004 Enterprise Edition.
ColdFusion Security Michael Smith President TeraTech, Inc ColdFusion, Database & VB custom development
Computing Infrastructure for Large Ecommerce Systems -- based on material written by Jacob Lindeman.
Kiew-Hong Chua a.k.a Francis Computer Network Presentation 12/5/00.
“Load Testing Early and Often” By Donald Doane Presentation to the Rockville MDCFUG.
Web Development Web development never ends: 1.Find out what the stakeholders need (sponsors, users, etc.) 2.Investigate available technology 3.Plan the.
ASP. What is ASP? ASP stands for Active Server Pages ASP is a Microsoft Technology ASP is a program that runs inside IIS IIS stands for Internet Information.
Cold Fusion Hosting The 5 “S”s for Success July 29, 2000 Presentation by Christine Pascarella Virtualscape.
Chapter 12: How Private are Web Interactions?. Why we care? How much of your personal info was released to the Internet each time you view a Web page?
The Internet. Important Terms Network Network Internet Internet WWW (World Wide Web) WWW (World Wide Web) Web page Web page Web site Web site Browser.
G046 Lecture 04 Task C Briefing Notes Mr C Johnston ICT Teacher
Session 11: Cookies, Sessions ans Security iNET Academy Open Source Web Development.
Technology Requirements for Online Testing Training Module Copyright © 2014 American Institutes for Research. All rights reserved.
SMOOTHWALL FIREWALL By Nitheish Kumarr. INTRODUCTION  Smooth wall Express is a Linux based firewall produced by the Smooth wall Open Source Project Team.
Configuring SQL Server for a successful SharePoint Server Deployment Haaron Gonzalez Solution Architect & Consultant Microsoft MVP SharePoint Server
© Janice Regan, CMPT 128, Jan 2007 CMPT 371 Data Communications and Networking HTTP 0.
GENERAL SCALABILITY CONSIDERATIONS
Technology Requirements for Online Testing Training Module Please refer to the revision log on the last slide of this presentation, updated August.
Chapter 7: Using Windows Servers
Web Development Web development never ends:
3.02H Publishing a Website 3.02 Develop webpages..
WWW and HTTP King Fahd University of Petroleum & Minerals
Maximum Availability Architecture Enterprise Technology Centre.
Web Caching? Web Caching:.
Migration Strategies – Business Desktop Deployment (BDD) Overview
Web Privacy Chapter 6 – pp 125 – /12/9 Y K Choi.
Nate Nelson I*LEVEL, Inc.
4.02 Develop web pages using various layouts and technologies.
To Be Safe For Now: Keep your shapefiles simple
4.02 Develop web pages using various layouts and technologies.
Presentation transcript:

Power for Web Applications. Scaling Cold Fusion Applications Douglas Nottage, Autobytel.com

What Does “Scaling” Mean?  Successfully “Scaling an Application” means that your web site right now is experiencing five times your normal traffic levels but the visitors to the site feel like they are on their own personal T-3 circuit.  If you are reading this and wondering if your site could survive such growth as it stands today, you are not ready to be the next Amazon.com … period.

Examples of Scalability  Autobytel.com - Super Bowls 97 & 98  Burst of 19x Traffic Levels within 30 minutes of commercial airing.  Victoria Secret Live Broadcasts  Enough said...  The “Toy Race of 1999”  eToys, Toys ‘R Us, Amazon.com …  If you’re not online, I’ll buy my toys elsewhere.

This Presentation  Your Web Server Environment  How to start small and grow  Your Application Environment  Designing Applications Before they Grow  Your Database Environment  Because the World Doesn’t Live on One Application Alone  Putting it All Together...

The “Big Bang” - Getting Started  Management wants a web site... Today!  Finance wants you to use one of the “faster computers” on someone’s desk.  Finance denies $1500 for Cold Fusion. You download the 30 day eval. in a panic.  SQL Server? Who has that kind of money?! In a frenzy, you whip up an Access database.  Good thing your ISP does DNS! 

The “Big Bang” - Getting Started  8 am - Marketing runs commercial.  5,000 people visit in 30 minutes.  IIS reports 300 current connections.  Your boss can’t get pages to load on his browser via the 100Mbps LAN.  Your database shows only one order but 5,000 visitors.  At 10 am your boss wants a meeting.  What are you going to recommend?  XX

“Puberty” - Growing Quickly  We need a faster server!  More RAM!  Access is for kids... Let’s upgrade to SQL Server!  Download the web logs and run WebTrends on your desktop.

Commercial #2 - Hell on Earth!  8 am - Commercial Airs  8:05 am - Server hits 300 connections.  8:10 am - Extra RAM Is Unused. Why?  8:15 am - Pages are running really slow.  8:16 am - Fearing for your job you decide you must need two web servers.  How do you get one site to go to two different web servers?

Round Robin DNS - FREE Solution  When users ask what IP address your site is located on, the DNS server rotates among a set of addresses in a “round robin” fashion, thereby putting load on multiple servers.  Fast and easy to implement DesktopPC Faster PC or Server

Round Robin DNS - No Failover  Desktop PC Fails or Performs much more slowly than Faster PC  Every second visitor is sent to the “Desktop PC” and waits...  What are your options? DesktopPC Faster PC or Server

Round Robin DNS - FREE Solution  Re-write DNS so that only Faster PC is in the DNS.  Using one server you are destined to crash Faster PC.  Put two Faster PC records in DNS but only one for Desktop PC to distribute load based upon capacity (2:1 Ratio) DesktopPC Faster PC or Server

Round Robin DNS - No Failover  Desktop PC Fails Again.  Every third visitor is sent to the “Desktop PC” and waits...  Round Robin cannot protect against failover.  What are your options? DesktopPC Faster PC or Server

Hardware Solution  Hardware load balancers like Cisco’s Local Director take ALL of your web traffic and distribute it among servers it sees are ‘alive’ and removes servers if they appear to fail.  Sometimes “dead” servers “appear” alive and receive traffic Have a second device around in case the first fails.

Software Solution - Clustering  Software on each computer monitors its health and when it feels “ill”, sends traffic to another server until it feels it is up to handling a larger load.  Sets of computers configured this way are called “clusters.” Server 1 tells Server 2 it is nearing capacity and starts sending users there. Server 1 is too busy. User is “redirected” to Server 2

Hybrid Solution - Best Solution  Load balancing software tells the hardware “how it feels” so the hardware can decide which is the fastest server (at that instant) to send the user to.  The software knows more about the server’s “health” than the hardware does Have a second device around in case the first fails. Servers tell the hardware load balancer how they are performing.

After the Dust Settles...  Company X now has eight web servers in a cluster and users can get to the servers.  However, only one server has SQL Server on it and should it fail, the other servers will not have any data for their applications

NT/SQL Clustering  Company X creates two SQL Servers and puts them in an NT/SQL Cluster.  Should the left server fail, the second will take over and the web cluster will get its data from it until the left server is repaired and brought back online. Web Cluster SQLCluster DriveArray

Bandwidth Limits and Costs...  Customers now rely upon Company X’s web site and the T-1 line is not enough. Getting more bandwidth is costly.  Is there a cheaper way to grow until you can afford more bandwidth? Web Cluster Consumers Limited Bandwidth Big Demand

Using Cheaper Bandwidth...  Company X changes all tags to point to: images.companyx.com  ISP hosts this URL on larger web servers where bandwidth is much cheaper.  Company X uses its expensive in-house bandwidth only for creating CFML pages. Web Cluster Consumers Limited Bandwidth is used for Cold Fusion (Dynamic Content) Pages Only ISP’s Web Server w/ GIFs / JPEGs (Cheaper and larger capacity for static content)

Deploying Code to Many Servers  Copying CFML to lots of servers can be cumbersome and time consuming.  Switch IIS to get its content from C:\ to \\SQL2\yourshare\  IIS/CF will get their code from the file share / drive array.  When you post new code it’s live for all. Web Cluster SQL#2 DriveArray SQL#1 CFMLPages for IIS DataforCF

Creating a “Staged” Environment  Company X releases a brand new site on January 1,  On January 2, development starts on a brand new version to launch several months later.  How can you keep a copy of the existing code to develop on and fix bugs with while also working on the new code?  If you can’t use the live web server to develop on, where do you code?  Where do you test code before it is published to the live web server?

eCommerce Site Fiber Channel Drive Array End Users Developers Testing SQL Database Web Server Development Test Team Extranet Users SQL Database SQL Database Production Off-Site Image / Proxy Servers SQL & Application NT Cluster Extranet Proposed System Architecture

What Servers to Buy?  As soon as possible, upgrade your data to SQL Server and give SQL its own server.  Give SQL as much power as is practical.  Given two uneven servers, the more powerful one should be your data server.  Two dual CPU web servers appears to be better than one quad CPU web server.  Your case is always the exception...

Summing Up - Hardware  Dual CPU Web Servers Mb RAM  Quad CPU SQL Servers Mb RAM  Software/Hardware Hybrid Load Balancing & Server Clustering  NT/SQL Cluster to Protect Your Data  Use the Second SQL Server as a CFML File Share to Simplify Uploading Code  Use a Proxy or Web Server at your ISP to Save Your Expensive Bandwidth  Create a “Staged Environment”

Cold Fusion Administrator  What are the “optimal” settings for the Cold Fusion Administrator?  Limit Simultaneous Requests To _____?  Timeout Requests - 30 or 60 seconds  Restart at Unresponsive Requests  Template Cache - How much can you spare?  Cached Query Limits - ???  CFMAIL Timeout - 30 seconds (CPU Threat)  Log Slow Pages - 10 seconds  Assign an SA password!!!

Cold Fusion Administrator  Cold Fusion Admin - Security Risks  Password protect or remove /cfdocs folder  Deactivate RDS on production servers  Deactivate CFREGISTRY, CFFILE and CFDIRECTORY if you don’t use them.  Deny CF Studio Access in production.  Rotate CF Admin passwords regularly  Don’t Do Beta … Wait Until It Is Released

Cold Fusion - Scalability Issues  Session Variables - Frequently Ineffective  Caching Pages - Only for “static” pages  Caching Queries - Not if excessive  Server Arrays - Keep it in RAM  NEVER use SELECT *  Milliseconds count - Test your application  P-Code Errors - Move to CF4.5  Use SQL where it performs better.

Cold Fusion - Scalability Issues  White Space Kills! - Strip it!   Scope Your Variables - form.myVar  Custom Tags - Share Code & pCode  Keep Calculations to a Minimum  Use Stored Procedures  Faster Execution  Less Data to Pass Around  SQL Can Pre-Format Your Data

Cold Fusion - Scalability Issues  Application.cfm is NOT a “Cure All”  Loads on EVERY Page  You’re Probably Overloading It  OnRequestEnd.cfm - End of All Pages  Assign an SMTP Server to Cold Fusion  Get the SMTP Traffic Off Your Server ASAP!  Schedule CFML -> HTML Page Creation via CFScheduler / Output to File

CF - Session Variables  In a multiple-server environment, it is likely that visitors will jump around to multiple servers during the same visit in order to always use the fastest one per page.  Session variables are stored in individual servers, so if visitors jump around the variables don’t jump with them.  Solution: Store an ID or “uuid” in a cookie or in a URL variable and keep the user’s variables in a database.

Database Suggestions  Use stored procedures where possible.  Let SQL do the work where appropriate.  Learn your Query Optimizer  Use Indices Appropriately (INDEX=…)  Have Enough RAM to Store Your Databases, Indices and Have Extra  Identity Columns &  Ordering Your WHERE Clause

Database Suggestions - Cont.  Max(), Min(), Sum() and Count() - Use!  Review SQL Execution Plans!  Identify Bottlenecks and Fix in Development  Use Verity, Not SQL, For Word Searches  Use (NOLOCK) If “Dirty Reads” Are OK.

Web Log Analysis  Download Your Web Logs and Run them Off-Line - Save Your Web Server CPU.  If You Won’t Use It - Don’t Report It  Remove.GIF/.JPEG From Your Analysis  They Don’t Count  They Slow Down the Reporting  Don’t Do Reverse IP Lookups  It Slows Down Reporting a LOT  Let’s Face It - AOL IS 30-50% of the Users  The Military Will Hate You

Web Log Analysis  Frames = More Pages to Analyze = Bad  Don’t Use SQL-Enabled Web Analyzers

How To Monitor Your Systems  IpSwitch - WhatsUpGold  IpSwitch - iMail for NT (w/ Monitors)  Keynote - World-Wide Sensor Network  Spectrum - $$$  ClusterCats Administrator (CF Enterprise)

Remember...  Scalable Applications Scale with Cold Fusion in Scalable Environments.  … Does your Application Scale?  Thanks for your time and Good Luck!