Knative OSS Weekly #43
What a week!!!! Flying to Austin, Texas, for CDCon 2022 has been personally and professionally rewarding beyond my wild expectations. I've met a lot of great and crazy folks over here and I am pretty excited about the future of CDEvents, Knative Eventing and Continuous Delivery in general.
- Knative Functions and Knative Eventing at CDCon
- The Four Keys project
- Award, quotes and mentions
Knative Functions and Knative Eventing at CDCon
If you have met me before in real life or read any of my blog posts or articles related to my book, you might already know that I believe that Knative is a fundamental tool to speed up your software delivery teams. (Chapter 5, Release strategies, goes into describing how you can use Knative Serving traffic splitting mechanisms to have more than one version of the service running at the same time). At CDCon, I was happy to represent the project and show with a live demo how you can leverage Knative Eventing to integrate different CI/CD tools in the CNCF and CDF ecosystems. I also highlighted the use of CDEvents, which promotes having a common vocabulary that different tools can use to interact with each other.
Here you can find the slides for the talk, I will share the video as soon as it is online:
[slideshare id=251953521&doc=cdcon-austin2022expandinginteroperabilityinthecdecosystem-220609140321-210b05ba]
The scenario that I was highlighting in the demo was very related to platform engineering and how teams need tools to glue a bunch of Cloud-Native technologies together to enable developers with the environments that they need to work. Using CDEvents for such scenarios will give us a coherent view of what each tool is doing across multiple clusters.
After all the provisioning is done, we want to ensure that our developers don't need to waste time installing or even configuring their Kubernetes Clusters. For this reason, the demo went beyond creating cloud resources to configuring tools for the developers to use in this newly created environment.
Once the environment is ready, developers can use tools like Knative Functions to go from source to URL without worrying about writing Dockerfiles or YAML files.
By using CloudEvents and CDEvents we can notify the Platform cluster about the activity happening in the environments using an event-driven approach.
Unfortunately, Ishan Khare from Loft.sh couldn't make it to the conference, but all the kudos for writing most of the demo code and all the controllers.
I did feel that I've learnt a lot, and after all the CDEvents workshop, I have a clear strategy to refactor this demo to be (K8s) Controller-less and completely based on functions.
But I want to take it a couple of steps further, and here is where I need to introduce the Four Keys project, which got me super hyped this week.
Four Keys Project
I remember when I started writing the book that I basically started implementing this, but I've given up because of way too much work and also because I've joined the SIG-Events at the CDF. All the work that I did around this topic ended up being the incarnation of the CDEvents Go SDK.
But you might be wondering, what is this guy talking about?
The Four Keys project refers back to the DORA metrics, which are:
- Deployment Frequency
- Lead Time for Changes
- Time to Restore Services
- Change Failure Rate
The Four Keys project provides a Google Cloud based implementation of these metrics so you can monitor and improve these metrics to improve your software delivery practices. If this resonates with you, I invite you to check their GitHub repo and watch their presentation: https://github.com/GoogleCloudPlatform/fourkeys
That on its own is impressive but guess what.. we can make it better! Wouldn't it be great if we had the Four Keys for Kubernetes? When you look at the Four Keys project architecture, it is pretty clear to me that we can use Knative Serving for all the Cloud Run functions and Knative Eventing to abstract Pub/Sub and the event sources.
I haven't figured out yet how to abstract Big Query, but by just making the execution environment Kubernetes-based, we will be enabling teams to improve their delivery practices. If we make sure that all events are CloudEvents and if we build the metrics using CDevents abstractions, then we are talking! These things get me so hyped that I just want to make it happen. I will be probably chasing David Stanke (which I need to thank a lot for the project introduction) and the Four Keys Project members to see how we can move things forward in the Kubernetes direction. It feels like almost all the pieces are there. If you are interested in helping, please do get in touch.
Award, quotes and mentions
This week was crazy because I got the CD Foundation Most Valuable Contributor award for the CDEvents project:
Receiving this award was such an honour and a big motivation to keep pushing forward.
It was also fun to do a short interview with the folks from JFrog (THANKS @lorilorusso for the encouragement!) about CDEvents:
This week, I've also realized that I've reached 3K Twitter followers, which besides the large number, it means that I've met a lot of wonderful people interested in the same topics over the years. I had the luck to meet David @rawkode once again and talk about all things Pulumi and platform engineering. David, I hope you get better soon!
This blog (https://salaboy.com) got mentioned in an InfoQ article about Open Source and how to grow your career by my buddy @porcelli
https://www.infoq.com/articles/staff-plus-open-source-engagement/
I also got two mentions at TechTarget. Thanks a lot to Beth Pariseau for writing great articles/interviews about the conference.
To close this very long blog post, let me add some pictures and a shoutout to all the CDF members who made this conference possible, in particular to Fatih, the new CD Foundation General Manager, Tracy Regan from DeployHub and Tracy Miranda from Chainguard, I am always learning from them.