Canonical Voices

Posts tagged with 'release'

Robin Winslow

On release day we can get up to 8,000 requests a second to ubuntu.com from people trying to download the new release. In fact, last October (13.10) was the first release day in a long time that the site didn’t crash under the load at some point during the day (huge credit to the infrastructure team).

Ubuntu.com has been running on Drupal, but we’ve been gradually migrating it to a more bespoke Django based system. In March we started work on migrating the download section in time for the release of Trusty Tahr. This was a prime opportunity to look for ways to reduce some of the load on the servers.

Choosing geolocated download mirrors is hard work for an application

When someone downloads Ubuntu from ubuntu.com (on a thank-you page), they are actually sent to one of the 300 or so mirror sites that’s nearby.

To pick a mirror for the user, the application has to:

  1. Decide from the client’s IP address what country they’re in
  2. Get the list of mirrors and find the ones that are in their country
  3. Randomly pick them a mirror, while sending more people to mirrors with higher bandwidth

This process is by far the most intensive operation on the whole site, not because these tasks are particularly complicated in themselves, but because this needs to be done for each and every user – potentially 8,000 a second while every other page on the site can be aggressively cached to prevent most requests from hitting the application itself.

For the site to be able to handle this load, we’d need to load-balance requests across perhaps 40 VMs.

Can everything be done client-side?

Our first thought was to embed the entire mirror list in the thank-you page and use JavaScript in the users’ browsers to select an appropriate mirror. This would drastically reduce the load on the application, because the download page would then be effectively static and cache-able like every other page.

The only way to reliably get the user’s location client-side is with the geolocation API, which is only supported by 85% of users’ browsers. Another slight issue is that the user has to give permission before they could be assigned a mirror, which would slightly hinder their experience.

This solution would inconvenience users just a bit too much. So we found a trade-off:

A mixed solution – Apache geolocation

mod_geoip2 for Apache can apply server rules based on a user’s location and is much faster than doing geolocation at the application level. This means that we can use Apache to send users to a country-specific version of the download page (e.g. the German desktop thank-you page) by adding &country=GB to the end of the URL.

These country specific pages contain the list of mirrors for that country, and each one can now be cached, vastly reducing the load on the server. Client-side JavaScript randomly selects a mirror for the user, weighted by the bandwidth of each mirror, and kicks off their download, without the need for client-side geolocation support.

This solution was successfully implemented shortly before the release of Trusty Tahr.

(This article was also posted on robinwinslow.co.uk)

Read more
Iain Farrell

Happy by Sergei Pozdnyak

The submissions process for Ubuntu 14.04 is now closed. If you’d like to look at the images head over to the Flickr Group. From here on a group of dedicated and splendid individuals will get together to select the images that are going to go into the next release of Ubuntu. We’ll be hanging out on #1404wallpaper on Freenode and you can come listen in :)

We generally welcome discussion but please remember that a decision is needed from the time that people volunteer so not too much additional debate.

We’ll start with a meeting tomorrow, Friday 7th March, at 19:00GMT.


Read more
Iain Farrell

The real life dashboard on our wall in the office

Every 6 months the Ubuntu journey starts anew. Those of us entering yet another cycle assume that this all makes sense to the outside world but I like to post up dates on the wall in the office and write a blog post to give those new to the project, and some not so new, a handy reminder of the major milestones in each cycle.

Each release that we create has a cycle with certain key milestones in it. These milestones are broadly agreed before the previous release is even out the door and are almost always an exact copy of what came in the previous release. The schedule for our next release 11.10 Oneiric Ocelot can be found by following this handy link to the Ubuntu wiki.

Anyone wanting to contribute to Ubuntu needs to be aware of these dates, designers and developers alike, as dates like the feature and UI freezes are your deadlines for getting new goodness into the release. Miss this deadline and you’ve missed the October release. Like a train the Ubuntu release rolls out of town whether you’re on it or not, however, unlike those dreadful windows trains there’s another one along real soon – in another 6 months in fact! :)

For more information on the time based approach to projects head over to the wiki pages on the subject and hit us up in the comments if you have any questions!

Read more
Iain Farrell

Release crew model our new banners

It’s release week! That means that the Millbank London office and home office locations this week are a buzz with activity getting things ready for our big release on Sunday.

The members of the kernel team, and others, are modeling our very swanky new banners which are going out to eligible loco teams in the not too distant future. They should stand out at promotional events and attract some attention :)

Away from cool assets being produced we have been focussed this week on the release and by now the beautiful linux desktop you early adopters are already looking at is hopefully starting to feel like home. We can’t wait to hear what you think and hope that you love using Maverick.

So there’s this big release happening on Sunday but I’ve just heard about another release that’s happening on Sunday that’s just as big! The new theme will hit the Ask Ubuntu stack exchange site and we’re really pleased with it!

You can find out more about the selected style by visiting this page on stack exchange.

Big thank you to Mat on our side for working on this and Jin Yang at Stackexchange for helping realise these designs in glorious HTML in time for the release. You’re a splendid fellow for working so hard and so late into the night!

More next week, we still need to do some work for the release, so enjoy, tell us about your release party and roll on UDS and Natty!

Read more