Chances are you’ve seen the phrase “intent-based application services” or “intent-based load balancer” (hint: that language is used all over Avi Networks' website). Application services refer to load balancing, WAF, and service mesh. But what about “intent-based”? Is “intent-based” just a bunch of marketing fluff? Actually, no. I’m well-versed in the fluff of industry peers. The story behind intent-based is straight forward.
Imperative (Input-Based) Load Balancing
In the beginning, there was imperative load balancing. And it was meh. To be fair, it was the late 90s and appliance load balancers were pretty cool at the time. So were frosted tips. These hardware appliances helped with traffic management and made sure applications had high availability and some basic security. They functioned, but required a lot of work. You had to manually configure and deploy pairs of load balancers for your applications. Need to update the application? More work. Want to deploy in another data center? More work. Need to scale up or down? More work.
The initial appliance load balancers are very similar to switchboards for early telephones. Every function required human interaction. Fast forward 20 years and not a lot has changed. Many of the hardware load balancer appliances now function as virtual appliances so they can be deployed in cloud environments. But they still require manual and error-prone input when infrastructure, applications, or traffic change. That’s not cool anymore. Neither are frosted tips (they never were, but nobody bothered to tell me).
Declarative (Intent-Based) Load Balancing
The opposite of imperative is declarative. Declarative, or intent-based, systems focus on outcomes instead of inputs. If your goal is to provide elastic load balancing in any environment, then your load balancer should provide that automatically. Changes to the application, infrastructure, or traffic won’t impact the availability of the load balancer. Your intent is to provide load balancing—the load balancer should adapt to changes without manual intervention.
In the same way that switchboards are no longer necessary to make a phone call, appliance-centric load balancers are no longer necessary and are being replaced by intent-based load balancers. For a load balancer to be intent-based, it requires 3 core areas of functionality:
- Multi-Cloud. Whether it be cost, performance, geo-location, data services, or usability, you need to be able to deploy your application in the environment that is best suited for your business. The average enterprise uses several different cloud infrastructure-as-a-service providers, so it is important that your load balancer doesn’t slow you down. If you require a different load balancer or a different version of a load balancer due to your choice of cloud, then your load balancer isn’t intent-based. Whether your applications are running on bare metal in the data center, on VMs in AWS, or in containers on Azure, your load balancer should be able to provide services across all these environments based on nothing more than your intent.
- Automation. Automation needs to be at the core of your load balancer. Automation requires that the load balancer must integrate seamlessly with other clouds, platforms, and tools. If you have to write custom automation scripts for each application or for each infrastructure environment, then you do not have an intent-based load balancer. Load balancers with software-defined architecture are designed specifically to take automation further than traditional appliances. And software-defined load balancers are agnostic to underlying infrastructure so they can provide turnkey automation in any environment.
- Intelligence. Visibility and analytics play a critical role at providing trust for IT teams. This data is used to ensure security and compliance, identify anomalies, thwart attacks, reduce time-to-resolution, and drive automation. Without detailed intelligence into your applications, infrastructure, and traffic, how do you know if your load balancer is working the way you intend? If your load balancer doesn’t provide details analytics, it is not an intent-based load balancer.
All three of these elements are required for a load balancer to be considered “intent-based”. Without any one of these components, the load balancer will only be as effective as the inputs that define them.
When comparing load balancers, consider how they operate and the outcome they provide. Just because a load balancer is labeled with “virtual edition” or “cloud edition” doesn’t mean it operates any better than its hardware predecessor. Use multi-cloud, automation, and intelligence as a standard. If a load balancer is effective at all three, then it will work as intended.