Performance of the new SAP Blogs platform
I am a Performance Engineer on the SCN R&D team which is part of the 1DX program.
This means that I’m always looking for ways to push our solutions with better performance for you, the end users, and also make sure that our clockwork will tick while the high workloads kick in.
The upcoming 1DX platform is really exciting! Not only with new set of features and a fancy look & feel, but we are also working to bring it with very fast response times. While today the SCN platform is mostly performing quite well in terms of response times, there are several features we know of which respond slowly and we plan to improve them later this year once we switch to the new underlying systems that will compound the 1DX platform.
One of the new parts of 1DX is the blogging platform based on WordPress, which we simply call SAP Blogs.
When it comes to you, our end users, performance in your eyes is how fast or responsive the application is.
No one likes to wait several seconds for a page to show up or render. One second is usually too long and might be quite annoying in most cases.
We are trying to make the new blogging platform of 1DX perform faster than today’s blogging experience.
We are working on the new blogging platform for several months now, while performance is measured and improved ongoing. We are measuring performance with each and every build and fail builds upon slow performing activities. We run load tests regularly (at least once a day) and continously monitor and improve. I’d like to share some figures of the expected performance we see in the new system and compare them with the current performance.
*Note: The following figures are based on our regular realistic load tests which we run from within the same network location where our servers are.
These figures are similar to those of you who live in a Central / Northern European location.
Viewing a blog post
Viewing a blog post – which is by far the most popular activity in terms of blogging – takes around 600ms in the current SCN platform.
That’s basically quite good, but this only measures the time our servers worked for generating the page for you.
There’s an extra effort on your browser to actually render the page, so you could see the content – which takes around additional 700ms.
This means that usually you will not see much on your screen for about the first second.
In the new SAP Blogs, we have achieved a remarkable fast loading time of below 250ms!
Adding the browser side rendering which is now only about 350ms – means that you will usually get your screen rendered in about 600ms in total.
That’s twice as fast as of today!
Why am I so excited about getting a page loaded and rendered in 600ms? Because using a web application which reacts fast make the difference.
One whole second or more already feels slow, click around the applications or web sites you usually use, does any of them respond with a new page rendered in less than a second? I guess that most of them won’t and I guess you feel that it is slow and you’re just used to it.
Performance is especially important for the homepage. We wanted to get our readers a superfast entry point, while still having the homepage showing dynamic content, based on recently generated content. As most of the traffic on our system is anonymous (90% of our traffic is from un-authenticated users) and usually a user who browses the homepage, is an anonymous user (until he clicks the ‘Login’ button), we enabled full page caching, based on Varnish.
This means that for anonymous users we do not have to re-generate the Homepage, running logic and rendering on our application servers and fetching data from the DB like we normally do for any page, but instead when such a request coming through our web servers, we check, in-memory, if the requested page is already cached and if it is, than it is immediately served to the user, making the overall process shorter than 10ms (that’s 100th of a second)!
Homepage will load for our users only depending on their network latency to our servers. Users within the Central / Northern eurozone should get the homepage starting to show up in usually less than 100ms (not including the images) but still that’s as fast as today’s Internet can be.
Just for the comparison, today’s SCN homepage loads quite fast with about 500ms or less (for European users) but the main difference here is that we will be able to utilize CDN networks much better now, as anonymous traffic can be proxied, cached and served by CDN servers closer to your location.
Content Delivery Network is basically a network of proxies which are located around the globe and allow users to get faster response times from closer proxies.
Today the CDN network doesn’t help much for SCN page views, as they all must go to our application servers to generate the page, even for anonymous traffic, where all anonymous users should get the same view / content.
The SAP Blogs platform will allow us to better utilize CDN networks, specifically for anonymous page views.
With CDN enabled we will be able to provide to those of your which aren’t in Europe to get page load times which are significantly better than today’s.
Our figures show the following averages for the SCN Homepage loading times (TTFB + Download): 450ms from Northern Europe, 650ms from Israel, 1000ms from the US West coast, 1050ms from Brazil and 1150ms from South-East Asia.
In SAP Blogs, as we allow full page caching for anonymous users, not only the Homepage, but any other activity such as viewing blog posts, will benefit from improved performance, mostly for our global users. Having a CDN for anonymous traffic should flatten the chart above.
We expect to get you really fast loading times for viewing blogs posts – as if you were working close to our Germany-based Data Center.
One important note is that we haven’t enabled CDN yet, as we still need to prove it works as expected. We plan to have it enabled for the SAP Blogs official release.
This is just a short insight into what the team is working on, in terms of performance. There are lot’s of other cool stuff we did and plan to do, to provide improved experience and maybe I’ll share some more as we go, depending on how much traffic or interest this post will recieve.