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”
In many organizations, it is a struggle for developers to get custom Jenkins container images created. Fortunately, in engineering, there is often more than one way to get the job done. In this article, I show you how to create your own custom Jenkins container image by aggregating readily available containers in a pod template.
Continue reading An easier way to create custom Jenkins containers
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:
- Creating an OpenShift build configuration (BC).
- Coordinating the source-to-image (S2I) process to create a container image from the application’s compiled bytecode.
- Creating and instantiating a deployment configuration (DC) from information in the project.
- 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”
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”
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”
What does eventual consistency even mean? Or, how about a dark launch? What is gRPC? Or a database saga? Wouldn’t it be great if someone gathered all the terms associated with cloud-native computing and put them in one place, where developers could find, link to, and even update them?
Continue reading Cloud-native computing terms all in one place
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”
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”
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.
Continue reading “Change data capture for microservices without writing any code”
In Open Liberty 184.108.40.206, 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 220.127.116.11 brings updates to EJB persistent timers coordination and failover across members”