Cloud Native Diary #4

Cloud Native Spring in Action, OpenTelemetry, Buildpacks, Carvel package management, and cloud native platforms.

A picture of a sunny and sandy beach. In the background, the Mediterranean Sea with a ship sailing.


In Cloud Native Diary, I weekly share my journey working with application development, platform engineering, and cloud native technologies.

I wish you all a happy new year! This is the first issue in 2023, which started really great in sunny and warm southern Spain. Java, Spring, OpenTelemetry, Buildpacks, Carvel, and more. Let's get to it.

News about "Cloud Native Spring in Action"

I'm happy about all the positive feedback I've received about my book "Cloud Native Spring in Action". I want to thank all the readers for their interest in the book and for sharing their thoughts about it.

Over the holidays, the book did really well. And this week was the #1 new Java release on Amazon.

The book is now available in all major online bookstores and in PDF format on the publisher's website. However, the ePub and Kindle formats still need to be made available. They are scheduled to be released next week. I'm looking forward to that! Shortly after, the book will also be available on the O'Reilly Learning Platform.

I'm also happy to share that "Cloud Native Spring in Action" will soon be available in Chinese and Korean. Translations are in progress for both languages, and I can't wait to see the final result!

OpenTelemetry and Buildpacks

OpenTelemetry is "a collection of tools, APIs, and SDKs" used to "instrument, generate, collect, and export telemetry data (metrics, logs, and traces)". When it comes to observability for cloud native systems, OpenTelemetry is definitely one of the fundamental pieces.

I use OpenTelemetry a lot, especially for Java applications. The project provides an OpenTelemetry Java Agent that can be added to any Java application to instrument your code and export traces to compatible backends, such as Grafana Tempo (my distributed tracing system of choice).

When it comes to containerizing applications, I mainly rely on Cloud Native Buildpacks. Specifically, I use the Paketo implementation. The Paketo project provided a few different buildpacks to add tracing agents to Java applications, but there wasn't one for OpenTelemetry. That's why I decided to implement one and contribute to Paketo.

You can already try out the beta of the Paketo Buildpack for OpenTelemetry. Any feedback would be much appreciated! We're currently working towards the first GA release. This week, I submitted one last change to the buildpack to align its naming to the Paketo standards. I also contributed a sample demonstrating how to use and configure the OpenTelemetry support. I'm also working on adding dedicated documentation to the Paketo website.

I want to thank Daniel Makusa for his precious help, guidance, and support throughout this process.

Carvel: Cloud Native Tools and Kubernetes-Native Package Management

Carvel is one of my favorite projects in the CNCF landscape. And it was the topic of this week's Englightning episode, hosted by my friend Whitney Lee and featuring Leigh Capili as a guest. They talked about how the Carvel tools can bring order to cloud native systems and improve the developer and operator experience.

In the last Carvel community meeting, I suggested a couple of enhancements for the kctrl tool aimed at improving the onboarding experience and simplifying the setup of a Kubernetes cluster for using the package management features offered by kapp-controller.

I proposed extending the kctrl capabilities so that it can be used to install kapp-controller in a quick and simple way. After initializing a Kubernetes cluster with kapp-controller, we would add a package repository in a dedicated namespace. Currently, the namespace must be created explicitly. I suggested having the CLI create the namespace automatically when it doesn't exist. Feel free to leave your feedback on the two GitHub issues and vote on them if you'd like the new features to be implemented.

CNCF Platforms Working Group

For the past couple of months, I've been involved in the CNCF Platforms Working Group. We've been working on a whitepaper to define cloud native platforms, their benefits and capabilities, and the organizational structure to work with them. All the material is now available on GitHub for review. I'm looking forward to seeing the first version published!

I want to thank Josh Gavant for leading this project. Working with this group has been very interesting and insightful, and I can't wait to collaborate on the next steps that will focus on individual platform capabilities and implementation details.

If you're interested in contributing to this work, you can join the #wg-platforms channel in the CNCF Slack.