Build your own serverless platform in Kubernetes with Brigade

Microsoft’s big bet on Azure, Kubernetes, and containers is for more than massive applications

Microsoft is doing a lot of work to ensure that containers are a first-class citizen, not only on Azure but on any cloud. Part of that work is its growing family of tools to help manage workloads running on the open source Kubernetes container orchestration platform, work accelerated by its acquisition of Deis and its Helm and Draft tools. They’ve recently been joined by Brigade, a JavaScript-based tool for building and managing workflows running on Kubernetes.

Kubernetes via code: a distributed pipeline

People often think of Kubernetes as a tool for hosting and managing large-scale distributed applications, marshalling container-hosted microservices, handling resources, and managing scaling. But it’s more flexible than that; Kubernetes is also ideal for instantiating and running small applications or one-time functions. Perhaps you want to use it to host test scaffolding for a continuous integration/continuous delivery (CI/CD) pipeline, or to respond to a specific message from a line-of-business application or from a machine learning system.

Putting together a small application on Kubernetes isn’t particularly easy. It requires the same amount of work as building the framework for running a much larger application, including writing the YAML needed to manage your code and containers. But not all code needs that work, some because it’s a quick hack designed to try out a new idea, some because it’s intended to run only rarely, or some because it’s to host a set of tests that are needed only when you’re running a build.

Most of us prefer to write code than configuration files. There’s something about imperative programming that makes it easier to understand and to debug than using declarative statements. Brigade is designed to bring that imperative approach to building Kubernetes applications, pulling together containers and passing data between them.

Brigade applications are pipelines, a common distributed computing pattern that treats containers as separate jobs that can run in serial or in parallel. The Brigade JavaScript handles how the pipeline operates, passing data between jobs and marshalling both parallel and pipelined tasks. At heart it’s a workflow engine, with a basic grammar that uses Docker containers as actions, all scripted using familiar JavaScript.

To continue reading this article register now