In Cloud Native Diary, I weekly share my journey working with application development, platform engineering, and cloud native technologies.
The past few weeks have been very intense. KubeCon, conferences, meetups, platform engineering, Java, open-source contributions, and more. Let's get to it!
Cloud Native Rejekts EU
On April 16th and 17th, I attended the Cloud Native Rejekts conference in Amsterdam, and it was a blast! I really liked the vibes and the cozy atmosphere, appreciated the exciting and insightful presentations, and enjoyed inspiring conversations with amazing people.
On the first day, I gave my presentation Paved Paths to Production - There and Back Again (slides, video). I talked about how to design and build paved paths to production on Kubernetes, focusing on developer experience, clear separation of concerns, and compliance. I demonstrated how to use Cartographer to build paths to production with Flux, Tekton, Trivy, Cloud Native Buildpacks, Knative, and Carvel.
There are two presentations that I particularly liked. Systems Thinking for Dev Organizations by Lian Li was so inspiring! I learned a lot about systems thinking and got many ideas and inputs to apply those concepts to my daily job.
Mauricio Salatino and Salman Iqbal shared their Lessons Learnt from Creating Platforms on Kubernetes. I particularly liked getting to know more about the perspective of data scientists as platform users and how to design platforms that can provide machine learning capabilities besides supporting application development.
Red Hat OpenShift Commons Gatherings
On April 18th, I had the chance to join the Red Hat OpenShift Commons Gathering conference in Amsterdam. I was invited by Josh Gavant to join a panel about cloud native platforms together with Abby Bangser, Raffele Spazzoli, and Andrew Block.
We talked about our work on the whitepaper on platforms (part of CNCF TAG App Delivery), what we mean by cloud native platforms, why we should build one, and what capabilities and features they should have (video). I enjoyed the panel very much!
Community Meetings at KubeCon Europe
April 18th was also the day of community meetings at KubeCon+CloudNativeCon Europe in Amsterdam.
I joined the CNCF TAG App Delivery meeting, where we had an interesting discussion on how to guide new contributors and organize the community meetings to favor participation. Then, some community members shared different ideas with the group. Unfortunately, I missed some of them as I couldn't stay for the whole meeting. But I was glad I was there for Abby Bangser's presentation introducing a maturity model for cloud native platforms. It was so interesting! You can read about it in this blog post on the Syntasso website.
Then, I joined the Carvel meeting. It was fantastic to finally meet with the Carvel team in person after talking online for so long! And it was pretty interesting to hear from the community how they use Carvel, what problems they're trying to solve, and what challenges they encounter when first approaching Carvel. I had the chance to share my experience as a contributor to Carvel with other community members interested in getting involved with the project.
On April 19th, it was time for KubeCon to start, and it was fantastic! The best part of the conference was all the amazing people I met and talked to. As always, the hallway track is golden! Lots of conversations around platform engineering, developer experience, and supply chain security.
My favorite presentation was Choose Your Own Adventure: The Treacherous Trek to Development by Whitney Lee and Viktor Farcic (video). They went through 19 different CNCF projects and traced a path from code to a Kubernetes development environment based on the votes from the audience that guided the cloud native adventure at each crossroad. Such a brilliant idea for a presentation! It was entertaining, insightful, and fun.
During the conference days, I spent some time at the TAG App Delivery booth and had interesting conversations with people around cloud native platforms. I also had a chance to give a lightning talk about building composable platforms using Carvel. I'm glad that people found it interesting and tried out the strategy I presented.
I also spent some time at the Carvel booth. I had engaging conversations with engineers about how the Carvel suite of tools can help them solve common challenges when working with Kubernetes, like package management, configuration management, safe deployments, and air-gapped environments support.
Finally, on April 21st, I turned 30. I had big cloud native celebrations in Amsterdam with fantastic friends. It was such a great way to celebrate my birthday! Thanks everyone who joined for making it a memorable day!
Open Source Contributions
Right before KubeCon, the whitepaper on cloud native platforms I contributed to has been published. See the CNCF announcement for more details. The whitepaper was written within the Platforms Working Group I joined last December, and it's part of a broader set of initiatives developed within the CNCF TAG App Delivery. If you'd like to know more about the working group, you can join the #wg-platforms channel on the CNCF Slack.
When it comes to packaging platform capabilities, I like working with Carvel kapp-controller, which provides Kubernetes-native package management features. A while ago, I proposed a change to the kctrl CLI to create a dedicated namespace as part of adding a new package repository to a cluster. I worked on a pull request to implement the change, and it's now delivered.
I've been working on a series of articles explaining the Carvel tools and their features. I've also been working on a cloud native platform based on Carvel to research different technologies and analyze their usage in the context of an actual product. Stay tuned for updates!
Cloud Native Buildpacks is my preferred way of containerizing applications. In the context of platform engineering, I use kpack, which is a Kubernetes-native implementation of Buildpacks and allows packaging source code as OCI container images directly on-cluster.
I recently noticed that kpack no longer worked with the new major version of Cosign, resulting in problems when configuring the controller to sign the built images. I raised an issue on the project's GitHub and submitted a pull request which was merged a few days ago. I look forward to the new release that will include my changes!
I've also started looking into establishing the right buildpacks and stacks for using kpack to containerize applications on ARM64 machines, based on the work done by Dashaun Carter and Daniel Mikusa in the Paketo Buildpacks project.
Meetups, Presentations and Interviews
As anticipated in the previous Cloud Native Diary issue, I joined a new episode of The Golden Path to SpringOne series on the VMware Tanzu channel, hosted by Dashaun Carter. I talked about building paved paths to production using Cartographer and showed how to take a Spring Boot application from the original idea all the way to production on Kubernetes (video, slides).
I had the pleasure of talking about Spring Boot and cloud native development with Laurentiu Spilca, who invited me to his YouTube channel (video). I really enjoyed our conversation and can't wait to catch up with Laurentiu soon at Spring I/O.
I was invited by Jeffrey Palermo on his Azure DevOps podcast, where I talked about the fundamentals of Kubernetes and how it relates to other cloud native technologies.
On May 4th, I had a chance to meet with the local tech community in Copenhagen at the Maersk Dev Hangout, where I was invited to talk about Observability and Efficiency with Spring Boot 3 (slides, source code). I introduced some of the new features in Spring Boot 3.1 about observability for reactive applications, dev services with Testcontainers, Docker Compose support, and native images with Graal VM.
Cloud Native Spring in Action
My book Cloud Native Spring in Action keeps receiving very positive feedback, and I'm so happy to hear how people find it useful and how it helps them in their daily job. The book is about to go through a second reprint, and the Chinese and Korean translations should be published soon. I can't wait!
Next week, I'll be at Devoxx UK to celebrate its 10th anniversary and present about developer experience with Java on Kubernetes. I'm looking forward to it!