Your submission was sent successfully! Close

You have successfully unsubscribed! Close

Design and Web team summary – 27th January 2021

Tags: Design

This article is more than 2 years old.

The web team here at Canonical run two-week iterations. Here are some of the highlights of our completed work from this iteration.

Web squad

Our Web Squad develops and maintains most of Canonical’s promotional sites like, and more. 

Refresh of

The Ubuntu Cloud Images website was overdue a revamp. From the styling, bringing it in align with the modern styling from the latest Vanilla. To the content, helping users find cloud-hosted images as well as downloading their own.




The MAAS squad develops the UI for the MAAS project.


This iteration, MAAS has been working on the conceptual level of smartNICs in the UI.  A smartNIC is an intelligent network interface card that is a data processing unit in itself. It operates like a computer inside a computer, where the NIC can communicate directly with the VM without having to do interruption handling in the kernel layer.  When a packet is sent to a conventional NIC, there is an abstraction layer in the kernel where it performs interruption handling and reverse context switching to pull the packet from the ring buffer to the NIC then sends it over to VMs. 

The normal behaviour for when you have several hundred VMs running in a server, each VM will need to emulate the NIC from the host machine and perform interruption handling on the kernel. For this reason, it is a very expensive operation, which utilises huge amounts of resources in the CPU. We can always improve the network throughput by increasing the NIC speed, but we’re not improving the CPU power.

A smartNIC can split itself into multiple physical functions which communicate directly with a collection of VMs through virtual functions because the NIC is the processing unit. There are also several different modes of configuration that you can do with a smartNIC depending on how you would like it to optimise your virtual environment. As well as setting up security rules on the smartNIC to be handled by the NIC.

We’ve been through 2 design iterations on the conceptual level so far, and we are expecting a lot more iterations to come. Simpler problems that we can tackle right away are discoverability and setting up forms. Other than that we are still exploring different ways to represent hardware data from the smartNIC in ways that are useful for our users. So when a user owns a server with a smartNIC, they will be able to discover which mode it has been configured on, deploy the OS, and view hardware information from the VM and physical machine.

LXD as tenants

Another exciting feature that we are currently working on in the UI is to re-associate LXD containers as tenants in MAAS. When a user creates an LXD server through LXD CLI, there is a concept of projects where a user may create multiple projects in an LXD server.

In this feature, a user can sync a project that they created in an LXD server with MAAS and utilise MAAS UI for composing/deleting VMs, creating another project, and other functionalities. Our current scope is to allow our users to connect one project at a time and MAAS would see LXD as a tenant and not the other way around.


The JAAS squad develops the JAAS dashboard for the Juju project.

We have increased visibility of applications on machines using Juju Dashboard by allowing users to view the applications deployed on individual machines. This can be accessed using the ‘Machines’ tab on the model details page.

Snapcraft and Charmhub

The Snapcraft team works closely with the Store team to develop and maintain the Snap Store site and the upcoming Charmhub site.

Following a discourse upgrade, the team updated the Canonical themes for all discourse instances.

When managing more than one snap and using the build Github integration, it can get messy to see the build status of each snap. Previously a user had to go through each snap build page to know its status. 

To make it simpler, the team added the latest build status in a column on the snap list page of a publisher. It describes the status of a snap, from building to release.

Once in a while a bug surfaces, the team calls it the `null` bug. It’s always with pleasure and fun that we fix it. For more details see this article, a short explanation of how our friend the developer advocate Alan Pope tries to break things.

Until now, only charms were available on The team started integrating bundles, which are a collection of charms. The particularity of those bundles is the topology, a visual representation of the bundle itself.

Team posts:

Modular table

CLI Guidelines

With ♥ from Canonical web team.

Talk to us today

Interested in running Ubuntu in your organisation?

Newsletter signup

Select topics you're
interested in

In submitting this form, I confirm that I have read and agree to Canonical's Privacy Notice and Privacy Policy.

Related posts

Vanilla 4.0 release

Last week we released a new major version of the Vanilla framework. Vanilla 4.0 introduces the elements of the new style used for a current rebranding of...

Introducing a VSCode extension for Vanilla CSS Framework

The Vanilla CSS Framework is a utility class-based and customizable SASS library that is the go-to when it comes to styling websites and dashboards across the...

Design and Web team summary – 23 September 2022

The Web and design team at Canonical runs in two-week iterations building and maintaining all of the Canonical websites and product web interfaces. Here are...