Sept 26, 2023 - Alexander Mattoni, Co-Founder and Head of Engineering

Cycle's New Interface Part III: The Future is LowOps

We recently covered some of the complex decisions and architecture behind Cycle’s brand new interface. In this final installment, we’ll peer into our crystal ball and glimpse into the future of the Cycle portal.

Cycle already is a production-ready DevOps platform capable of running even the most demanding websites and applications. But, that doesn’t mean we can’t make the platform even more functional, and make DevOps even simpler to manage. After all, we call ourselves a “LowOps" platform for a reason.

A lot of the features added into Cycle (and subsequently, the portal) are driven by:

  • Customer Demand: When a large number of customers are requesting a feature, we listen. Our rule of thumb is, in order to be added to our roadmap, a feature must benefit 80% or more of our customers.
  • Cloud Provider Support: We support features that are common to all cloud providers Cycle is integrated with. Our goal is abstraction, so new features must be compatible.
  • Simplicity: Does the feature help make Cycle more elegant? If so, it’s a good candidate.
  • Necessity: In some cases, one feature is a prerequisite for another. Our new load balancer is a great example - it provides a lot of functionality in and of itself, but also opens the doors for many exciting things in the near future.

Our team has many exciting things planned for Cycle in both the near and long term. In following the theme of this series, I’ll be highlighting some new features that have an impact on our UI - so don’t consider this exhaustive. All timelines are estimates, so no promises on the order of release, and the images you see below may not represent what we actually put live.

Near Future

PWA Portal Upgrade

Currently in internal testing, the next major change to the portal will be the ‘progressive web application’ (PWA) of the interface. For those of you not familiar with the term, PWAs are web apps that can be installed on your device and run as if they were native applications. This will bring many benefits, the primary being that the portal resources (html,css,js,images, etc) will be cached locally, vastly improving speed, and resolving a particularly difficult issue - portal updates and changed file names.

Today, when we do a build of the Portal, we do a lot to optimize it. For one, we add a tiny hash string to the end of every js file based on its content, something like `abc-ab812.js`. This is so that your browser will cache it, but update the file when a new version comes out with changes to that file. In addition, we split each ‘page’ into its own .js file to enhance load times and asynchronously fetch what we need, when we need it. Combined, this has introduced a problem where, when we update the portal to a new version, your local copy in the browser will still have links to the old hashed files that no longer exist on our servers, causing an ugly error to appear and only be resolved via reload.

With the PWA, we create a ‘service worker’ which proxies every request, and caches the entire portal (and all the hashed route files) in the background when the app is ‘installed’. This way, even when the portal is updated on our end, your local copy will still use the old version until you either refresh the page, or click the ‘new version available’ pop up. This means a faster, more stable experience for you, and a better developer experience for us.

This will also lay the groundwork for more native-like features, such as push notifications and, once we implement a more mobile-friendly experience, a native Cycle app for your phone/tablet as well. Pretty cool!

New Load Balancer Config

Though our new load balancer (v1) has been out for a few months in beta, we’re days away from launching our configuration wizard in the portal. Previously, configuration could only happen programmatically through the API, so this will bring an additional layer of usability to our users who want to customize the new load balancer through a visual editor.

Below you can see an example of configuring advanced rules for the v1 load balancer using the new form.

v1 load balancer config form

Stay tuned for some additional articles/videos on the new feature when it goes live!

A Bit Further Out…

With the imminent new UI features out of the way, let’s look at what may be coming a bit further down the road.

Better Visualizations

Over the next couple quarters, our team will be focused extensively on monitoring and observability functionality. Of course, that means some heavy UI changes/upgrades to accommodate that work.

Today, Cycle has a lot of useful metrics and data that would be extremely valuable to people using the platform. However, as of yet, a lot of it has not surfaced to the portal. With the release of the new load balancer, we started surfacing more, but in the medium to long term, we will be building an “observability center” in the portal for getting a LOT more data about well…everything. We’re also experimenting with other charting and visualization tools/libraries to further improve the experience.

Nicer Notifications

We’ll be the first to admit, we’re not satisfied with notifications in the portal. Sometimes they get in the way of clicking buttons on forms, sometimes they cover up some information you were reading, and if you have a lot of jobs running in the background, well, let’s just say you may not be able to always see the right side of the screen. We’re looking at a few different options, such as stacked/grouped notifications (like iOS), and moving them to a better spot to vastly improve the experience. In addition, we’ll be adding a lot more control over how and when you receive notifications, and adding more platform functionality to support customization.

More Search Bar Functionality

We’ve been loving the Cmd + K (or Ctrl + K for us windows/linux folks) bar, and have really benefited from the increased utility it provides. There are a lot more ‘shortcuts’ and other cool things we want to add, so keep an eye out for more functionality at your fingertips.

Mobile-Friendly Portal

This is the big one for our long term plans. While you may not be planning to manage your global infrastructure and application deployments from your phone, it may be beneficial to receive updates and have some functionality available to you on the go. Today, the portal is not suited for small screens, but we’re planning (and scheming!) to put it through our shrink ray and make it fit in your pocket. What that will look like is still up for discussion, but the goal is to bring core functionality into a mobile-friendly portal, built on top of our PWA system.

Improved Pipeline UI

While the pipeline UI is functional, it leaves a lot to be desired. We’ve got some plans on how to improve the experience and make pipelines even more user friendly. In combination with some of our improved visualization work, we should be able to do some pretty neat things to make pipelines easier to understand at a glance.

A LOT more

We’ve seen the changes on the horizon for Cycle and the portal. There are many, many more things we’re not quite ready to share yet that are in development, but that’s the advantage of building on Cycle - these upgrades will be made available to you immediately upon release, without impacting your existing deployments.

Over this series, we’ve seen why we’ve built a new interface, how we’ve built it, and now what comes next. As mentioned earlier, a lot of our new feature work is driven by our customers. If there is anything YOU would like to see added to the platform, reach out to us and we may just put it on the roadmap!

We’re also working on a bunch of new content, so if there’s a burning question you’ve had, or always wondered how to do “XYZ” on Cycle, now is the time to let us know! Over the next few months you’ll see more video content and ‘how-tos’ for achieving all your DevOps dreams on Cycle.

💡 Interested in trying the Cycle platform? Create your account today! Want to drop in and have a chat with the Cycle team? We'd love to have you join our public Cycle Slack community!