Introduction:
Ansible is an open source IT Configuration Management, Deployment & Orchestration tool. Ansible aims to provide large productivity gains to a wide variety of automation challenges.
Of late Ansible has become the number one choice of system administrators to automate and orchestrate complex and mundane day to day tasks, as such it does not require any coding knowledge. Ansible uses a simple syntax written in YAML called playbooks. YAML is a human-readable data serialization language. It is incredibly simple.
vNIOS autoscaling on Openstack
DNS acts like a backbone in a Service provider world. Making sure that DNS queries are always answered even during peak hours is extremely important for service providers.
Maintaining a high CHR is also equally important in-Service provider world. With every 1% dip in CHR, DNS QPS gets latent by 9-10%. While a high CHR indicates that queries are answered from cache, low CHR results in latent DNS resolution and high CPU utilization of DNS servers.
One way to make sure that DNS queries are always answered, and existing DNS servers are not overburdened is through DNS server autoscaling, i.e. deploying a new DNS member during high DNS QPS window.
What is vNIOS autoscaling
vNIOS autoscaling on Openstack is a combination of shell script and Ansible-playbook. While the shell script monitors the DNS queries and CHR using SNMP, Ansible-playbook does all the heavy lifting like spawning and initializing vNIOS on openstack, adding member to the grid, starting DNS service and finally adding the newly spawned member to the existing anycast group.
In short, the complete workflow can be divided into 6 major steps:
Whenever there is a surge in DNS QPS and CHR dips below a user specified number, vNIOS autoscaling kicks in and results in a newly deployed DNS server, ready to answer DNS queries.
Ansible-playbooks used in vNIOS autoscaling leverages following openstack modules:
- os_server
- os_port
- os_subnet
for the vNIOS instantiation and initialization. Ansible-playbooks also leverages uri module to execute WAPI operations like provisioning the new member in the grid, adding the member to the grid and starting services etc.
Conclusion:
Using vNIOS for autoscaling, Service Providers can make sure that DNS queries are always answered and a healthy CHR is maintained even during peak usage hours.
Demo Video
You can watch this video for a quick demo of vNIOS autoscaling on Openstack.