{"id":2020,"date":"2020-01-24T20:04:28","date_gmt":"2020-01-24T19:04:28","guid":{"rendered":"https:\/\/www.bussink.ch\/?p=2020"},"modified":"2020-01-24T20:06:25","modified_gmt":"2020-01-24T19:06:25","slug":"nsx-advanced-load-balancer-avi-networks-components","status":"publish","type":"post","link":"https:\/\/www.bussink.ch\/?p=2020","title":{"rendered":"NSX Advanced Load Balancer (Avi Networks) Components"},"content":{"rendered":"\n<p>In this first post, I will attempt to describe the different components of the NSX Advanced Load Balancer (ALB). Following the purchase of Avi Networks by VMware in June 2019, the product <strong>Avi Vantage<\/strong> has been renamed as NSX Advanced Load Balancer. If you attempt to deploy the latest release 18.2.7, you will notice it still has the Avi Network branding. This will change in the near future.<\/p>\n\n\n\n<p>NSX Advanced Load Balancer is aSoftware Defined solution that provides Application Delivery Services in an automated elastic deployment. It has an in-build best of breed operational dashboard for advanced analytics and reporting, it&#8217;s completely API driven, and supports a wide range of infrastructure and cloud providers. In this series of blogs, I will focus on the vSphere integration in my home datacenter.<\/p>\n\n\n\n<p>Version 18.2 of the product works over distributed virtual port groups that belong to both Virtual  Distributed  Switch (regular VLAN networks) and Logical Switches (NSX-V VXLAN based or NSX-T GENEVE networks) as it is agnostic of underlying network infrastructure. Integration in an NSX-T network is possible today, but still requires some manual configuration steps. The automation of this process will come in a future release of NSX ALB.<\/p>\n\n\n\n<p>The management plane is composed of one or three <strong>Controllers<\/strong>, and the data plane is composed of the <strong>Service Engines<\/strong> (SE).<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" src=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2020\/01\/NSX-ALB.png\" alt=\"\" class=\"wp-image-2035\" width=\"313\" height=\"206\"\/><\/figure><\/div>\n\n\n\n<p>The <strong>Controller<\/strong> is the central repository for the configurations and policies, it manages the full lifecycle of the Service Engines (creation, control and deletion). The Controllers run on a dedicated virtual machines. I&#8217;ve used a Controller that is integrated in my vSphere infrastructure to automatically deploy and configure the Service Engines across the selected cluster.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" src=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2020\/01\/NSX-ALB-Design.png\" alt=\"\" class=\"wp-image-2034\" width=\"752\" height=\"490\" srcset=\"https:\/\/www.bussink.ch\/wp-content\/uploads\/2020\/01\/NSX-ALB-Design.png 847w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2020\/01\/NSX-ALB-Design-300x196.png 300w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2020\/01\/NSX-ALB-Design-768x501.png 768w\" sizes=\"(max-width: 752px) 100vw, 752px\" \/><\/figure><\/div>\n\n\n\n<p>The Controllers have the recommended minimum requirements of 24GB RAM, 8 vCPU per node and 128GB disk.  The reason to increase the size of the appliance settings above the previous requirements, depends on the data analytics and the amount of the flows.  <a href=\"https:\/\/avinetworks.com\/docs\/latest\/avi-controller-sizing\/\">https:\/\/avinetworks.com\/docs\/latest\/avi-controller-sizing\/<\/a> <\/p>\n\n\n\n<p>Once the Controllers are deployed, we define a Cloud Infrastructure. Here I have configured my vCenter as the target. With administrator credentials, the Controller will be able to provision the required Service Engines on the cluster.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/www.bussink.ch\/wp-content\/uploads\/\/2020\/01\/Controller-Clouds.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" src=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2020\/01\/Controller-Clouds-1024x313.png\" alt=\"\" class=\"wp-image-2041\" width=\"886\" height=\"271\" srcset=\"https:\/\/www.bussink.ch\/wp-content\/uploads\/2020\/01\/Controller-Clouds-1024x313.png 1024w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2020\/01\/Controller-Clouds-300x92.png 300w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2020\/01\/Controller-Clouds-768x235.png 768w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2020\/01\/Controller-Clouds.png 1326w\" sizes=\"(max-width: 886px) 100vw, 886px\" \/><\/a><\/figure><\/div>\n\n\n\n<p>The <strong>Service Engines<\/strong> are lightweight data plane engines that distribute the connections based on Load-Balancing algorithms or (HTTP\/S) headers. These Service Engines do the <strong>Load-Balancing<\/strong> in front of the back-end servers  and also execute all the data plane Application Delivery Controls operations, such as health <strong>Monitoring<\/strong> and test the performance of the back-end servers, <strong>Persists<\/strong> request to back-end servers, Caches response content for potential re-use, <strong>Protects<\/strong> against security threats (DoS, suspicious client IPs), <strong>Delivers<\/strong> high performance web security with iWAF and <strong>Offloads<\/strong> SSL decryption from back-end servers; re-encrypts if required.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"https:\/\/www.bussink.ch\/wp-content\/uploads\/\/2020\/01\/Controller-Service-Engines.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" src=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2020\/01\/Controller-Service-Engines-1024x227.png\" alt=\"\" class=\"wp-image-2033\" width=\"885\" height=\"196\" srcset=\"https:\/\/www.bussink.ch\/wp-content\/uploads\/2020\/01\/Controller-Service-Engines-1024x227.png 1024w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2020\/01\/Controller-Service-Engines-300x66.png 300w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2020\/01\/Controller-Service-Engines-768x170.png 768w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2020\/01\/Controller-Service-Engines.png 1279w\" sizes=\"(max-width: 885px) 100vw, 885px\" \/><\/a><\/figure>\n\n\n\n<p>Service Engines are then assembled in a <strong>Service Engine Group<\/strong>, just like vSphere hosts are part of a cluster.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"https:\/\/www.bussink.ch\/wp-content\/uploads\/\/2020\/01\/Controller-Service-Engine-Group.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" src=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2020\/01\/Controller-Service-Engine-Group-1024x187.png\" alt=\"\" class=\"wp-image-2039\" width=\"878\" height=\"159\" srcset=\"https:\/\/www.bussink.ch\/wp-content\/uploads\/2020\/01\/Controller-Service-Engine-Group-1024x187.png 1024w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2020\/01\/Controller-Service-Engine-Group-300x55.png 300w\" sizes=\"(max-width: 878px) 100vw, 878px\" \/><\/a><\/figure>\n\n\n\n<p>When you create a <strong>Virtual Service<\/strong> for a Load-Balance, this service is deployed across the Service Engine Group.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"https:\/\/www.bussink.ch\/wp-content\/uploads\/\/2020\/01\/Controller-Virtual-Services.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" src=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2020\/01\/Controller-Virtual-Services-1024x113.png\" alt=\"\" class=\"wp-image-2037\" width=\"882\" height=\"97\" srcset=\"https:\/\/www.bussink.ch\/wp-content\/uploads\/2020\/01\/Controller-Virtual-Services-1024x113.png 1024w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2020\/01\/Controller-Virtual-Services-300x33.png 300w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2020\/01\/Controller-Virtual-Services-768x85.png 768w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2020\/01\/Controller-Virtual-Services-1536x169.png 1536w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2020\/01\/Controller-Virtual-Services.png 1780w\" sizes=\"(max-width: 882px) 100vw, 882px\" \/><\/a><\/figure>\n\n\n\n<p>In the next blog post, I will cover more details of the configuration and the deployment of a simple Load Balanced workload.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this first post, I will attempt to describe the different components of the NSX Advanced Load Balancer (ALB). Following the purchase of Avi Networks by VMware in June 2019, the product Avi Vantage has been renamed as NSX Advanced Load Balancer. If you attempt to deploy the latest release 18.2.7, you will notice it [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1,9],"tags":[264,240,263],"_links":{"self":[{"href":"https:\/\/www.bussink.ch\/index.php?rest_route=\/wp\/v2\/posts\/2020"}],"collection":[{"href":"https:\/\/www.bussink.ch\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bussink.ch\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bussink.ch\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bussink.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2020"}],"version-history":[{"count":15,"href":"https:\/\/www.bussink.ch\/index.php?rest_route=\/wp\/v2\/posts\/2020\/revisions"}],"predecessor-version":[{"id":2045,"href":"https:\/\/www.bussink.ch\/index.php?rest_route=\/wp\/v2\/posts\/2020\/revisions\/2045"}],"wp:attachment":[{"href":"https:\/\/www.bussink.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2020"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bussink.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2020"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bussink.ch\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2020"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}