Automated configuration and management of A10 Networks software load balancer.

Some of the problems included:

  • Company’s product required automated configuration and management of A10 Networks software load balancer to supplement its software defined infrastructure features
  • Previously integrated software load balancer from F5 Networks did not perform as robustly as expected and there were multiple issues which vendor was not able to resolve on time, therefore different software defined VPN and Firewall solution had to be used
  • There were multiple disk management related issues – i.e. partitions’ configuration could not be saved if not in shared partition, shared partitions could not be deleted, active partitions could not be deleted, available partition ID was not reset, available partition name was not reset
  • There were multiple networking related issues – i.e. VLAN could not be deleted from shared partition, VE Interface could not be deleted from shared partition, Static Route could not be deleted from shared partition
  • When deploying in parallel on same A10 Networks software load balancer it was not possible to obtain a unique ID for new partition due to small delay between retrieving new ID and creating partition with that ID

Some of the solutions applied included:

  • Implementing Java client for A10 Networks AX REST API utilizing Apache HttpComponents 3rd party library
  • Automating authenticating A10 Networks software load balancer session programmatically
  • Querying A10 Networks software load balancer for session timeout configuration on login, storing it internally and ensuring it’s not expired via precondition checks
  • Automating creating, entering, querying, deactivating and deleting Partitions programmatically in A10 Networks software load balancer
  • Automating creating, querying and deleting Access Lists, NAT Pools and NAT Pool Groups programmatically in A10 Networks software load balancer
  • Automating attaching and detaching Access Lists to/from NAT Pools programmatically in A10 Networks software load balancer
  • Automating creating, listing, querying and deleting VLANs, VE Interfaces, Static Routes, Health Monitors, Servers, Service Groups, Virtual Servers and Cookie Templates programmatically in A10 Networks software load balancer
  • Automating adding and removing member Servers to/from Service Groups programmatically in A10 Networks software load balancer
  • Automating creating, querying and deleting SSL SID Templates, TCP Templates, Server SSL Templates and Client SSL Templates programmatically in A10 Networks software load balancer
  • Automating querying A10 Networks software load balancer programmatically for hardware platform, version and up-time information
  • Automating reloading A10 Networks software load balancer configuration programmatically
  • Automating configuring HA pair of A10 Networks software load balancers programmatically
  • Automating synchronizing configuration of HA pair of A10 Networks software load balancers programmatically
  • Automating querying HA pair of A10 Networks software load balancers for status programmatically
  • Automating querying A10 Networks software load balancer HA pair member for availability programmatically
  • Automating importing, generating, loading, querying and deleting SSL certificate and key for a given SLB programmatically
  • Adding new precondition checks to enforce use of shared partition for saving partition configuration, prevent deleting shared partition, ensure use of shared partition when deleting new partition, prevent deleting VLAN from shared partition, prevent deleting VE Interface from shared partition, as well as prevent deleting Static Route from shared partition
  • Completely removing partition by first deactivating then deleting it
  • Making method which creates new partitions retryable with fast fail on duplicate partition ID and retry until unique partition ID is obtained

Technology stack

  • Java
  • OSGi
  • A10 Networks AX REST API
  • Apache HttpComponents

Industry

IT