Should you build or outsource the development of Ansible Collections?

May 5, 2021 - Words by Katja Terglav

May 5, 2021
Words by Katja Terglav

This post was originally published on the XLAB Steampunk blog.

You are ready for an Ansible integration.

Based on your initial research, developing Ansible integration for your product will speed up adoption rate and attract new users. However, there’s one important decision left to make - are you going to develop the integration in-house, or will you outsource it to Ansible experts?

 

Although developing integrations internally gives you immediate insights and greater control, it comes at a cost, especially when you’re lacking the proper resources. Contrary to what some people believe, Ansible Content Collection shouldn’t just be a side project for your developers - not if you really want to reap the benefits for your product. It needs to be well-planned, documented, executed, supported, and maintained to serve its purpose.

So, what are the key factors to consider before committing to outsourcing?

  • Allocation of limited resources
  • Quality of integrations
  • Ongoing costs
  • Certification of Ansible content

Let’s take a closer look at each of them.

 

Allocation of limited resources: keep the focus on your core product

Let’s face it, your product team is limited. Jira tickets are already piling up, and there’s no way that you can hire someone immediately. On top of everything else that’s going on, it’s time to develop Ansible integration and get the initial traction from Ansible users.

You’re faced with two choices:

  • Dedicate a couple of people away from your core product
  • Make Ansible integration an outside-of-work-hours project

Dedicating resources away from your product means that you’ll have to delay the release of some core features and fixes. There’s no way around this when there’s a chunk taken out of your product team. This will negatively impact the release timeline and present a setback. The best-case scenario? A feature gets released a couple of days later. And the worst case? Your existing customers start to get irritated by the time it’s taking you to fix simple bugs. This makes your competitors’ solutions more appealing and increases the risk of churn. Instead of increasing conversions with Ansible integration, you’ll end up with people questioning the quality of your core product.

By outsourcing the work, your team will continue to focus solely on the product. You’ll end up with a high-quality solution AND a high-quality Ansible integration.

What about the option to develop Collection as a part of an outside-of-work-hours project? This leads us onto the next point.

 

High-quality Ansible integration = Happier customers

Creating an Ansible integration is not that challenging. Creating a high-quality collection? That’s a whole different story. But why isn’t any integration good enough? Because low-quality Ansible content won’t provide a good user experience.

You can treat Ansible integration as a side project for your Dev team. However, this means that there won’t be a project manager, the integration won’t be carefully planned and designed, the development will be extended over a significant period of time, there’ll be limited quality assurance, and you’ll end up with exactly what you started with - a side project.

Ansible integration as a side project is often an easy fix rather than an enrichment of your core product. In contrast, outsourcing content creation to Ansible experts will result in a high-quality Ansible Collection.

How does the quality of Ansible Collections impact user experience?

You can identify high-quality Ansible content in the following ways:

  • Check documentation: at the very least, it should contain a quick-start tutorial with installation instructions and reference documentation for Ansible modules and roles.
  • Assess playbook readability: modules should have a consistent user interface and descriptive parameter names.
  • Test basic functionality: check the basic functionality of each Ansible module - enforcing state instead of executing actions and supporting check mode are the bare minimum.
  • Peek at the tests: checking the CI/CD configuration files should give you a general idea about the test suite’s robustness - you are looking for integration and sanity tests.
  • Inspect the issue tracker: a large number of reported defects with no response from maintainers is a bad sign.

How does the user experience tie into this? The user experience defines the criteria for a high-quality Ansible Collection. You need to provide a concise and robust getting-started guide to get your users up and running as effortlessly as possible. You need to make sure your Ansible modules work as promised (by running tests) and address any issues found as soon as possible if you want users to trust your Ansible content. And you need to carefully design module interfaces to keep users’ Ansible playbooks consistent, short, and readable.

Without high-quality content, your users won’t benefit from the integration in a simple and efficient way. With that said, it’s hard to develop a good integration without full-time commitment, user research, and planning.

 

Ongoing costs: maintaining and supporting your Ansible content

Are you reading this because your only concern is ROI?

Here’s the truth: you won’t financially benefit from developing Ansible integrations internally, if you treat it as a side-project. The integration itself might come at a lower cost (and quality), but there’s an ongoing commitment to maintaining and supporting the Collection.

Maintenance

Ansible is continuously improving. If you want your users to reap the benefits of those improvements, as an Ansible Collection maintainer you need to follow Ansible updates and community announcements.

This means dedicating extra hours each month just to make sure that your content is aligned with the general Ansible rules and that it’s adapted to newer versions. When an update is released, you’ll need to adapt your content respectively, thus investing extra resources and (if done improperly) worsening the quality of your integration. With all the changes happening in the Ansible world, it can really be an intensive activity to keep up with the community.

When outsourced, your content will always be up to date without any added hassle on your end. The users will experience the best possible integration and you won’t need to expend your own resources.

Support

Things break, and that’s ok if there’s a dedicated team there to fix them. If not, be prepared for a bad experience. Since the whole point of integrating your product with Ansible is to create a better user experience, it’d be a shame if you dropped the ball on maintenance and support.

When outsourcing Ansible Collection to a team like XLAB Steampunk, maintenance and support are a part of the ongoing process. We’ll make sure that everyone gets the best possible experience of your product via Ansible integration.

 

Certify your Ansible integration for enterprise use

All Ansible content can be published to Ansible Galaxy, as this is the place for all community-generated content. However, there is no guarantee for users that the content will be properly maintained and supported. Enterprise customers require enterprise support and Automation Hub is the place where this kind of Ansible content is available.

In order to publish your content on Automation Hub, you have to certify your Collection with Red Hat. Here’s what it means to have a Certified Collection:

  • Your content needs to pass Red Hat quality requirements.
  • It needs to be compatible with supported versions of Ansible and your product.
  • It needs to be tested and validated.
  • There’s shared support between Red Hat and its partners (vendors or XLAB Steampunk). When a customer opens a support ticket, it’ll be resolved by the appropriate team.

Once certified, the content will signal the market that it’s an enterprise-grade Collection, which is critical for your enterprise customers.

When outsourcing the creation of content, the Ansible experts will make sure that your Collection is ready for enterprise use.

 

Outsourcing will get you a high-quality Ansible Collection

Let’s start by reviewing the advantages of creating content in-house:

  • Total control over dedicated resources,
  • immediate insight into the work,
  • lower initial investment (but not necessarily),
  • … and that’s about it.

On the other hand, outsourcing the development to XLAB Steampunk will land you:

  • A high-quality integration developed by a dedicated team of Ansible experts.
  • An ongoing maintenance and support of the Collection without dedicating any of your internal resources.
  • A time to focus all your resources towards creating and improving your core product.
  • Enterprise-ready Collection that can become part of the Red Hat Ansible Automation Platform, easily available to all Ansible enterprise users.
  • Satisfied customers that appreciate your efforts to deliver high-quality experience!

Sensu decided to outsource their Certified Sensu Go Ansible Collection. By having a high-quality Certified Collection, they’ve managed to increase their number of users and customers. Based on their initial talks with Red Hat, they decided to entrust us (XLAB Steampunk) with the integration. And here’s their experience:

“You are patient and very easy to work with, even if we’ve had difficult requests at times. You understand our no-compromise desire to deliver a high-quality experience for our Ansible users. We can develop our product on our own, but to ensure that our product provides a great experience for Ansible users, we need input and feedback from a trusted partner. And you’ve been that for us.”

Stop wasting internal resources for a subpar Ansible Collection. Leave development, certification, maintenance, and support to the experts. Contact us and let’s discuss your options.


Social media

Keep up with what we do on our social media.