Tag Archives: RAIL Approach

Disruptive statistics, Linux containers, extreme web performance for mobile devices

Giuseppe Sollazzo

 

 

 

Giuseppe Sollazzo
Senior Systems Analyst
St George’s, University of London

 

 

 

 

Day one at the Velocity conference, Amsterdam

What a first day! O’Reilly Velocity, the conference I’m attending thanks to a UCISA bursary, is off to a great start with a first day oriented to practical activities and hands-on workshops. The general idea of these workshops is to build and maintain large-scale IT systems enhancing their performances. Let me provide you with a quick summary of the workshops I have attended.

Statistics for Engineers
A statistics workshop at 9.30am is something that most would find soul-destroying, but this was a great introduction on how to use statistics in an engineering context – in other words, how to apply statistics to reality in order to gather information with the goal of taking action.

Statistics is, indeed, very simple maths and its difficult yet powerful bits allow practitioners to understand situations and predict their outcomes.

This workshop illustrated how to apply statistical methods to datasets generated by user applications: support requests, server logs, website visits. Why is this important? Very simply because service levels need to be planned and agreed upon very carefully. The speaker showed some examples of this. In fact, the title of this workshop should have been “Statistics for engineers and managers”: usage statistics help allocate resources (do we need more? can we reuse some?) and, in turn, financial budgets.

The workshop illustrated how to generate descriptive statistics and also how to use several mathematical tools for forecasting the evolution of service levels. We have had some experience with data collection and evaluation at St George’s University of London, and this workshop has definitely helped refine the tools and reasoning we will be applying.

Makefile VPS
This talk presented itself as a super-geeky session about Linux containers. Containers are a popular way to manage web services that does not require a full-fledged physical or virtual server. They can be easily built, deployed, and managed. However, they are rarely properly understood.

The engineer who presented this workshop showed how in his company, SoundCloud,  they build their own containers to power a “virtual lab” in order to simulate failures and train their engineers to react. His technique, based on scripts that build and launch containers at the press of the “Enter” button, is an effective solution both for quick prototyping and production deployment whenever docker or other commercial/free solutions are not a viable option (due to funding or complexity).

As much as this was quite a hard core session, it was good to see how services can be run in a way that makes their performances very easy to manage. This is definitely something that I will be sharing with my IT colleagues.

Extreme web performance for mobile devices
A lightweight (so to say!) finale to the day, discussing how mobile websites present a diverse range of performance issues and what techniques can be used to test and improve. However, the major contribution from this session was to share some truly extraordinary statistics about mobile traffic and browsers.

For example, the fact that on mobile 75% of traffic is from browser and 25% from web views (i.e. from apps) – 40% of which is from Facebook. Of course, these stats change from country to country and this makes it hard to launch a website with a single audience in mind. For universities, this becomes incredibly important in terms of international students recruitment.

Similarly shocking, we have learnt that the combination of Safari and Chrome, the major mobile browsers reach 93% on WiFi networks but only 88% on 3G networks; this suggests that connections speeds still matter to people, who might opt for different, more traffic-efficient browsers in connectivity-challenged environments (for example, OperaMini goes up from 1% to 4%)

One good practical piece of advice is to adopt the RAIL Approach, promoted by Google, which is a user-centric performance model that takes into consideration four aspects of performance: response, animation, idle time and loading. The combination of these aspects, each of which has its own ‘maximum allowed time’ before the user gets frustrated or abandons the activity, requires a delicate balance.

There was also some good level of discussion around the very popular “responsive web design”, a technique that has become a goal in itself. The speaker suggested that this should be just a tool, rather than a goal: users don’t care about “responsive”, they care about “fast”. Never forget the users is a good motto for everyone working in IT.

Summary
Velocity’s first day has been a very hands on day. The overall take-home lesson is simple: managing performance requires some sound science, but with adequate tools and resources it’s not impossible to do it on a shoestring budget and in an effective way. As I’m an advocate of internal resource control and management with respect to outsourcing, today’s talks have surely provided me with some great insight on how to achieve this smartly.

Aside from this summary, I’ve also been taking some technical notes, which are available here and will also contain notes from the future sessions.