logo

Declarative and Imperative Kubernetes Operations with Temporal and M3

2021-10-15

Authors:   Matt Schallert, Dominik Tornow


Summary

The presentation discusses how declarative solutions, such as Operators, along with imperative solutions, such as Temporal, can be used to automate the operations of complex software systems on Kubernetes.
  • Kubernetes can be characterized as an operation automation platform that implements operation automation with the help of Kubernetes controller and Kubernetes resources
  • Controllers perform reconciliation, which is the transition of a system from its current state to its desired state
  • Temporal is an OSS Workflow Orchestration Platform that guarantees that workflow execution cannot fail
  • Temporal and Operators work in tandem and mitigate each other's limitations
  • The M3DB Operator is an example of how Temporal and Operators can be combined to make managing M3DB easier
The M3DB Operator is an open source Kubernetes operator that manages the lifecycle of M3DB. Upgrading clusters tends to be one of the trickier operations, and this is where Temporal is introduced to make it easier. When rolling out a new version of M3DB, it's important to prevent against a case where it's passing health checks but misbehaving in some other way. Temporal drives Chronosphere's internal deployment platform, end-to-end tests, and a variety of Kubernetes cluster-level tooling. The presentation demonstrates how Temporal and Operators work together to automate the operations of complex software systems on Kubernetes.

Abstract

Operators allow users to orchestrate complex software, such as databases, running on Kubernetes. However, due to their declarative nature, expressing and coordinating imperative actions (such as “create a backup”) is awkward and cumbersome. In this talk, Matt and Dominik will explore how declarative solutions, such as Operators, along with imperative solutions, such as Temporal, an OSS Workflow Orchestration Platform, can be used to automate the operations of complex software systems on Kubernetes. They will demonstrate how Temporal workflows can leverage the same Go libraries users are familiar with. Finally, using the OSS M3DB Operator as an example, they will demonstrate how Operators and Workflows work in tandem and mitigate each others' limitations. You will walk away with an accurate, actionable, and dependable understanding of Kubernetes Operators and Temporal Workflows and how to craft scalable and reliable operation automation for your Kubernetes applications and clusters.

Materials: