Kubernetes is now a standard to deploy and manage containerized applications. How do functions fit into the cloud-native space in 2022? What does it take to write a function in Java or any other language and get it up and running in a Kubernetes cluster?
We’ll show with practical examples and a live demo how developers can focus on the business logic while the platform takes care of supporting event-driven and serverless workloads in a polyglot environment.
- CloudEvents provide a language and transport-agnostic way to describe events.
- Knative Eventing routes CloudEvents between producers and consumers so that developers don’t have to worry about which message broker is used under the hood (e.g. RabbitMQ, Kafka, cloud-provider specific).
- Frameworks like Spring Cloud Functions let developers focus on implementing the business logic instead of dealing with infrastructural concerns and integrations with event brokers.
- GraalVM and libraries like Spring Native make it possible to build serverless applications in Java and take advantage of the scale-to-zero feature offered by Knative Serving.
- Cloud Native Buildpacks solve the problem of building production-ready containers end to end, offering support for multiple languages and frameworks, and focusing on performance and security.
To demonstrate how all these tools can work together, we will show how Knative `func` combines them and provide developers with a Dockerfile-free and Kubernetes YAML-free experience.