Serverless

Processing CloudEvents with Eclipse Vert.x

Processing CloudEvents with Eclipse Vert.x

Our connected world is full of events that are triggered or received by different software services. One of the big issues is that event publishers tend to describe events differently and in ways that are mostly incompatible with each other.

To address this, the Serverless Working Group from the Cloud Native Computing Foundation (CNCF) recently announced version 0.2 of the CloudEvents specification. The specification aims to describe event data in a common, standardized way. To some degree, a CloudEvent is an abstract envelope with some specified attributes that describe a concrete event and its data.

Working with CloudEvents is simple. This article shows how to use the powerful JVM toolkit provided by Vert.x to either generate or receive and process CloudEvents.

Continue reading “Processing CloudEvents with Eclipse Vert.x”

Share
Upcoming Book: Vert.x in Action (MEAP)

Upcoming Book: Vert.x in Action (MEAP)

I am pleased to announce that my upcoming book “Vert.x in Action: Asynchronous and Reactive Applications in Java” is now available from the Manning early-access program (MEAP): (See below for the exclusive Red Hat Developer discount code)

As enterprise applications become larger and more distributed, new architectural approaches like reactive designs, microservices, and event streams are required knowledge. The Eclipse Vert.x framework provides a mature, rock-solid toolkit for building reactive applications using Java, Kotlin, or Scala. Vert.x in Action teaches you to build responsive, resilient, and scalable JVM applications with Vert.x using well-established reactive design patterns.

Vert.x in Action teaches you to build highly-scalable reactive enterprise applications. In this practical developer’s guide, Vert.x expert Julien Ponge gets you up to speed in the basics of asynchronous programming as you learn to design and code reactive applications. Using the Vert.x asynchronous APIs, you’ll build services including web stack, messaging, authentication, and access control. You’ll also dive into deployment of container-native components with Docker, Kubernetes, and OpenShift. Along the way, you’ll check your app’s health and learn to test its resilience to external service failures.

Continue reading “Upcoming Book: Vert.x in Action (MEAP)”

Share
EventFlow: Event-driven microservices on OpenShift (Part 1)

EventFlow: Event-driven microservices on OpenShift (Part 1)

This post is the first in a series of three related posts that describes a lightweight cloud-native distributed microservices framework we have created called EventFlow. EventFlow can be used to develop streaming applications that can process CloudEvents, which are an effort to standardize upon a data format for exchanging information about events generated by cloud platforms.

The EventFlow platform was created to specifically target the Kubernetes/OpenShift platforms, and it models event-processing applications as a connected flow or stream of components. The development of these components can be facilitated through the use of a simple SDK library, or they can be created as Docker images that can be configured using environment variables to attach to Kafka topics and process event data directly.

Continue reading “EventFlow: Event-driven microservices on OpenShift (Part 1)”

Share
Natively compile Java code for better startup time

Natively compile Java code for better startup time

Microservices and serverless architectures are being implemented, or are a part of the roadmap, in most modern solution stacks. Given that Java is still the dominant language for business applications, the need for reducing the startup time for Java is becoming more important. Serverless architectures are one such area that needs faster startup times, and applications hosted on container platforms such as Red Hat Openshift can benefit from both fast Java startup time and a smaller Docker image size.

Let’s see how GraalVM can be beneficial for Java-based programs in terms of speed and size improvements. Surely, these gains are not bound to containers or serverless architectures and can be applied to a variety of use cases.

Continue reading “Natively compile Java code for better startup time”

Share
Next DevNation Live: Your Journey to a Serverless World—An Introduction to Serverless, June 7th, 12pm EDT

Next DevNation Live: Your Journey to a Serverless World—An Introduction to Serverless, June 7th, 12pm EDT

Join us for the next online DevNation Live on June 7th at 12pm EDT for Your Journey to a Serverless World—An Introduction to Serverless, presented by Kamesh Sampath and hosted by Burr Sutter.  Serverless computing is an emerging architecture that represents a shift in the way developers build and deliver software systems. By removing application infrastructure concerns, development and deployment are simplified, allowing developers to focus on writing code that delivers value.  Additionally, operational costs can be reduced by only consuming resources when needed to respond to application events.

