Design and Web team summary – 27th January 2021

Tags: Design

This article is more than 3 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 ubuntu.com, canonical.com and more. 

Refresh of cloud-images.ubuntu.com

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.

Before

After

MAAS

The MAAS squad develops the UI for the MAAS project.

SmartNICs

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.

JAAS

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.

Snapcraft.io

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.

Charmhub.io

Until now, only charms were available on charmhub.io. 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

Get the latest Ubuntu news and updates in your inbox.

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

Related posts

Designing Canonical’s Figma libraries for performance and structure

How Canonical’s Design team rebuilt their Figma libraries, with practical guidelines on structure, performance, and maintenance processes.

Visual Testing: GitHub Actions Migration & Test Optimisation

What is Visual Testing? Visual testing analyses the visual appearance of a user interface. Snapshots of pages are taken to create a “baseline”, or the current...

Let’s talk open design

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