Upgrading our Operating Systems to Ubuntu's Trusty
Time for an engineering update! At Transloadit, we have been long-time Ubuntu aficionados. To back that statement up - look what I found during a recent move to a new apartment in Amsterdam:
"My first Ubuntu" 😄. This was in 2005, when Canonical still made funds available to ship Ubuntu CDs all over the world to whoever requested one - for free. It was an ideological thing, I believe. People with slow internet, which was pretty much everyone back then, should be able to enjoy Linux for Human Beings.
It was my first non-Windows desktop and I loved it. So much so that I even tried to push for Ubuntu on the servers of the hosting company where I worked at the time. This was of course considered crazy-talk. Ubuntu was a "Desktop OS" and nothing serious like Slackware, Gentoo or Debian, the server-side distros that were favored at the time. We didn't take the plunge until Feisty came along, around two years later. But after that, we never looked back. Datacenters with thousands of servers humming on Feisty/Gutsy/Hardy - Ubuntu was practically never the cause of problems and always a bringer of joy. Apt was usable and there was no more compiling! 🎉
When we bootstrapped Transloadit, I didn't think twice and we started off with Ubuntu's latest release, Jaunty, in early 2009. Later in that same year, we moved to Karmic. After that, we decided that we only had so much time to spend on OS upgrades, so we switched to Long Term Support (LTS) release cycles, starting with Lucid in 2010.
Even though Ubuntu LTS releases are supported for five years, we immediately upgraded Lucid to its LTS successor Precise, as soon as it was released in 2012. We made that switch because of compatibility issues with the Kernel on EC2 at the time.
Since then we have been happily running on Precise. Because our stack is compiled from scratch and nearly OS independent, we could always perform upgrades to our encoding software, without this version of Ubuntu getting in our way.
Until now, that is.
Conflicting Libraries in Our Stack
We have been able to run several versions of FFmpeg alongside each other, but Imagemagick, the open source tool that lies at the heart of many of the image operations that we support, has proven much harder to compile in a feature-rich and isolated manner.
We do really need isolation in order to avoid breaking backwards compatibility, so that we can opt-in upgrade paths to our customers.
This calls for containers 🐳. With Linux containers, we would have the freedom to deploy new versions of our encoding tools without interfering with existing installs. Once we have this in place, it will be much easier for us to roll out upgrades of any kind.
However, in order to have container capabilities, we first needed to upgrade to Ubuntu's latest LTS release: Trusty!
Canonical's leader Mark Shuttleworth indicated that the focus during this development cycle would be a release characterized by
"performance, refinement, maintainability, technical debt"
and encouraged the developers to make "conservative choices".
So, boring and conservative. Exactly what we are looking for in an LTS release. 😄
I am glad to share with you today that we have successfully rolled out this upgrade and that it has already seen some serious traffic.
Here are 368 Trusty machines eating away at a 2.7 TB encoding queue
Since we will now be able to utilize containers, you can expect us to release more cool conversion options and tools - at a faster pace - without breaking backwards compatibility.
We will first focus on pushing out a new ImageMagick version, work on this project has already started.
As we are moving towards a container-based architecture, we will also be keeping a close eye on Hashicorp's Nomad and CoreOS. We might find ourselves faced with a difficult decision when Ubuntu's next LTS is released. We will certainly share our findings with you!
Share your Transloadit project to earn $300
We love seeing how our community uses Transloadit. Tweet @transloadit to get your proposal approved, share what you’ve built in the form of a blog post or a tutorial on your website, and earn a $300 Gift certificate of your choice as well as a full year of the Startup Plan, at no cost after you publish.
Get started for free with the Community Plan, or, if you are a student, get an upgrade via the GitHub Student Developer Pack.
Get started for free
- Free plan with 5 GB encoding credit
- Set monthly spending limits
- Try without a credit card
- Highly available, globally distributed platform
- Cancel at any time
- Costs displayed for each upload/conversion
Follow us on Twitter:Follow @transloadit
We're SO STOKED to announce the Transloadit Community Plan! 🎉🎉🎉 Unlimited uploading, importing and exporting, 5GB of encoding/month, and access to 50 different file conversion features for all.— 🤖 Transloadit (@transloadit) July 2, 2020
Best part? It's free. Forever. 🤑 Find out more https://t.co/zXWLi3Xa0G pic.twitter.com/DlY5xz1mPG
Get started today
Our Community Plan is free forever and suffices for most projects. Signup is instant. No credit card needed.Sign up today