Kubernetes

The road to Quarkus GA: Completing the first supported Kubernetes-native Java stack

The road to Quarkus GA: Completing the first supported Kubernetes-native Java stack

I’ve had many proud moments in my role here at Red Hat over the years. Examples include when we released the first version of WildFly, when we acquired the Camel team, when we worked with other vendors to create Eclipse MicroProfile, the great work the Strimzi team did to get into the Cloud Native Computing Foundation, our entire Red Hat Managed Integration effort, Kogito, and the list goes on. I feel like I add to this list of examples on an almost weekly basis.

Well, I can now update this list with the first product release of Quarkus, formally called the Red Hat build of Quarkus. (You can also find more support options on the Quarkus project site.) It should come as no surprise that Quarkus is on this list. I suppose what might surprise some people is that Quarkus is only just a product now. Given all of the activities since we officially launched the Quarkus project in 2019, you could be forgiven for thinking it was already a product.

Continue reading “The road to Quarkus GA: Completing the first supported Kubernetes-native Java stack”

Share
How the fabric8 Maven plug-in deploys Java applications to OpenShift

How the fabric8 Maven plug-in deploys Java applications to OpenShift

The fabric8 Maven plug-in, often abbreviated FMP, can be added to a Maven Java project and takes care of the administrative tasks involved in deploying the application to a Red Hat OpenShift cluster. These tasks include:

  1. Creating an OpenShift build configuration (BC).
  2. Coordinating the source-to-image (S2I) process to create a container image from the application’s compiled bytecode.
  3. Creating and instantiating a deployment configuration (DC) from information in the project.
  4. Defining and instantiating OpenShift services and routes.

All of the relevant components of this process are well-documented individually. This article pulls together documentation sources to create an overview of how the plug-in works, and the structure of the image it generates—which might make the plug-in easier to use and troubleshoot.

Continue reading “How the fabric8 Maven plug-in deploys Java applications to OpenShift”

Share
Quarkus, a Kubernetes-native Java runtime, now fully supported by Red Hat

Quarkus, a Kubernetes-native Java runtime, now fully supported by Red Hat

Java was introduced 25 years ago, and to this day, remains one of the most popular programming languages among developers. However, Java has developed a reputation for not being a good fit for cloud-native applications. Developers look for (and often choose) alternative frameworks such as Go and Node.js to support their cloud-native development requirements.

Why learn another language when you can use your existing skills? Quarkus allows Java developers to leverage their expertise to develop cloud-native, event-driven, reactive, and serverless applications. Quarkus provides a cohesive Java platform that feels familiar but new at the same time. Not only does it leverage existing Java standards, but it also provides a number of features that optimize developer joy, including live coding, unified configuration, IDE plugins, and more.

Recently, Red Hat announced support for Quarkus. With Quarkus, Red Hat advances Java on Kubernetes and bridges the gap between traditional Java applications and cloud-native environments.

Continue reading “Quarkus, a Kubernetes-native Java runtime, now fully supported by Red Hat”

Share
Build a Go application using OpenShift Pipelines

Build a Go application using OpenShift Pipelines

Go is an increasingly popular programming language, and frequently chosen for developing command-line utilities. Many tools used with Kubernetes and Red Hat OpenShift are written in Go, including the command-line interfaces (CLIs) for Tekton (tkn), OpenShift (oc), and Kubernetes (kubectl). Also, developers can compile Go to a single executable for a broad range of operating systems. As a result, it’s easy to develop and desk-test applications before putting them into containers and running those containers in OpenShift.

In a meta sort of way, this is an article about a tutorial, where I show you how to build and deliver a small Go RESTful service using OpenShift Pipelines. You could just jump to the tutorial now, but I suggest reading this article first. I’ll quickly introduce the working environment for the tutorial, and I’ll explain my logic for setting up the tutorial the way that I did.

Continue reading “Build a Go application using OpenShift Pipelines”

Share
Getting started with the fabric8 Kubernetes Java client

Getting started with the fabric8 Kubernetes Java client

Fabric8 has been available as a Java client for Kubernetes since 2015, and today is one of the most popular client libraries for Kubernetes. (The most popular is client-go, which is the client library for the Go programming language on Kubernetes.) In recent years, fabric8 has evolved from a Java client for the Kubernetes REST API to a full-fledged alternative to the kubectl command-line tool for Java-based development.

Continue reading “Getting started with the fabric8 Kubernetes Java client”

Share
Deploy and bind enterprise-grade microservices with Kubernetes Operators

Deploy and bind enterprise-grade microservices with Kubernetes Operators

Deploying enterprise-grade runtime components into Kubernetes can be daunting. You might wonder:

  • How do I fetch a certificate for my app?
  • What’s the syntax for autoscaling resources with the Horizontal Pod Autoscaler?
  • How do I link my container with a database and with a Kafka cluster?
  • Are my metrics going to Prometheus?
  • Also, how do I scale to zero with Knative?

Operators can help with all of those needs and more. In this article, I introduce three Operators—Runtime Component Operator, Service Binding Operator, and Open Liberty Operator—that work together to help you deploy containers like a pro.

Continue reading “Deploy and bind enterprise-grade microservices with Kubernetes Operators”

Share
Change data capture for microservices without writing any code

Change data capture for microservices without writing any code

Want to smoothly modernize your legacy and monolithic applications to microservices or cloud-native without writing any code? Through this demonstration, we show you how to achieve the following change data capture scenario between two microservices on Red Hat OpenShift using the combination of Syndesis, Strimzi, and Debezium.

architecture diagram

Continue reading “Change data capture for microservices without writing any code”

Share
Open Liberty 20.0.0.5 brings updates to EJB persistent timers coordination and failover across members

Open Liberty 20.0.0.5 brings updates to EJB persistent timers coordination and failover across members

In Open Liberty 20.0.0.5, you can now configure failover for Enterprise JavaBeans (EJB) persistent timers, load Java Authentication and Authorization Service (JAAS) classes directly from the resource adapter, format your logs to JSON or dev, and specify which JSON fields to leave out of your logs. In this article, we will discuss each of these features and how to implement them.

Continue reading “Open Liberty 20.0.0.5 brings updates to EJB persistent timers coordination and failover across members”

Share