NSX ALB Basics (and why it's better than F5)
When I first heard of VMware's plans to acquire Avi Networks, a small software-defined load balancing company nobody had ever heard of, I was not thrilled. Regardless, I learned about Avi, and very quickly became a convert. I was actually in the middle of completing my F5 certification when I learned about Avi, and it was so impactful that I decided not to finish my F5 exams. Fast forward a couple of years, and I named my German Shepherd puppy "Avi" - if that doesn't show how awesome NSX ALB (Avi) is, I don't know what does!
NSX ALB vs. Avi
You'll often find people calling this product "Avi" and some calling it "NSX Advanced Load Balancer" or ALB for short. In a nutshell, they're the same thing. VMware rebranded Avi to ALB, but there's a lot of people still calling it by the old name, including myself.
What makes ALB so awesome
There's a lot of reasons ALB is awesome - more than a few bullets can do justice, but I'll share some of my personal reasons why ALB is better than F5 (or Citrix NetScaler for that matter).
Software-Defined - no hardware dependencies
Separation of data plane and management/control plane
Simple to deploy and manage
TONS of visibility - it's like a time machine for your load balancer(s)
Easy to automate AND well documented (thanks to a Swagger UI)
NSX ALB Architecture
The ALB architecture is completely different than anything you've ever seen if you're used to traditional load balancers, such as F5/NetScaler/Kemp. It's completely software-defined and with the separation of data/management plane, it looks a lot different too.
One of the first components you see in the above diagram, is the controller cluster. This is deployed in the form of either an OVA on-premises, or can optionally be deployed into native public cloud as well. The controller is where you access the ALB GUI. You make all of your configuration changes here, from setting up initial integration with vCenter or public cloud, to creating VIPs (called Virtual Services in ALB), to setting up pools and advanced features such as Web Application Firewall (WAF). One important thing to understand about the controller(s) is that they are not in the data plane. This means the actual load balancing is not done on the controllers.
The service engines, also known as SEs, are your actual load balancers. These are responsible for handling incoming requests and balancing them to the backend servers according to whatever policy you've configured on the controllers. The SEs can be deployed as either VMs, or bare metal servers. 99% of the time - VMs are just fine in production environments. The cool thing about SEs is that they are stateless, so if you lose one for some reason, the controller will see that, and deploy a new SE to replace the failed/deleted one.
Another important thing to know about the SEs, is that you don't have to log into them at all. The entire lifecycle of the SEs is orchestrated by the controller. In addition to that, they allow for a scale-out architecture. With autoscaling, you can tell ALB to automatically deploy new SEs should demand for your service increase past a specific threshold. Oh, and did I mention, ALB supports Active/Active VIPs?
NSX ALB Analytics
The next thing that's really cool about ALB, is the analytics. First, ALB collects logs for all transactions through the SEs - this allows you to look at actual client requests after the fact. Think about it like a time machine for your load balancer environment. Had an issue last friday at 2am? You can go back and look at individual requests at that time, and figure out why your clients experienced latency. You can then use the analytics to correlate certain things (are they all on the same browser? Coming from the same location? Was it a troublesome backend web server?). Take a look at the screenshot below from the TechBytes Avi/ALB Fundamentals course.
I'm really passionate about sharing anything I know with others, and really passionate about Avi/ALB! If you want to learn more about ALB, I'm confident that my course will get you up and running in the shortest timeframe possible. You can check it out below, and use the coupon code "10OFF" for a 10% discount on the course.