The steady uptick in serverless adoption brings benefits to developers as well as businesses at-large. With serverless, developers can focus more on delivering value, driving greater innovation, and a faster iteration of services and applications to the larger organization. This is why Red Hat is consistently updating OpenShift Serverless with new features, such as Eventing and Functions.
By leveraging serverless, we lower the barrier of Kubernetes adoption since most of its APIs target IT operations teams, not developers. OpenShift Serverless, based on the upstream Knative project, extends Kubernetes providing developer-friendly constructs, helping to solve application development problems by using modern patterns, like request-driven autoscaling and event-driven computing. The resulting applications will automatically scale up or down based on need and use, saving time and resources.
In today’s workplace, technology is no longer a bespoke novelty. Instead, it is a utility, in much the same way that electricity is for a house. Taking a serverless approach helps companies deliver on the promise of having technology be always accessible. This on-demand access to developer resources is compounded by the additional benefit of dynamic scaling, enabling applications to more rapidly meet growing (or contracting) demand. All of this is made easier with the Eventing updates in the release of OpenShift Serverless 1.11.
What is Red Hat OpenShift Serverless?
OpenShift Serverless is packaged with an Operator and extends Knative by adding Functions capabilities. Developers can create serverless applications, using Red Hat supported runtimes if they choose to do so, and package them as Linux containers, compliant with the Open Container Initiative (OCI) specification. This validates that those containers can be run anywhere on any OCI-conformant platform, anytime, regardless of which programming language those applications are written. OpenShift Serverless applications can also be integrated with other OpenShift services, such as Pipelines, Service Mesh, Monitoring, and Metering, delivering an integrated experience, ready for production.
What is new: Eventing is now GA!
With the release of Red Hat OpenShift 4.6, and OpenShift Serverless 1.11, we are introducing the General Availability of the OpenShift Serverless Eventing component. As you architect new solutions, eventing will provide the capability to build Event-Driven applications that can connect to and from a number of systems running on-premises, on the cloud, and inside or outside of Kubernetes. We recorded a short introduction to Eventing and you can watch it here.
Event-driven applications promote separation of concerns and are generally easier to deploy and scale independently, based on the triggering events. The OpenShift Serverless Eventing component provides a common infrastructure for consuming and producing events that can trigger applications. It enables powerful constructs such as Event Sources, which connect to external systems and convert those from their native formats to Cloud Events, enabling greater portability and consistency across different infrastructure regardless of wherever those events originated from.
Another important Eventing construct is a Broker that can be used to connect multiple event sources and then routes those events based on attributes, such as the event type, with a multi-tenant, more operationally-efficient model. Eventing also provides Channels, which are useful when you have the same event type and want the same exact events to be processed by more than one application, and can help organizations move to event-driven microservices with easier management at scale.
OpenShift Serverless developer experience
With OpenShift Serverless, we put the developer and user experience first with the intent to make it easier to adopt serverless deployments. With OpenShift Serverless, developers are able to take applications that are currently containerized and deploy them as a serverless container.
The integrated Eventing experience in the OpenShift console is very straightforward - developers can select from a list of event sources available in Knative and this list has been extended with Apache Camel-K, for even more event sources, such as AWS SQS, AWS Kinesis, Salesforce, Slack, Telegram and others. This list can be extended with additional services added through Kubernetes Operators installed using the OpenShift OperatorHub.
When developers create a Channel or Broker, an in-memory implementation is used by default and works great for the development environments, but Apache Kafka implementation is also provided and is recommended for production scenarios This can be installed on any OpenShift cluster via Red Hat AMQ Streams or it can be configured to use an existing Apache Kafka installation.
OpenShift Serverless continues to integrate with cloud-native development tools across the Red Hat portfolio and with this release, we are happy to announce support for OpenShift Service Mesh, including Multiple-meshes, JWT Authentication tokens, and Custom Domains for Knative Services. This release also includes access to OpenShift Pipeline Templates and Tasks.
Creating Functions with OpenShift Serverless
We mentioned that OpenShift Serverless extends Knative and with the 1.11 release we are adding the ability to write Functions. These Functions provide an even easier way for developers to get started, creating applications based on pre-defined templates and with opinionated runtimes. The developer experience is also very familiar, provided through the same command-line interface (CLI) available in OpenShift Serverless (kn) and is based on Buildpacks. For this initial release, currently in developer preview, we offer the following function runtimes: Quarkus, NodeJs and Go. These Functions can be triggered by plain HTTP requests or CloudEvents, reusing the same Eventing components as described before. We have also added a local experience for these Functions that helps with the iterative development process and for testing.
With the combination of serverless Functions and Containers, developers can have a choice and build applications using both paradigms while using a consistent developer experience, delivering the best of both worlds to build modern cloud-native applications.
With OpenShift Serverless 1.11 features developers will be able to expand their capabilities with serverless workload and leverage Eventing to build Event-Driven applications ready for real-world challenges.
For more information on OpenShift Serverless 1.11, visit Getting Started with OpenShift Serverless.
About the author
William Markito Oliveira is an energetic and passionate product leader with expertise in software engineering and distributed systems. He leads a group of product managers working on innovative and emerging technologies.