As modern applications continue to take center stage in today’s world, automation has become the driving force that helps every organization – not just the big players – deliver the rich digital experiences that consumers have come to expect.
Red Hat Ansible is a simple yet powerful IT automation engine, helping companies to speed up application delivery and accelerate their DevOps initiatives. NGINX, F5, and F5’s DevCentral customer community all offer certified Ansible collections and official roles, helping to speed deployment time and reducing the resources needed to manage modern infrastructures. In fact, the official NGINX Ansible role is one of the most popular on Ansible Galaxy, with more than 750,000 downloads since it first launched in 2018.
This year during AnsibleFest 2020, the teams that run open source Ansible development at NGINX and F5 got together to discuss their development approaches and philosophies, as well as the practical application of Ansible roles and collections.
Moderated by NGINX’s Jenn Gile, the panel discussion featured automation experts (and fanatics) Daniel Edgar, Brian Ehlert, and Alessandro Fael Garcia of NGINX, and Forrester Crenshaw and Payal Singh of F5.
In this blog we share three key takeaways from the panel.
Takeaway #1 – How Official Roles and Collections Add Value
Opting for official roles and collections, rather than building your own, can bring more to the table faster.
“One of the most valuable things we put into [our Ansible roles and collections] is error handling…something that when you’re first starting to build a role (maybe for a new product)… you might not necessarily put in because you don’t have enough depth of knowledge about the product. But we actually build [error handling and other product-specific optimizations] right in up front, and it’s really designed to give quick success….You can pull those things and start to put them into your workflows as quickly as possible.”
—Brian Ehlert, Senior Technical Product Manager, NGINX Controller
“The use cases [included as examples in the roles] are what give us value. It’s cool to be able to turn individual knobs, but until you [get actual] value out of that there’s no reason to do it. So, a collection allows us to deliver value to you, packaged together.”
—Forrest Crenshaw, Senior Product Management Engineer, F5 Automation and Orchestration
Takeaway #2 – How to Choose Which Tasks to Automate
When deciding what to automate to save the most time, choose the things that give you zero joy, or that pay back your investment most quickly.
“Don’t forget to automate the things that provide you zero joy. Take the most boring things that really don’t get you out of bed and start with those, automate those things. Get consistent at it, get good at it. Obviously, you don’t want to pick high‑risk things at first, but…bring some joy back to your job.”
—Daniel Edgar, Senior Technical Product Manager, NGINX App Protect
“I looked at the set of tasks my team dealt with day in and day out. I didn’t pick the most complex one [such as a] task that takes me three hours every time. I picked the one that was easiest to automate. I feel like that’s the best answer – if you have a task that only takes 5% of your time, [but] it only takes one day to automate it, you’ve [quickly] gained back 5% of your time. If a task takes 30% of your time but it takes you two years to automate it, it may not be worth the investment…As Brian said earlier, if [the task] is something you do only every two years, you shouldn’t spend your time [automating] it.”
—Forrest Crenshaw
Takeaway #3 – Why Community Input Is So Important
The community makes a valuable contribution by sharing unique use cases and helping us ensure those contributions are solid.
“As a customer or user, if someone has some great use cases that they use in their environment and they want to contribute it back so we can include it in our official release – that’s a great way of contributing.”
—Payal Singh, Solutions Architect, F5
“Testing is the big [way to contribute]….The whole lifecycle of getting functionality into a role, a module, a collection – and then releasing it [is time consuming]. We don’t want to release it to other customers unless there’s solid testing around it. [If you’re] simply updating a parameter or a function within a pull request or requesting that functionality be added, [you’re asking] us to be testing it. Adding the testing [plan to your request or suggestion] according to the guidelines from the GitHub repo adds to the speed in which that feature can be accepted.”
—Forrest Crenshaw
Looking for more insights about Ansible and NGINX? Watch the complete discussion here:
Getting Started with NGINX Roles and Collections
If you’re an Ansible Automation Platform subscriber, you can access certified NGINX collections on Ansible Automation Hub (in the nginxinc namespace). Alternatively, you can find the upstream, community versions of our roles and collections on Ansible Galaxy. For all the details about the collections, see Announcing the NGINX Core Collection for Ansible.
We see our collections as a starting place that will grow over time through efforts from NGINX and the community. Please contribute to the collections and let us know what new functionality is important to you.
With Red Hat and NGINX working together, you get the best from both! Together we: