Today's maintenance upgrade: Fileserver migration complete, other updates

Morning all!

XFS -> ext4

So the reason for our extra-long maintenance window this morning was primarily a migration from XFS to ext4 as our filesystem for user storage. We’ll write more about the whys and wherefores of this later, but the short version is that the main reason for using XFS, project quotas, were no longer needed, and a bug in the version of XFS support by Ubuntu LTS left us vulnerable to long periods of downtime after unplanned reboots, while XFS did some unnecessary quotachecks. The switch to ext4 removes that risk, and has simplified some of our code too, bonus!

In other news, we’ve managed to squeeze in a few more user-visible improvements :)

Features bump for paid plans

We’ve decided to tweak the pricing and accounts pages so that all plans are customisable. As a bonus side-effect, we’ve slightly improved all the existing paid plans, so our beloved customers are going to get some free stuff:

  • All Hacker plans now allow you to replace your domain with a custom one
  • We’ve bumped the disk space for Hacker plans from 512MB to 2Gigs
  • And we’ve bumped the Web Developer CPU quota from 3000 to 4000 seconds

Package installs

bottlenose, python-amazon-simple-product-api, py-bcrypt, Flask-Bcrypt, flask-restful, markdown (for Python 3), wheezy.template, pydub, and simpy (for Python 3) are now part of our standard batteries included

Pip wheels available

We’ve re-written our server build scripts to use wheels, and to build them for each package we install. We’ve made them available (at /usr/share/pip-wheels), and we’ve added them to the PythonAnywhere default pip config. So, if you’re installing things into a virtualenv, if it so happens we already have a wheel for the package you want, pip will find it and the install will complete much faster.

Python 3 is now the default for save + run

The “Save and Run” button at the top of the editor, much beloved of teachers and beginners (and highly relevant for our education beta) now defaults to Python 3. It’s 2015, this is the future after all. We didn’t want to break things for existing users, so they will still have 2 as the default, but we can change that for you if you want. Just drop us a line to

Security and performance improvements

Other than that, we’ve added a few minor security and performance tweaks.

Onwards and upwards!

comments powered by Disqus