Protect & Share Integra Workflows On GitHub

  • Posted on: 26 May 2015
  • By: David La Motta

In this blog post I want to share with you something that I like to think of as one of Integra's best features: the ability to export / import your workflows to / from GitHub.  Lets shake away the "Lost Cat" feeling and lets start having a "Sharing Is Caring" mentality.  But first, for those of you new to Integra, lets sum it up in one sentence: 

Integra is an automation platform that allows you to consume provider actions and build elaborate workflows without creating any technical debt.

If you have been following this blog series, you will know that we have been working with several vendors on integrating their platforms into Integra.  In today's fast paced IT world, time to market is critical; suffice it to say that with Integra's PowerShell provider you can have support for new platforms in the time it takes to install its PowerShell module.  If a vendor doesn't have PowerShell support, we can spin up a provider for your new platform in a very short amount of time and have you up and running in less than you expect it.

Once you have added Integra providers and configured actions particular to your use cases, you will more than likely create workflows that satisfy your IT requirements and create schedules so said workflows run on a reoccurring basis.  This is all great, except there are a few questions that are still unanswered:

  • How do you control changes made to your workflows?
  • How can you consume workflows created by a subject matter expert?
  • How do you share your workflows with other sites running Integra?
Those 3 questions are answered with two simple words: source control.  GitHub support in Integra 1.1 gives you the mechanism for answering all of those questions.

Protecting Workflows

Once you have crafted your workflows, you can export them to GitHub.  The format is entirely up to you; Integra supports XML, JSON or YAML.  The interesting part is that not just the workflow steps get saved but all of the previously-configured actions and all of the providers that expose those actions are also included in the export.  Exported workflows + actions + providers in the format of your selection will reside in the GitHub repository you specify.  This means you can export to a public repository such as Emitrom's Integra Workflows repository, or you can do your exports to your own private GitHub repo.

Consuming Workflows from GitHub

Saving your work is the first part of the equation, but what good is all that saved data if you cannot make use of it?  If exporting workflows is the Ying, importing workflows is the Yang.  To import a workflow Integra just needs a URL, that's it.  Enter the URL of a directory containing multiple workflows or provide the URL of a specific workflow; the difference is that if multiple workflows are found, Integra will prompt you to select which workflows you'd like to import.  You will be given the opportunity to overwrite existing workflows, so if somebody on the other side of the planet modified and committed a workflow you were using, you can simply take that workflow and overwrite whatever you have in your environment.

Using the Integra UI is one way to consume previously-exported workflows.  As you know, Integra has many northbound developer-friendly APIs, which you can use to push workflows and configurations to more than one Integra Reactor.  This gives you massive control over your data centers using Integra; with a simple script you can keep all sites in sync, using workflows coming straight from GitHub.

Sharing Is Caring

Exporting and importing workflows is an extremely powerful Integra feature as you may have gathered by now.  However, there is one reason in particular that should make a resounding impact: you can now request Integra workflows from your vendor of choice.  Your storage or hyper-converged infrastructure vendor can build, test and export Integra workflows that satisfy your use cases, and all you have to do is import them in your own environment.  We have always maintained a "no coding necessary" rule with Integra, and now with this new functionality you don't even have to create the workflows yourself.  Just provide details for the actions that make up a workflow (credentials, hostnames, ports, etc) and you are good to go.  Have piece of mind knowing that your favorite vendor just blessed a workflow you are running; your IT life couldn't get any sweeter than that.

In Closing...

We will be slowly porting the workflows that we have created in the blog series over to GitHub so you can try them in a snap.  Once Integra 1.1 is released, we can't wait to see your own creations, and those of the vendors that you are currently working with.