What is our primary use case?
I have been using VMWare Avi Load Balancer as a database engineer for the past three to five years. Most of our dependent databases, virtual IPs, and cluster dependencies have numerous connections and dependencies to VMWare Avi Load Balancer.
Our main use case for VMWare Avi Load Balancer involves numerous clusters for our database environment with many independent computers connecting to each other with Windows failover clustering. Primarily for databases, we use it for high availability and failover handling, replication awareness, and resiliency to avoid having one point of failure. A major use case is for database proxies, often using ProxySQL and PgBouncer. Instead of exposing our connection pooler directly, we place an Avi VIP in the middle, followed by PgBouncer nodes as our connection pooler, and then the database. This approach provides high availability at the connection endpoint and allows us to scale PgBouncer horizontally.
A specific example of when VMWare Avi Load Balancer made a difference for my team involves our read-write splitting for MySQL and PostgreSQL. We have read-write traffic to the primary and read traffic to replicas. We use Avi for L4 load balancing for database pods on port 5432 for MySQL and port 3306 for PostgreSQL, using TCP health checks and routing based on service pools.
Another scenario involves PostgreSQL high availability with Patroni on VMware VMs. We have three PostgreSQL VMs managed by Patroni running on VMware vSphere, with the VIP managed by VMWare Avi Load Balancer. The architecture flows from the application to the Avi virtual IP to the PostgreSQL clusters. Without Avi, the problem would be that the application would connect directly to PostgreSQL, and if PostgreSQL crashes, Patroni promotes the second PostgreSQL instance, but the application still points to the old IP, which causes connections to fail. With Avi, this is managed through a pool of nodes that are managed and provide interchange high availability.
Apart from use cases for primary replica routing, read-write splitting, high availability for database proxies, and Kubernetes with databases, VMWare Avi Load Balancer integrates with Kubernetes, allowing auto-discovery of services and dynamic scaling. VMWare Avi Load Balancer also provides cloud-native database as a service platform for internet database platforms, which enables integration of database as a service that requires numerous connections.
What is most valuable?
Beyond helping with load balancing, VMWare Avi Load Balancer offers features that extend beyond traditional load balancers. VMWare Avi Load Balancer is a software-defined solution with the capability of cloud-native delivery controller, unlike legacy hardware load balancers such as F5 or Citrix. Avi is API-driven, allowing enhanced capabilities and easy integration with existing tools in our environment. I am able to manage PostgreSQL and MySQL in distributed systems, which is significant. It uses a controller and service engine model, providing the capability of creating policies, analyzing data, performing advanced configurations, and managing service engines.
Regarding how the controller and service engine model has helped my team, I compare Avi architecture with Patroni and PostgreSQL. For VMWare Avi Load Balancer, the controller acts as the brain by storing configuration and policies, monitoring health, and handling automation via API without directly managing traffic. In contrast, Patroni in a cluster communicates with etcd to monitor node health and elect the primary. In Avi, traffic is handled by service engines, which are lightweight VMs or containers that accept client traffic, perform load balancing, and apply SSL termination when necessary. This clean separation of control makes things easier when compared to native clustering.
Policy creation is where VMWare Avi Load Balancer truly differentiates itself from traditional load balancers. When people hear "load balancer," they typically think of round-robin traffic distribution, but Avi is policy-driven. Traffic behavior is managed using different policy layers, meaning traffic is not just distributed but rules are defined determining how traffic should behave. For example, if health checks fail, the node is removed immediately from traffic routing.
VMWare Avi Load Balancer has positively impacted my organization by changing how we manage databases, mainly for load balancing and creating VIPs that prevent a single point of failure. When a node goes down, we can quickly redirect to another node using failover and priority policies, which Avi helps define, such as active-passive pool or priority-based routing. This is especially effective for disaster recovery, allowing us to weigh primary and disaster recovery sites. Since implementing VMWare Avi Load Balancer, we no longer need to manually change IP addresses in our configuration, as Avi automates this process, which controls traffic and network appropriately, adding a layer of security and assurance. Additionally, monitoring dashboards are easier to view, as we have access to extensive logs and data.
What needs improvement?
In my opinion, VMWare Avi Load Balancer is a complicated tool with many advanced features that can be beneficial, but policies are powerful yet difficult to debug when traffic behaves unexpectedly or becomes heavy. This complexity can make it challenging to pinpoint where a request goes. The need for policy execution tracing to simplify debugging is evident because if connections are routed incorrectly, for example, directly to a replica, debugging can become painful in production.
There are still improvements to be made, particularly in simpler policy debugging. A clearer view of traffic routing for each database would greatly enhance the experience.
What do I think about the stability of the solution?
VMWare Avi Load Balancer is stable in my experience so far.
What do I think about the scalability of the solution?
The scalability of VMWare Avi Load Balancer is beneficial. In my role as a database engineer, scalability works in two layers and rarely becomes a bottleneck.
How are customer service and support?
The support for VMWare Avi Load Balancer is really good, and the integration with other tools is really effective, which makes the overall experience smoother.
The customer support for VMWare Avi Load Balancer is quite good, especially because we already have VMware tools and products in our environment, making the support experience as expected and very satisfactory.
Which solution did I use previously and why did I switch?
Before VMWare Avi Load Balancer, we used F5, but it did not provide the custom policies and advanced features we needed for our database management.
How was the initial setup?
VMWare Avi Load Balancer is deployed in our organization in a common architecture where we operate both on-premises and in the cloud due to our vSphere and data center infrastructure setup. We have the cluster usually deployed in three VMs with high availability setups and service engines deployed as VMs automatically. While I am not directly involved in configurations, I know that creating a virtual service, such as a database endpoint, is straightforward as the controller pushes configuration, service engines spawn on the ESXi host, and traffic flows through to backend servers such as our PostgreSQL or MySQL nodes.
What was our ROI?
A clear return on investment has been reported from the deployment completed about two years ago. VMWare Avi Load Balancer has created a smoother failover process without issues, keeping the state normal, where typically there would be manual intervention. Time lost went from potentially five minutes down to under thirty seconds with Avi, resulting in no recorded incidents.
What's my experience with pricing, setup cost, and licensing?
I did not participate directly in pricing, setup cost, and licensing for VMWare Avi Load Balancer, as that responsibility falls to another functional team. However, I know that it was an internal decision and that it operates on a capacity and consumption model, unlike traditional appliances that charge based on hardware.
Which other solutions did I evaluate?
Before choosing VMWare Avi Load Balancer, we evaluated other options, with F5 BIG-IP being the main contender in our environment. Its weaknesses included being hardware-heavy, legacy, having slow automation, and limited options for policy settings. We also considered HAProxy as one of the alternatives.
What other advice do I have?
My advice for others looking into using VMWare Avi Load Balancer is to assess the environment and what you aim to achieve. VMWare Avi Load Balancer is powerful and delivers great value when designed appropriately from your specific use case. Keeping initial policies simple is crucial to avoid complications once in production.
My key advice for teams adopting VMWare Avi Load Balancer is to first design the architecture, review use cases, keep initial policy simple, and treat health checks and failover behavior as production-critical logic, especially for databases. I choose a rating of nine because while VMWare Avi Load Balancer has many strong points, there are still improvements to be made, particularly in simpler policy debugging.
Which deployment model are you using for this solution?
Hybrid Cloud
If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?
Google