UBports + DigitalOcean

Exploring the infrastructure that makes Ubuntu Touch
5 febrero 2019

This post was written for the UBports Blog on request of DigitalOcean as part of DigitalOcean's sponsorship program.

We use DigitalOcean extensively at UBports. Previous versions of our website wore the DO banner on every page. In the current version of our site, DO is listed on our sponsors page and on the homepage.

What's in the ocean

DigitalOcean hosts some of UBports' most important infrastructure, including our forum and the website you're currently using!

Our website

Our websites and their auxiliary services are handled by Odoo, an open source ERP and CMS. Our Odoo service currently runs on an 8GB RAM / 4 CPU Droplet to handle its almost constant load. You can be served by it by going to either ubports.com or ubuntu-touch.io.

Forum

The UBports Forum is our preferred discussion medium for long-running topics. It runs on NodeBB, a Node.js based forum software. It's fast, reliable, and our community is there. What more could you want?

UBports Push Service

The UBports Push Service enables battery-friendly, asynchronous push notifications to be sent by online services to Ubuntu Touch devices. To use the push service on your device you only need two things:

  1. An app which supports push notifications
  2. Being logged into Ubuntu One through Online Accounts

Once these requirements are met, the device will register with the UBports Push Service and will be ready to receive notifications.

The Push Service currently sips its CPU on a 1GB RAM / 1 CPU Droplet.

If you'd like to learn more about the push service, you can check out ubports/ubuntu-push on GitHub

Odoo image and text block

Weblate

 The UBports translation service is available to allow contributors to translate the Ubuntu Touch system, its core apps, and other apps on request. It uses Weblate to enable a "Continuous Translation" pipeline. New strings in its watched repositories quickly become available to translate in a variety of languages. New translations are committed back to the source repository and are available in new versions of the software.

Nextcloud

Our Nextcloud server allows UBports contributors and Foundation members to store, share, and collaborate on files. It also hosts shared contacts and calendars. This helps us in two ways: it gives us a place to test Ubuntu Touch's CalDAV capabilities and to coordinate our Foundation events. Nextcloud's easy upgrades mean that we can stay protected and DigitalOcean backups and snapshots ensure that our data stays intact.

What's coming next...

Whenever we explore a possible new service, we try it out on DigitalOcean. This is true of our new Docker Swarm cluster, which we are transitioning our existing services to use. Currently we have Etherpad, Matomo, and our internal Redmine tracker (for infrastructure issues) hosted there, but we are readying services such as devices.ubuntu-touch.io and its underlying API to be moved into the cluster as well.

Currently the swarm has two master nodes, with more to come in the near future. If you'd like to replicate these services on your own infrastructure, you can check out ubports-docker-swarm on GitHub.

Odoo text and image block

The features that keep us hooked

DigitalOcean's interface for managing our infrastructure is the best we've ever used. On top of that great interface, they add unique features that keep us coming back.

Rapid Droplet creation

Whenever we need a computer with great connectivity or just want to try out a new tool, getting a Droplet for the job takes seconds. We can create a Droplet in any of eight different regions with just about any Linux distribution we need. They also have a selection of one-click applications that we have used to try tools like self-hosted GitLab and Ghost quickly.

Hourly or monthly pricing options mean that we can try something out for a few hours without spending too much money. In our latest live porting session, we created a Droplet to take advantage of DigitalOcean's bandwidth. We deleted the Droplet after the stream and paid less than $0.50.

Backups

Once we enable backups on a Droplet, DigitalOcean takes a snapshot of the droplet's disk once per week and keeps these snapshots for a month. Using this as part of our backup strategy means we can quickly restore a Droplet to a working state if anything ever goes wrong. We can also create a new Droplet based on a backup snapshot without affecting the running system, enabling us to quickly retrieve a deleted file.

Cloud Firewalls

Cloud Firewalls help us restrict the traffic that may enter or leave a Droplet without configuring complex iptables rules. They keep blocked traffic from reaching the Droplet, reducing its CPU overhead in trying to process all its firewall rules.

Once again, we'd like to thank DigitalOcean for sponsoring UBports. Your support enables us to run fast and reliable infrastructure without breaking a sweat (or the bank!).