In this session, we’ll learn what serverless is and what it means to a developer. Then, we’ll quickly deploy a serverless platform using Apache OpenWhisk on Kubernetes. Using this platform, we’ll demystify which Java™ programming model you should use in a serverless environment. And finally, we’ll look at tools that can make your serverless journey quick, easy, and productive.

Watch the recorded session and view the slides.

Session Agenda

Continue reading “Next DevNation Live: Your Journey to a Serverless World—An Introduction to Serverless, June 7th, 12pm EDT”

Share
Red Hat Summit: An Eventful Tour from Enterprise Integration to Serverless

Red Hat Summit: An Eventful Tour from Enterprise Integration to Serverless

Red Hat Senior Architects Marius Bogoevici and Christian Posta recently presented an overview of event-driven architecture, taking the audience from the basics of enterprise integration to microservices and serverless computing. Standing in front of a packed room at Red Hat Summit, their talk addressed four basic points:

  1. Event-driven architectures have been around for a while. What are they, why are they powerful, and why are back en vogue?
  2. Messaging is often used as a backbone for event-based distributed systems. What options do we have for cloud-native event-driven architectures?
  3. Integration is necessary for any organization. How do streaming, cloud-native architectures, and microservices fit in?
  4. Are Functions-as-a-Service (FaaS) the next utopian architecture? Where do functions fit in a world of microservices?

The entire session was done with three enterprise concerns in mind. First is the divide between agile systems and purpose-built systems. While the purpose-built system is optimized for a small set of use cases, it is very difficult to change if new use cases arise or the old use cases become irrelevant. We have to be agile to adapt to a constantly changing environment. Another concern is resource utilization. We want to eliminate waste and get the most out of our systems and resources, although the cloud in general and containers in particular make more distributed architectures practical. Finally, Christian made the observation that we cannot build complex systems from complex parts. The components we develop must be as simple and understandable as possible.

Continue reading “Red Hat Summit: An Eventful Tour from Enterprise Integration to Serverless”

Share
Next DevNation Live: Serverless and Servicefull Applications: Where Microservices Complements Serverless, May 17th, 12pm EDT

Next DevNation Live: Serverless and Servicefull Applications: Where Microservices Complements Serverless, May 17th, 12pm EDT

Join us for the next online DevNation Live on May 17th at 12pm EDT for Serverless and Servicefull Applications: Where Microservices Complements Serverless hosted by Burr Sutter.  Serverless is a misnomer. Your future cloud-native applications will consist of both microservices and functions, wrapped in Linux containers, but in many cases where you, the developer, will be able to ignore the operational aspects of managing the infrastructure and even much of the runtime stack.

In this technical session, we will start by using Apache Whisk, a Functions-as-a-Service (FaaS) engine,  deployed on Kubernetes and Red Hat OpenShift to explore how you can complement cloud-native Java applications (microservices) with serverless functions. Next, we’ll open up a serverless web application architecture and deploy an API Gateway into the FaaS platform to examine the microservices talking to the serverless functions. We finish with a look at how event sinks and event sources map in the serverless world.

Watch the recorded session and view the slides.

Session Agenda

Continue reading “Next DevNation Live: Serverless and Servicefull Applications: Where Microservices Complements Serverless, May 17th, 12pm EDT”

Share
Red Hat Summit: Functions as a Service with OpenWhisk and OpenShift

Red Hat Summit: Functions as a Service with OpenWhisk and OpenShift

Serverless computing (often called Functions-as-a-Service, or FaaS) is one of the hottest emerging technologies today. The OpenWhisk project, currently in incubation at Apache, is an open-source implementation of FaaS that lets you create functions that are invoked in response to events. Our own Brendan McAdams gave a presentation and demo that explained the basics of serverless, how the OpenWhisk project works, and how to run OpenWhisk in OpenShift.

Brendan outlined the three properties of a serverless / FaaS platform:

  1. It responds to events by invoking functions
  2. Functions are loaded and executed on demand
  3. Functions can be chained together with triggered events from outside the FaaS platform itself.

Continue reading “Red Hat Summit: Functions as a Service with OpenWhisk and OpenShift”

Share