Building a Tagging System and Filter Pattern

2020-2022

Filter and Pool Servers and GPUs by Criteria

INTRO

Built reusable patterns for managing customizable metadata on servers, and filtering hardware devices using customizable criteria. Over a span of two years, I focused on developing and refining the filter and criteria pattern.

CONTRIBUTION
Fully responsible for research and end-to-end design of the tagging and filtering patterns. Worked with engineering to integrate the patterns into multiple features in Fungible data center product.
MY ROLE
UX designer
TEAM
1 content designer, 2 product VPs and 5+ engineers.
THE BACKGROUND

Product Roadmap

Following the launch of FDC 1.0, I engaged in various exploration projects.

During the strategic planning for the product roadmap, a highly sought-after feature emerged: the incorporation of functionality allowing the selection of multiple servers based on similar criteria and subsequently adding them to a Tenant or during environment composition.

Recognizing the significance of this feature, I dedicated efforts to conceptualize and integrate it seamlessly into the evolving roadmap, aligning with the product’s continuous enhancement and user requirements.

THE PROBLEM

How to Manage Thousands of Servers in a Data Center

In the Fungible data center (FDC), a tenant’s internal teams can access servers and deploy workloads of cloud computing by selecting and combining groups of servers.

With an excessive inventory of devices in data centers nowadays, to be competitive in the market cloud service providers (CSP) are geared up to meet the increasing need for an easy and efficient way to manage all kinds of devices (mostly servers in the FDC settings). Flavors come in handy when defining the compute, memory, and storage capacity of fungible computing instances.

With an excessive inventory of devices in data centers nowadays, to be competitive in the market cloud service providers (CSP) are geared up to meet the increasing need for an easy and efficient way to manage all kinds of devices (mostly servers in the FDC settings).

Data center managers need a system to quickly manage and filter a specific type of server. Server flavors come in handy when defining the compute, memory, and storage capacity of fungible computing instances.

THE GOAL

Manage, Compose Servers and GPUs

The goal of the project is to ensure that both cloud service providers and organizations that lease services from them have a seamless experience while using our product. We intend to create a cohesive and consistent experience to make it easy for cloud service providers to manage their leased services and for organizations to access and utilize those services effectively.

STARING FROM CONCEPT

From Metadata to Tagging

What is metadata?

Metadata means “data about data“.

Metadata is defined as the data providing information about one or more aspects of the data; it is used to summarize basic information about data that can make tracking and working with specific data easier.

Metadata is stored as key:value pairs.

What is Tagging?

Tagging is a process of assigning a label or a keyword to a piece of content or data. This label serves as a reference point for organizing and categorizing information, making it easier to locate and retrieve later on.

In essence, tagging is a way of attaching metadata to a piece of content, allowing it to be easily identified and grouped with similar items.Tags can be used for a wide range of purposes, including organizing files, tracking inventory, and managing data in a database.

Tagging can also be used for the exact matching of a condition to a value, which involves associating specific conditions with particular tags. By using tags, users can quickly and easily locate specific pieces of information or data, leading to more efficient workflows and better decision-making.

Some examples of a tag: CPU_core=8 Tier=Gold power_state=On

PROJECT SCOPE

Tagging and Filtering in Composition

In Fungible data center, there are two types of metadata:

  • System-generated metadata are automatically generated from server properties.
  • Custom metadata are managed by users.

I used a concept map as a visual tool to organize and structure the functionality and user flows within the system. This map served as a guide to understanding the interrelationships between different components and features, ensuring a holistic perspective during the design process.

CHALLENGE

Design a Versatile Pattern

Understanding Users

Considering Fungible’s business model, our users will include data center managers and company IT managers, and the pattern will be used across various roles and features.

Here are some assumptions I made to predict user behavior:

  1. Users likely have some familiarity with filters and tags, so we need a flow with common patterns.
  2. Users need a simple filter for quick access to their daily tasks.
  3. Users should have some flexibility to create their filters and even use programmable queries.
  4. Users might want to save searches for regular reuse.

Define User Tasks

I created the product brief based on the user scenarios:

  1. Manage (add, edit, or delete) custom metadata on servers
  2. Filter servers using multiple criteria, such as AND or OR (boolean), multiple values, and different operators.
    1. Data center managers need to filter servers with the same criteria to manage and maintain devices.
    2. Data center managers need to filter and select servers to allocate to logical partition.
    3. Company IT managers need to filter and choose servers to add to an environment with a group of homogeneous instances.

To start, I did a competitive analysis of filter patterns in multiple products.

Inspired by the research, I came up with 3 options, each based on the flexibility and ease of use.

Option 1

Option 2

Option 3

Finalizing Design

After discussing the options with the product and engineering teams, I concluded the design for the initial phase and outlined development plans for the release of Fungible FDC 2.0.

Project Roadmap

After initial dev hand-off, I also worked with product and engineering to figure out a development plan for the tagging and filtering feature.

Phase 1: Implement metadata management and simple filter, build design system pattern.

Phase 2: Implement advanced filter using query.

Phase 3: Apply pattern to GPU.

FDC 3.0 FINAL DESIGN

Tagging and Filtering Flows

Custom Metadata

There are two types of metadata on servers: automatic metadata (system-generated), and custom metadata (user-created).

In phase 1, metadata only exists on servers, we to extended it to GPUs in 3.0 release.

Filter Criteria

When filtering and selecting servers, users can use criteria with the key matching automatic and custom metadata.

Compute Parameters

When creating an environment, users can predefine the server selecting criteria and FDC system will automatically select the servers that match the criteria in the environment creation process.

FLOW 1

Custom Metadata on Servers

When I initially worked on metadata, the system-generated metadata was all hidden but could be used.

Later on, when we were building filters, we realized that the automatic metadata is useful when adding criteria and needs to be shown in the server properties.

Thus, I added the automatic metadata section to the server page.

Add Metadata

Key/Value Maximum Length

A tag consists of a key and one or more values. Like in other systems, you cannot have a key or value that’s too long. To be consistent with naming rules in FDC, I defined the key and value to have a maximum of 63 characters. This rule was validated by the engineering team.

Key/Value Format and Errors

Based on development requirements, I added possible edge cases for key/value.

Edit Metadata

I designed an inline editing pattern to increase efficiency and keep context to avoid duplicate key names.

FLOW 2

Filter Pattern

When I initially worked on metadata, the system-generated metadata were all hidden but can be used. Later on when we were building filters, we realized that the automatic metadata is useful when adding criteria and needs to be shown in the server properties.

Thus, I added the automatic metadata section to the server page.

Add Criteria Flow

FLOW 3

Filter Servers

Add Servers to Tenant

During environment composition, users can add compute parameters to filter servers to add to instances.

Edit Compute Parameters Flow

During environment composition, users can add compute parameters to filter servers to add to instances.

Key Learnings

  • Embrace an iterative design process, recognizing that features will evolve and may shift over time. Plan ahead for potential functionality add-ons to accommodate future needs. Design with scalability and flexibility in mind to ensure adaptability to changing requirements.
  • Consider the impact of design decisions on development timelines and plan accordingly for efficient implementation. Regular communication between product, design, and engineering teams helped a lot to maintain alignment on goals and priorities throughout the project.