Bind a cloud event to Knative

Events have become an essential piece of modern reactive systems. Indeed, events can be used to communicate from one service to another, trigger out-of-band processing, or send a payload to a service like Kafka. The problem is that event publishers may express event messages in any number of different ways, regardless of content. For example, some messages are payloads in JSON format to serialize and deserialize messages by application. Other applications use binary formats such as Avro and Protobuf to transport payloads with metadata. This is an issue when building an event-driven architecture that aims to easily integrate external systems and reduce the complexity of message transmission.

CloudEvents is an open specification providing a common format to describe events and increase interoperability. Many cloud providers and middleware stacks, including Knative, Kogito, Debezium, and Quarkus have adopted this format after the release of CloudEvents 1.0. Furthermore, developers need to decouple relationships between event producers and consumers in serverless architectures. Knative Eventing is consistent with the CloudEvents specification, providing common formats for creating, parsing, sending, and receiving events in any programming language. Knative Eventing also enables developers to late-bind event sources and event consumers. For example, a cloud event using JSON might look like this:

Serverless in Financial Services

Introduction

The financial industry is going through a radical change; the new generation of customers expects more precise, immediate, and comprehensive services. The emerging fintech offerings completely reshape the industry. New regulations are constantly emerging and need to be applied timely. In 2020, the unexpected global pandemic is another accelerator for this revolution. Around the world branches and offices are closed, more services and operations have been moving online, on the cloud, and on devices. At the same time, in the world of technology, people are moving toward becoming cloud-native, more precisely Kubernetes- native. Which completely changes the mindset of deployment, packaging, software development, and even the structures of how the IT teams are formed. 

Financial institutions have shifted their focuses, and invest more heavily on the IT infrastructure in order to:

Serverless Eventing Architecture

Event-Driven Architecture (EDA) is a way of designing applications and services to respond to real-time information based on the sending and receiving of information about individual events. Serverless is all about providing service on a provision as-used basis. Combining both you get the best of both worlds. 

  • Loose coupling of services - For better fault tolerance, and can add/remove functionality on the go without affecting others. 

Camel K in a Nutshell

Camel K, a project under the famous Apache Camel project, is a project that totally changes the way developers work with Kubernetes/OpenShift cloud platforms by automating the nasty configuration and loads of prep work from developers. If you are an old-time developer like me, you did your best to slowly try to adapt to the latest and greatest cloud native “ecology.” It’s not difficult, but with small things and traps here and there. I’ll tell you it's not a smooth ride. It’s understandable for emerging technologies. But with the large adoption of cloud, I see it’s reaching a level of maturity, where now we are thinking of how to make things go faster, as well as making it more accessible to the larger audience. 

Check out some reasons why you might love Camel K.

Developing Serverless Applications With Quarkus

Learn more about developing serverless apps with Quarkus.

In the first part of this article, I will explain both Quarkus and Knative. In the second part, I describe how to write simple microservices with Quarkus in Visual Studio Code in just a few minutes. And finally, in the last part of this post, I walk you through how to deploy and run microservices as serverless applications on Kubernetes via Knative.

Let's get started!

Serverless Web Apps With Knative Compared to AWS Lambda

This post originally appeared on LinkedIn and has been updated since.

It’s hard to not be overwhelmed with the hype around serverless; the term seems to be constantly redefined to mean almost anything. I wanted to look at how easy it would be to do a serverless web app (which is to say: an app that responds to HTTP requests and does some work, and when there isn’t work to be done, scales down to zero cost).

This Week in Spring: Kubernetes, Kotlin, KNative, and More

Hi, Spring fans! Welcome to another installment of This Week in Spring! I flew 14 hours to Tel Aviv, Israel. I then spent 28 hours on the ground visiting customers, visiting my friends at Codota, and then presenting to a packed house at the Israel Java User Group. Then, I flew another 14 hours back to San Francisco, CA, where I presented for a four-hour online course on using Kotlin with Spring Boot. Tonight, I’ll fly to Atlanta, GA, for the incredible DevNexus conference where I’ll be presenting (twice) with the good Dr. Venkat Subramaniam on Kotlin (and Spring) and more. And then, I’m doing a four-hour course on testing. Join me!

And, of course, we’ve got a lot to get to today ,so let’s get to it!

IBM Announced Managed Istio and Managed Knative

At Think 2019 IBM announced two new add-ons to the IBM Cloud Kubernetes Service: Managed Istio and Managed Knative.

My Point of View

I like this functionality a lot. Istio is a key component when building cloud-native applications. It allows operators to monitor and manage the many microservices developers have implemented. When moving monoliths to mircoservice architectures, monoliths are replaced with simpler microservices. However, at the same time, the communication between the microservices is more complex. Features like Istio traffic management, which pure Kubernetes infrastructures don’t provide, make it easier for operators to manage these interactions between microservices.

Knative Log Analysis With LogDNA on IBM Cloud

In this post, you will learn how to use the IBM Log Analysis with LogDNA service to configure cluster-level logging for an app named "Knative-node-app" published in IBM Cloud Kubernetes Service. Refer to this post to set up a Node.js app.

IBM Log Analysis with LogDNA offers administrators, DevOps teams, and developers advanced features to filter, search, and tail log data, define alerts, and design custom views to monitor application and system logs.

From the moment you provision a cluster with IBM Cloud Kubernetes Service, you want to know what is happening inside the cluster. You need to access logs to troubleshoot problems and pre-empt issues. At any time, you want to have access to different types of logs such as worker logs, pod logs, app logs, or network logs. In addition, you want to monitor different sources of log data in your Kubernetes cluster. Therefore, your ability to manage and access log records from any of these sources is critical. Your success in managing and monitoring logs depends on how you configure the logging capabilities for your Kubernetes platform.