While we should always be thinking about performance and scalability when building applications, this year the DNN Platform Team is putting a much heavier focus than in the past in this area.
While the rest of the development team have been working on bugs and some new features for 7.3.0, as Senior Architect I have been pretty much 100% focused on performance for the last month, and I expect that to continue for a few more months yet.
Education is part of this effort and this blog is the first of what I hope will be a series of blogs on the topic. I am not going to go into any details in this first blog post, my intention is to lay the groundwork for what will come later.
Although they are often lumped together performance and scalability are not exactly the same thing. So let’s first define these two important concepts.
When we talk about performance we are usually talking about the “speed” of the website. How fast can the server deliver the content, how long does a user have to wait for the page to render?
When we refer to scalability we are talking about how those performance metrics mentioned above are affected by the scale of the site. If there are a large number of users on the site at the same time how is the performance for a single user affected.
Or, if there are a large number of assets in a site, for example 1000 pages or 10,000 folders how does this affect the performance metrics for a single user. In this case the sheer scale of a site may impact the performance of a single user regardless of whether there is any user load of any significance.
In general, user scale has the biggest impact at the server. Once the content has been sent to the browser the number of users on a site has very little impact, so focusing on server site performance will benefit this scenario.
However page scale can have an impact at both the server and the client. For example if there are a large number of pages the menu is larger and much more data has to be sent down the wire to the client, so in this scenario we need to look at both server side and client side aspects.
These examples show that the correct approach when dealing with performance and scalability is to take a scenario based approach. We need to look at how users use the application and optimize the performance based on those scenarios.
We are starting our work with the most common use cases and we will work towards the less common use cases as we work through 2014.
In the next few blogs in this series I will review the factors that affect typical website performance and the tools used to analyze website performance.