Zero Touch App Delivery with F5 BIG-IP, Terraform and Consul - Webinar Q&A

The following post contains answers to questions asked during our webinar about Zero Touch Application Delivery with F5 BIG-IP, Terraform and Consul

 

Q: What version of BIG-IP does the terraform provider work with?

 

The version requirements can be found here: https://github.com/F5Networks/terraform-provider-bigip#requirements 

 

Q: Is there a plan for bootstrap and on-board F5 instances on Azure (and other cloud platforms) by using Terraform only i.e. without using Arm templates or any other toll in between? Similar to deploying and further managing Azure resources fully automated in Terraform.

 

The provisioning in Azure can be done using the Azure resources also. The F5 BIG-IP provider can be used to manage configure and manage BIG-IP in all private and public clouds once it is provisioned. Here is an example: https://github.com/garyluf5/f5_terraform/blob/master/HA_via_lb_DO_AS3/main.tf

 

Q: Were the pool members added dynamically by querying consul? But who made the change on the f5 device?

 

Consul expose service catalog API for AS3. With this integration, changes are made on the F5 device automatically, as we have service discovery for consul feature configured on BIG-IP, this will poll the consul server for regular intervals, once the changes are noticed on consul server, the node worker on BIG-IP will pull the node information from the Consul server.

 

Q: Are you saying that only BIG-IP 14.1 is supported with the Terraform AS3 provider? Isn't 12.1 supported in newer versions of AS3?

 

TMOSv12.1 and above are supported on BIG-IP. 

 

Q: Does the repo mentioned in the webinar contain all the steps to build out the same demo?

 

Yes - https://github.com/hashicorp/f5-terraform-consul-sd-webinar contains all the steps to build out the same demo

 

Q: How does Consul support high availability?  

 

Consul is a highly available system. We use some gossip and consensus protocols under the hood to communicate with groups of massive number of nodes. It's not uncommon to see Consul data centers powering application servers in the thousands or more. Read the Consul architecture design document for more details. https://www.consul.io/docs/internals/architecture.html. Customers are recommended to deploy a three to five nodes which is a good balance balance of availability and performance. And if you have very large clusters pushing a lot of volume, you can add enterprise Consul feature,to enable non-voting members to horizontally scale out that Consul cluster for better performance. Read the deployment guide for more information. https://learn.hashicorp.com/consul/datacenter-deploy/deployment-guide

 

Q: Does AS3 actually automatically added the nodes based on the response from consul? can we use the same worker but with a different discovery mechanism?

 

At this point, only AS3 based JSON polling mechanism is supported as discovery mechanism. For other features or ideas, open an issue at https://github.com/F5Networks/f5-appsvcs-extension/issues 

 

Q: Does this solution support for other F5 modules like ASM, AFM etc.?

 

Service discovery applies to the context of LTM. Through this service discovery solution, pool-members (nodes) are being changed on the BIG-IP. If the node uses a certain app-service configuration with ASM and AFM configured, the same will still apply to the newly nodes discovered. 

 

Q: Does Consul work on other cloud providers?

 

Yes. Consul is a single binary that's compiled and go for multiple platforms, and can run in your own data centers, bare metal or VMs. They can run in container schedulers such as Kubernetes with a helm chart that help you automatically deploy it into that environment. And it's cloud-agnostic as well. It provide cloud auto-joining capabilities for nodes on AWS, Azure and GCP.

 

Q: Are we able to tear down the resources that are built using AS3?

 

Yes - Since AS3 uses declarative api, clean up can be done by just removing the stuff that is not needed and re-send declaration. E.g. Tenant1: {} - would delete the whole tenant 1. 

 

Q: How does Consul health check work? How fast the resource status gets updated if it is down 

 

Consul provides many types of health checks, including TCP, HTTP, L7, or custom scripts. The one that we showed in the demo was a simple TCP check, just for localhost 80 for NGINX server with an interval of 10 seconds. But these are configurable at the agent level and can be optimized for your workloads. Consul’s health check is very good at converging in the way that all the nodes can figure out that there's failures and communicate that. And generally even in a 10,000-node cluster, you're looking at convergence of under a second, and in general converge much faster. Read the guide for more information https://learn.hashicorp.com/consul/getting-started/services

 

Q: Is the data synchronized automatically after pushing the script or we have to manually do it at the device level?

 

Once we have the Service discovery configured on BIG-IP through the terraform provider as3 resource the data is synchronized automatically.

 

Q: Can you show what the monitor configuration looks like on BIG-IP?

 

Yes. (see video ). It is a simple out of the box HTTP monitor

 

Q: F5 - Will the same solution also scale down in F5? I mean if we reduce the nginx instance, with AS3 reduce the nodes back to the reduced number?

 

Yes that is correct it will scale down automatically once the node registered to the consul server also is scaled down.

Published Oct 18, 2019
Version 1.0

Was this article helpful?

No CommentsBe the first to comment