Config Staging & Rules Engine

Configuration Staging

An enhancement to the rules engine that allows customers to test configuration changes in a staging environment before using the configurations in production.

Rules Engine

An overhaul of existing rules engine to make it more intuitive for customers, enabling them to create custom rules to fit their traffic needs.

 

Overview

The "Configuration" is the heart of a customer's interaction and usage of a CDN. Any settings, preferences, parameters and optimizations are written into the configuration files for an account. Placing updated configurations in a staging environment will enable a customer to change the configuration for their account in some way or another and then determine the impact that these changes will have without actually modifying the configuration that is in the production environments.

A CDN takes advantage of "Rules" to analyze and modify the traffic that is traveling to and through the Customer's or CDN's servers. Creating a policy of customized rules allows a customer to analyze broadly or very specifically for particular scenarios and perform complex actions on the traffic that interacts with the content on their websites or services they provide.

Objectives

  • Design a visual treatment that is clear and simple for the configuration policies with complex nested expressions.
  • Specify phases for enhancements that will deliver value to the users, based on available engineering resources
  • Design a multi-step configuration process for inexperienced, less technical users. This way the user's can just answer some questions regarding their companies traffic and audience and recommendations will be presented for the user to pick and/or customize
  • Design policy templates that will provide the best configurations for particular types of traffic or customers in particular industries.
  • Establish patterns that can be reused elsewhere when their are CRUD operations on records

Use Cases

  • A junior engineer with a quickly growing and successful mid-sized startup decides to try the CDN services with a small portion of their companies traffic and if the service provided is acceptable, upon approval from senior level engineers a much greater portion of their traffic will use transitioned over to this same account. This junior engineer knows a little about CDNs but not very much.
  • An ambitious entrepreneur with very little technical experience launches a startup that needs to some CDN services for their product. They need to create an account with CDN, but they have know idea what they should be doing or where to start
  • A senior level engineer responsible for content delivery with a major social network has heard good things about the service and would like to stress test a significant portion of their traffic on the CDN. This engineer doesn't need much assistance at all in the proper method to setup and optimize a CDN for their particular needs.
  • An engineer from an e-commerce company would like to publish a previously used policy from last year to the production environment, specifically for the holiday shopping season and then switch the policy back to their default configuration after the first of the year.

Features & Functionality

  • This builder should have policies. These policies are a group of individual rules. A rule is a set of one or more expressions. An expression is made up of condition and action statements.
  • To make these rules "smarter" and more efficient, the user should have the ability to nest expressions inside expressions. (see below)
  • First Rule
    • If the following condition is met
      • Condition A
      • Condition B
        • If the following condition is met
          • Condition C
        • Then perform the following actions
          • Action A
    • Then perform the following actions
      • Action B
      • Action C
      • Action D
  • Allow users to duplicate policies so they can make minor modifications to a policy without having to recreate an entire configuration policy from scratch
  • Allow users to enable or disable rules they have created in a policy

Business Value

"Placing updated configurations in a staging environment will enable a customer to change the configuration for their account in some way or another and then determine the impact that these changes will have without actually modifying the configuration that is in the production environments"

This is a marketable advantage of one CDN over another. In today's economy, a company that gets all of it's revenue through services or products that are delivered on the internet, cannot afford to have configurations negatively impact or compromise their business. Being able to test the effects of a new configuration in a staging environment is essential.

Enabling a customer to modify the behavior of their traffic is incredibly valuable to the company and will give them an advantage over one of their competitors.


Process

This is an active project. Beyond wireframe concepts, much of the content is not available to post. I will share more process when a greater majority of the project is finalized and determined suitable to present.

The legacy UI

Very confusing. Not intuitive.

Inspiration & Source Materials

An expression builder is an extremely complex thing to design. I am always on the lookout for examples of visual expression builders, condition builders, filters and "If This, Than That" User Interfaces.

Miscellaneous


Ideation

This was a complex problem to solve, both in regards to UX functionality and the visual design of the UI. Sketching was used throughout the process to solve one particular aspect of the design or another.

 

Wireframes

Staging & Rules Engine, Wireframes-v1

Initially a setup wizard was incorporated in the design.

 
 
 

Staging & Rules Engine, Wireframes-v6

Exploring another direction that brings some navigation in on the left hand side, giving access to configuration rules in the other environments.

 

Staging & Rules Engine, Wireframes-v7

 

Staging & Rules Engine, Wireframes-v8

 

Staging & Rules Engine, Wireframes-v10