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.