Blog Automation

Extreme Goes Serverless

Bettina Baumgart Published 27 Jul 2018

There is a new trend in the cloud space called Serverless computing that grew out of the need to optimize resource usage and costs. Unlike traditional compute, Serverless computing is a cloud-computing execution model in which the cloud provider dynamically manages the allocation of machine resources. The units of code exposed to the outside world are simple functions – cost is based solely upon the time and memory allocated to run your code.

And this is exactly where Extreme’s StackStorm solution comes in. StackStormTM is, a powerful open-source automation platform that wires together all of your apps, services and workflows. It’s extendable, flexible, built with love for DevOps and ChatOps. It is also the foundation for Extreme Workflow Composer, a network automation product for enterprises.

Dmitri Zimine, the co-founder and Chief Engineer of StackStorm, now Extreme Fellow Engineer, recently presented at the San Francisco Serverless Meetup, run by Serverless, the creators of the popular Serverless Framework, an open-source CLI for building serverless architectures.

I recently caught up with Dmitri to better understand how StackStorm and Extreme fit into the serverless ecosystem. Here is a look at our conversation:

Question #1: Hi Dmitri. Let’s chat about what StackStorm has to do with serverless. How it fits together. For those that have not heard about it, can you summarize what StackStorm is?

Sure, real quick: StackStorm is how people did serverless before AWS Lambda was invented. Think of AWS Lambda plus StepFunctions, plus hundreds of integrations, open source, installable on prem or in your cloud. Mature – since 2014, and service-full.

Question #2: How are people using StackStorm?

When DevOps was still new, StackStorm was used by DevOps for event driven automation. 

Let me just give you enough info about StackStorm so you can understand the context. It’s “If this – then that” for your DevOps automation. When something happens – it catches the event. And the individual actions can be wired into workflows.

What is really cool about StackStorm is our library of atomic actions. These are ready to use lego blocks that you can wire together into workflows to build cool automations.That makes for nearly perfect glue for everything infrastructure… well, for everything. These lego blocks, these actions, live in what we call StackStorm Exchange.

Question #3: Ok, give me a bit more info about StackStorm Exchange?

StackStorm Exchange is our library of these reusable actions and has proven very popular with the DevOps community. It allows them to grab open-source reusable actions from typical DevOps tools such as ServiceNow and Remedy to the latest for HUE Lights and Tesla cars. With this you can use StackStorm as a tool for automation and remediation across a wide range of domains.

Question #4: So in the traditional world somebody writes a function and we can reuse them to integrate services, done, move on. Don’t you wish we had something like that for serverless?

Absolutely, that exactly was our thinking. What if I could reuse all thousands of integrations from StackStorm Exchange in my serverless projects? Recycle StackStorm actions into Lambdas? Reduce the effort and reuse with the Serverless Framework.

In the new Serverless world we’ve had a few options, but none of them have entered mainstream popularity. The AWS Serverless Application Repository is new and hasn’t been adopted widespread. Serverless Components, from our friends at Serverless was just recently launched, looks promising, and is beginning to catch on.

However, Serverless Components are designed to capture application patterns. What about the smallest building blocks, individual integrations?

We at StackStorm fill the gap with our library of reusable integrations that is available today. It’s our StackStorm Exchange. It is proven and has been used by DevOps since 2014. It’s comprehensive with about 6500 actions spread across 130 integration packs. Some of them are simple, some took pain to build… and they are all built, maintained, and used pretty heavily!

Question #5: Can you tell me a bit more how the Serverless community can take advantage of  StackStorm Exchange? What do they have to do?

You can run StackStorm Exchange actions as AWS Lambda functions. So all you need is an AWS account and a serverless framework. Serverless Framework is a great choice. The framework does all the infrastructure work and offers convenient CLI tools that make serverless development workflow fast. With our serverless-plugin-stackstorm you can just point to an action from any integration pack available on StackStorm Exchange.

Question #6: Ok, so serverless can use all actions stored in StackStorm Exchange. Do I have to learn Stackstorm before I can use it?

No, lets look under the hood. The good news is:

    • You don’t need to have Stackstorm installed.
    • You don’t need to learn it.
    • You don’t need to know about it’s existence.
    • It is #stormless.

The serverless-plugin-stackstorm only uses one component of Stackstorm: The action runner.

The thing that knows how to run the actions from packs on StackStorm Exchange. It handles inputs, outputs, dependencies, runtime. All of this, you don’t need to worry about. It’s also #serverless, based on the Serverless Framework. Thanks to @Serverless for an awesome plugin architecture!

Question #7: What specifically does the serverless-plugin for StackStorm do?

The StackStorm plugin does a few things to make it easy:

    • It explores packs, actions, and action parameters from StackStorm Exchange.
    • It pulls it all together in a deployment package.

    Get the latest stories sent straight to your inbox!

What is in a package? it’s the pack and the pack’s python requirements. Also the StackStorm action runner library that knows how to run the actions from the pack. And the AWS Lambda handler that makes them work together. The plugin can run the function locally – we use the lambci/docker-lambda image to build and test the python code – and then deploy it to AWS.

Best if you check out the serverless-plugin-stackstorm to see for yourself what it does. And get all the glory insides on Github.

Question #8: Thanks, Dmitri, that was a great overview to better understand how DevOps serverless can leverage all the ready-to-go plugins in StackStorm Exchange. Is there a demo that you have available for those that want to see this in action?

Yes, I posted a demo to Github. And if you have any questions, connect with the Community – Serverless or StackStorm. We also now have the video of the talk I gave at @Serverless here, it shows an example on how to go serverless with StackStorm.

Oh, and if you want to learn more, see Dmitri talk at the upcoming ServerlessConf in San Francisco, CA on July 31. He’ll be talking about “Workflows in serverless – today & tomorrow“.

Look out for the next blog where we’ll talk more about how serverless can make your business more agile and support your digital transformation.

Additional Resources:

*This blog was co-authored by Bettina and the StackStorm Team.


Related Enterprise Stories