Your submission was sent successfully! Close

Thank you for signing up for our newsletter!
In these regular emails you will find the latest updates from Canonical and upcoming events where you can meet our team.Close

Thank you for contacting our team. We will be in touch shortly.Close

  1. Blog
  2. Article

Anthony Dillon
on 27 January 2021

Design and Web team summary – 27th January 2021

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.

Related posts

Ana Sereijo
19 April 2024

Let’s talk open design

Design Article

Why aren’t there more design contributions in open source? Help us find out! ...

Igor Ljubuncic
24 January 2024

Canonical’s recipe for High Performance Computing


In essence, High Performance Computing (HPC) is quite simple. Speed and scale. In practice, the concept is quite complex and hard to achieve. It is not dissimilar to what happens when you go from a regular car to a supercar or a hypercar – the challenges and problems you encounter at 100 km/h are vastly ...

Anthony Dillon
25 October 2023

Web team – hack week 2023

Design Article

Today, around 96% of software projects utilize open source in some way. The web team here at Canonical is passionate about Open source. We lead with an open-by-default approach and so almost everything we do and work on can be found publicly on the Canonical Github org. It is not enough to simply open our ...