One of the challenges of working at Fellowship Technologies is trying to keep up with our rapid growth while maintaining a high-level of performance for our application, Fellowship One. This past week we reached another milestone in our growth, we served up over 4 million page loads in a single week! What I’m most proud of is that the average render time per page load was just 0.20 seconds. That is in line with top Software as a Service firms like SalesForce.com (Note, the terms Page Load and Render Time are defined below.)
When we first began proactively measuring our performance 3 years ago we were serving up just a few hundred thousand pages yet our render times were a troubling 0.75 to 2.3 seconds per page. So in mid-2005 we set an internal goal of driving that measure down to consistently average no more than 0.5 seconds per page. Through a lot of hard work and dedication the Development and Data Center Operations teams have driven the average down to 0.2 seconds per page despite Fellowship One's astonishing growth in usage.
I’m pleased that I must now tell my team that we must “lower the bar” once again. Hopefully, by this time next year, we’ve driven average render times down to 0.15 seconds or lower.
God bless,
Curtis S
Following is some additional details on how we define and measure application performance.
Accurately defining and measuring performance is an enormous challenge given that there are literally hundreds of factors that can impact the performance of a web-based application like Fellowship One. Some of these factors are within our control (the database, the application, etc.), some are within the control of the church (the local network configuration, the users’ computers hardware and software, etc.) and some are completely outside the direct control of Fellowship Technologies or the church (the church’s Internet Service Provider, the Internet itself, and our Internet Service Provider).
Fellowship Technologies focuses intensely on the factors within our control and offers assistance as needed to the church for factors within their control. Click here for an illustration of these areas.
Our Operations team measures many different factors associated with our physical resources (load balancers, firewalls, servers, network switches, etc.). The team meets on a weekly basis to review the daily, weekly, and monthly utilization trends of our physical resources to determine if the system’s load should be redistributed, if any of the physical resources needs to be redeployed, or if additional hardware should be acquired to supplement or supplant existing hardware.
Application performance is also measured across a variety of factors; the three primary metrics we utilize are Page Loads, Page Render Time, and a proprietary Pain Index. A ‘Page’ refers to a screen or page within the Fellowship One application. The first screen you see when you login is the ‘Home Page’; if you click on Group Email menu item the ‘Group Email Page’ is displayed.
Page Loads
We track each time a page is opened (or ‘loaded’) within Fellowship One. ‘Page Loads’ is a count of the total pages opened within Fellowship One over a period of time and can be reported upon by Page, by Church, and by User.
Page Render Time
When you click on a menu item or button within Fellowship One that results in a new page being displayed, a request is sent across the Internet back to our servers. Our servers receive and process the request, retrieve any relevant data, and generate the page the user is requesting along with the associated data. The completed page is then sent back across the Internet and displayed in the user’s web browser. The Page Render Time is the amount of time it takes for our servers to receive, process, retrieve, and generate the page. We track this data by Page, by Church, and by User.
Pain Index
The Pain Index is a calculation by which we measure how much user perceived ‘pain’ a particular church is experiencing. We calculate the weighted average of Page Loads and Page Render times. For example, if the church has loaded 100 different Fellowship One pages and 2 of the 100 pages has an average Page Render Time outside of acceptable limits then we next look to see how often the page was requested. If the 2 underperforming pages accounted for a high percentage of the church’s total requests then the Pain Index will be high. Conversely, if the 2 pages accounted for a very low percentage of the total request the Pain Index would be low. The Pain Index allows us to focus our efforts on the underperforming pages that are accessed the most frequently. We measure the Pain Index by Page, by Church and by User.
In summary, we use metrics like page loads, render time, and the pain index, along with many others, to proactively address potential hotspots or underperforming areas of our application. While we’re pleased with our progress to date we know that there is always room for improvement (see our blog on our new tool). For additional details on our efforts and for helpful tips for optimizing the performance of Fellowship One, please search for the keyword “performance” in the Fellowship One Support Console.