Building an Event-Driven Architecture on Kubernetes

By Mahamed Ali, Customer Reliability Engineer, EMEA, Rackspace Technology

a man with glasses smiling

 

A day in the life of any Racker can vary greatly depending on their role, but one thing that’s universal is our commitment to customer’s Fanatical Experience™.

I joined Rackspace Technology® three years via the graduate program in the United Kingdom. By day, I work with customers to solve highly technical problems to ensure they’re working more efficiently in the cloud and can scale easily.

“Beyond” my role as Racker, I’m a member of the Cloud Native Computing Foundation (CNCF), where I’m a Productivity Working Group Lead with the Knative project.

While working with CNCF and exploring Knative, I produced two non-code contributions around observability and monitoring. I then joined the Productivity Working Group at CNCF to oversee the testing infrastructure for the Knative project, which was featured in CNCF’s Humans of Cloud Native publication.

Earlier this year, I gave a brief update at KnativeCon/Kubecon Europe about my work. Watch:

Lightning Talk: Knative CNCF Incubation: Testing Infrastructure Improvements and Optimizations

 

What is Knative?

Knative is an open-source enterprise solution for building serverless and event-driven applications on Kubernetes. It consists of two parts called Serving and Eventing.

Knative Serving builds on Kubernetes to support deploying and serving of applications and functions as serverless containers. Serving is easy to get started with and scales to support advanced scenarios.

The Knative Serving project provides middleware primitives that enable:

  • Rapid deployment of serverless containers
  • Automatic scaling up and down to zero
  • Routing and network programming
  • Point-in-time snapshots of deployed code and configurations

Knative Eventing is a collection of APIs that enable you to use an event-driven architecture with your applications. For example, you can use these APIs to create components that route events from event producers to event consumers, known as sinks, that receive events. Sinks can also be configured to respond to HTTP requests by sending a response event.

Knative Eventing uses standard HTTP POST requests to send and receive events between event producers and sinks. These events conform to the CloudEvents specifications, which enable creating, parsing, sending, and receiving events in any programming language.

This is a simple serverless function on Knative.

 

Contributing Beyond Code

Last year, I overhauled the monitoring stack for Knative by enabling the following:

  • GitOps friendly configuration
  • Prometheus Operator support. This is the best way to deploy Prometheus on Kubernetes Clusters.
  • Updated Grafana Dashboards

Being able to monitor Knative is very important as it is a core component of the cluster infrastructure. It will allow us to see the performance of the control plane number of requests being processed and identify bottlenecks in the system.

This information was available but not packaged in a format that allows cluster administrators to deploy the monitoring stack and observe their systems easily.

Working on this open-source project has helped me bridge the gap between problem-solving and communication across multiple teams in various regions worldwide. That kind of support enables me better serve our customers, who typically have more complex problems and need robust solutions.

 

Solving Together™

Rackspace Managed Platform for Kubernetes (MPK) provides a single pane of glass for deploying and managing clusters across public and private clouds. It’s also a curated platform experience that provides frequently requested infrastructure services for containerized applications with a high degree of Kubernetes security.

We’ll work hand-in-hand with you, from the design to the deployment of your tailor-made MPK to monitoring, alerting, upgrading, and optimizing. As a result, you’ll also gain a sound security posture.

You’ll also get on-demand access to a Kubernetes Pod, a specialized support team comprised of Certified Kubernetes Administrators versed in Kubernetes, Platform9, and multicloud. Each pod includes a small group of CKA-certified Engineers, a Lead Architect, and an Engagement Manager who work together as a team.

Learn more about our partnership with Platform9 to simplify Kubernetes adoption.

Start solving with Kubernetes-as-a-Service