Enhanced User Experience with OpenShift 3.6

Every release of OpenShift we work to improve the overall experience of the product while focusing on addressing the feedback we’ve received with previous releases as well as on enabling new key features of the platform based on Kubernetes. OpenShift 3.6 provides possibly one of the biggest improvements to the overall experience, even though some of it is currently labeled as technology preview. These changes address every aspect of end-user productivity. From the initial user experience to the experience of working with deployed applications.

Project Overview

Let’s start by digging into the changes with the Project Overview. It is probably easier to talk about the changes by looking at them, take this example:  

There are many cool items to point out here; let’s break them down:  

  • Row per “application” - there is no strict definition of an application in Kubernetes or OpenShift, though a typical pattern is to group objects by label where the key is the “app” and value is the name of your application.
  • Alternate ways to view - you can list by “Application”, “Pipelines” or “Resource Types” to give you the flexibility to view your application differently for different needs.
  • Minimized vs Expanded view - in the image above, you can see many rows that are collapsed (or minimized) but you are still able to see a preview of that application's status. With the expanded view you can see details about the application.  
  • Integrated actions - you no longer need to leave the overview for actions such as “Deploy”, “Start Build” and so on.
  • Build logs snippet - you can see the build logs real time on the overview to spot issues early on.  

New Landing Page

Technology Preview
The most drastic change is the initial page a user will see after login, if this technology preview feature is enabled. This completely rethought experience is focused on meeting a number of key user experience goals such as:

  • Improved initial user experience - simplified interface, search for needed content, guided tour of the interface, references to key resources
  • Easily add services (deployed on or off the platform) - simple way to find needed application services, provision and use with your existing application
  • Understand what is working and if not, why - bubble up information as much as possible and improve notification

  The interface is broken down into key areas to help the user:

  • Search (top) - find technology of choice, quickly, and easily
  • Higher level experiences (2nd from top, not shown) - common flows that address a higher level experience such as mobile app and integration development
  • Catalog of content (bottom left) - this is a categorized set of content that allows the end user to quickly find what they want
  • Projects (top right) - create or work with existing projects
  • References and help (right) - links to key information, including guided tour of the interface
  • Recently accessed services (bottom right)

Service Catalog

Technology Preview
The content provided to the Catalog in the user interface is based on two main sources:

  • Image-streams (labeled as builder)
  • Kubernetes Service Catalog (Technology Preview)

You can learn more about the Service Catalog feature in this blog post. The key thing to understand is that this gives the OpenShift administrators the ability to easily bring new “services” to their end users. The OpenShift 3.6 release allows for using some of the shipped brokers or you can connect your own. A simplified picture of how content makes its way into the user interface through the Service Catalog:  

Provisioning

Technology Preview
Provisioning is the act to deploy an application on the platform based on the service consumer’s request. The user can initiate the request from the initial page or from the context of an application or project. Both flows allow a way to not force the user out of context and back.  

From the Project Overview, to Catalog view, and then back to the Project overview:

Binding

Technology Preview
Binding is the action of requesting from the instance of a service the ability to get connection details. These connection details usually are things like hostname, port, and id/pw needed for your application to consume that service. The user interface streamlines this flow by selecting the applications you want to be connected to the instance of a service and gives you a list of those valid options to select from, such as:

Image Stream Details

Image streams are an OpenShift concept for improving the experience with container images located in registries. An image stream often tracks the tags of multiple versions of images. This update provides additional details for each of those tags.
 

Cascading Deletes

In OpenShift and Kubernetes, the creation of one object can cause the creation of many others. Take for example the creation of an OpenShift DeploymentConfig; by deploying an application a ReplicationController is created and pods that match the state are defined in the ReplicationController. Now when you delete the DeploymentConfig, the ReplicationControllers and pods will be cleaned up (garbage collected).  

And so much more…

It seems unfair not to give some of these improvements a shout-out (although there are still some that are not listed):

  • CLI: Better syntax errors for YAML and JSON for various actions like oc create.
  • WEB: Relationships between bound apps to services
  • WEB: Kubernetes InitContainers details
  • WEB: Add/Edit env vars from secrets
  • WEB: Creation of cluster wide resources from Import YAML/JSON
  • WEB: Alignment of notification designs

Keep the Feedback Coming

Is there a feature you really wish we would add, or some existing behavior that’s been bothering you? Get involved in the feedback loop! Development for the OpenShift management console happens in the openshift/origin-web-console GitHub repository, and we track our user stories in Trello.