Flexible Network Load Balancer is an Oracle Cloud service that offers non-proxy Layer 4 load balancing with source and destination IP preservation. It is an addition to the existing Load Balancer service, which on its own uses Layer 7 and does not offer as much guaranteed low-latency, among other differences.
Goal: Provide Oracle Cloud users more load balancing solutions and remain competitive with similar offerings by Azure, Amazon Web Services, and others. This effectively means the project must introduce new Layer-4 functionality into the existing Load Balancer service and revise previous workflows for a streamlined experience.
Challenges: This project introduced a lot of complexity into an already convoluted service, but a complete overhaul was not feasible due to tight launch dates. The main challenge was guiding the user through creation of a new load balancer and working with pre-established patterns to make improvements where possible.
Deliverables: stakeholder interviews, user journeys, visual design, prototyping, and testing
Designs started after the product model and API workflows had been approved. To kick off this project I met with the team and started the knowledge handoff and requirements briefings. Requirements included:
To make sure the product would be in line with what the market expected, I explored how competitors handled the problem. Azure, Amazon Web Services, and Google Cloud's Computing Services offered a similar service. However no feature set, including Oracle's, was entirely alike. The competitor analysis also helped identify consistent terminology and option grouping.
The Load Balancer service is a very complex and multi-layered offering, consisting of the creation of separate resources that act as a whole. To drive the user journey, I collaborated with network architects and engineers to create a condition flow chart of what resources exist in what conditions. This helped identify the sequence of steps in the creation wizard.
The creation "wizard" is a guided setup where all necessary resources are created at once, separated by steps within a panel. After creation, the resources may be updated and manipulated separately and out of order. This posed a challenge when it came to making assumptions about resource states in the workflow. The user journey and final prototype needed to capture every configuration of the creation wizard, but also how to create the individual resources separately.
With the user journey backbone complete and approved, I used Figma to create the designs. This step happened over the course of several months as each workflow (list, update, delete) was designed one at a time once the decisive workflow, creation, was approved. Each revision cycle consists of designs, presentation, feedback, revisions, and presentation until satisfactory, then work on the next workflow could commence. I also created diagrams and implemented tooltips to coach a user on options and expectations.
It was extremely important to highlight error paths in the designs, as a load balancer could be set up to fail. This is allowed in order to be fully flexible; guidance via tooltips and information blocks and at times, disabled states, was necessary to explain why actions were not recommended unless intentional.
To make sure the product would be in line with what the market expected, I explored how competitors handled the problem. Azure, Amazon Web Services, and Google Cloud's Computing Services offered a similar service. However no feature set, including Oracle's, was entirely alike. The competitor analysis also helped identify consistent terminology and option grouping.
Prototypes were created in Figma's prototyping mode, and fully linked up to simulate a working service. This included fully interactive sub menus, notifications, and even provisioning downtime. Interactions are also built in, such as the intended behavior for a panel to slide in from the right.
The review and revision process happened iteratively over the course of the entire project, as review meetings were held at least once a week. Once the mockups were finalized and approved by the project team, they had to be presented to the review board to pass into development. This is when the workflow and patterns are compared to the design guidelines for consistency across the console.
Once the design was approved, I shifted to a support role as the bulk of the work was passed to the developers. At this step I collaborated with the technical content writer to cement the final copy and provide any help the developers might need. In tandem, I analysed success by creating a report in Adobe Analytics that uses tracking pixels to gauge visits and hits across different buttons and pages.
This project was immense and a lesson in perseverance, shortened here for the sake of both our attention spans. Though I sometimes felt forced into less than ideal design decisions due to time crunch and consistency with the existing service, I think the enhancements - even without the additional functionality - are a drastic improvement for the load balancer service. On top of introducing new functionality and staying competitive in the cloud infrastructure market, this project was personally worthwhile for the lesson in network architecture and the insight into improvements Load Balancer could use in the future. To make sure the product would be in line with what the market expected, I explored how competitors handled the problem. Azure, Amazon Web Services, and Google Cloud's Computing Services offered a similar service. However no feature set, including Oracle's, was entirely alike. The competitor analysis also helped identify consistent terminology and option grouping.