|
| 1 | +--- |
| 2 | +title: "CloudNativePG in 2024: Milestones, Innovations, and Reflections" |
| 3 | +date: 2024-12-29T12:27:41+01:00 |
| 4 | +description: "A retrospective on CloudNativePG’s impactful 2024, celebrating achievements, community growth, and the evolving role of PostgreSQL in Kubernetes." |
| 5 | +tags: ["postgresql", "postgres", "kubernetes", "k8s", "cloudnativepg", "cnpg", "dok", "data on kubernetes", "CNCF", "Sandbox", "incubation", "databases", "VolumeGroupSnapshot", "extensions", "storage", "ecosystem", "edb"] |
| 6 | +cover: cover.jpg |
| 7 | +thumb: thumb.jpg |
| 8 | +draft: false |
| 9 | +--- |
| 10 | + |
| 11 | +_2024 was a transformative year for CloudNativePG, marked by significant |
| 12 | +contributions to the Kubernetes ecosystem, increased adoption, and a growing |
| 13 | +community. This article reflects on key milestones, including the integration |
| 14 | +of advanced Kubernetes features, conference highlights, and personal insights, |
| 15 | +while looking ahead to the opportunities awaiting PostgreSQL in the |
| 16 | +cloud-native era._ |
| 17 | + |
| 18 | +<!--more--> |
| 19 | + |
| 20 | +--- |
| 21 | + |
| 22 | +When Kubernetes debuted a decade ago, I could never have predicted that it |
| 23 | +would become such an integral part of my professional journey. While I only |
| 24 | +began working with Kubernetes in August 2019, it quickly became clear to me |
| 25 | +that it was the future of running PostgreSQL. By the end of that year, we had |
| 26 | +our prototype operator, and, together with my fantastic team, we made a pivotal |
| 27 | +decision: I would never go back to using virtual machines to run PostgreSQL. |
| 28 | +That decision has shaped my work ever since. |
| 29 | + |
| 30 | +Fast-forward to 2024, which marked my fifth year of running PostgreSQL on |
| 31 | +Kubernetes and a transformative period for CloudNativePG. Open-sourced in May |
| 32 | +2022, CloudNativePG has grown into one of the leading solutions for running |
| 33 | +PostgreSQL in Kubernetes. It stands out as the only operator governed by a |
| 34 | +vendor-neutral, openly governed community designed to be truly |
| 35 | +Kubernetes-native. |
| 36 | + |
| 37 | +Let’s take a closer look at the milestones we achieved this year. |
| 38 | + |
| 39 | +## Popularity |
| 40 | + |
| 41 | +The rising popularity of CloudNativePG is best exemplified by the growing |
| 42 | +[number of stars on its GitHub repository](https://star-history.com/#cloudnative-pg/cloudnative-pg&zalando/postgres-operator&CrunchyData/postgres-operator&ongres/stackgres&percona/percona-postgresql-operator&reactive-tech/kubegres&Date) |
| 43 | +—a clear and transparent measure of community support. |
| 44 | + |
| 45 | +This organic growth highlights the trust and enthusiasm of its users, achieved |
| 46 | +without reliance on artificial marketing boosts from either the CloudNativePG |
| 47 | +Community or EDB. As the primary creator and supporting organisation of |
| 48 | +CloudNativePG, EDB has played a pivotal role in its success. With a |
| 49 | +long-standing reputation as a leader in PostgreSQL development, EDB continues |
| 50 | +to drive innovation and collaboration within the broader open-source ecosystem, |
| 51 | +bridging the gap between Postgres and Kubernetes and ensuring the project's |
| 52 | +sustained growth and relevance. |
| 53 | + |
| 54 | +A snapshot taken on January 10, 2024, shows that CloudNativePG was the third |
| 55 | +most popular PostgreSQL operator, with roughly 2.7k stars. At the time, |
| 56 | +Crunchy’s PGO had around 3.6k stars (900 more), and the Zalando operator led |
| 57 | +with nearly 3.8k stars (1.1k ahead). |
| 58 | + |
| 59 | + |
| 60 | + |
| 61 | +However, significant milestones were reached later in the year. In July, |
| 62 | +CloudNativePG surpassed Crunchy’s PGO to claim the second spot, and by |
| 63 | +September, it overtook Zalando to become the most popular operator. Today, |
| 64 | +CloudNativePG has nearly 5k stars, outpacing Zalando with 4.4k and Crunchy’s |
| 65 | +PGO with 4k. |
| 66 | + |
| 67 | + |
| 68 | + |
| 69 | + |
| 70 | +In 2024 alone, CloudNativePG achieved an impressive milestone, gaining 2.3k |
| 71 | +stars on GitHub—an average of over six stars per day. This far outpaced its |
| 72 | +peers, with Zalando adding 700 stars (+1.6k total) and Crunchy gaining 400 |
| 73 | +(+1.9k total). The remarkable momentum has captured widespread attention, |
| 74 | +including a colourful endorsement from Percona’s founder, Peter Zaitsev. |
| 75 | +Speaking at Data on Kubernetes Day during KubeCon North America in Salt Lake |
| 76 | +City last November, Zaitsev remarked: |
| 77 | + |
| 78 | +> [CloudNativePG is kicking everybody’s a**e!](https://www.youtube.com/watch?v=6sZqbNwzZag&t=1288s&ab_channel=CNCF%5BCloudNativeComputingFoundation%5D) |
| 79 | +
|
| 80 | +## Releases |
| 81 | + |
| 82 | +In 2024, we followed a robust release cadence, delivering updates across nine |
| 83 | +release windows: |
| 84 | + |
| 85 | +- **February 2**: 1.22.1, 1.21.3, and 1.20.6 |
| 86 | +- **March 14**: 1.22.2 and 1.21.4 |
| 87 | +- **April 24**: [1.23.0 (minor release)](https://cloudnative-pg.io/releases/cloudnative-pg-1-23.0-released/), 1.22.3, and 1.21.5 |
| 88 | +- **April 29**: 1.23.1 |
| 89 | +- **June 12**: 1.23.2, 1.22.4, and 1.21.6 |
| 90 | +- **July 29**: 1.23.3 and 1.22.5 |
| 91 | +- **August 22**: [1.24.0 (minor release)](https://cloudnative-pg.io/releases/cloudnative-pg-1-24.0-released/) and 1.23.4 |
| 92 | +- **October 16**: 1.24.1 and 1.23.5 |
| 93 | +- **December 23**: [1.25.0 (minor release)](https://cloudnative-pg.io/releases/cloudnative-pg-1-25.0-released/), 1.24.2, and 1.23.6 |
| 94 | + |
| 95 | +With the release of version 1.23, we made a significant strategic decision to |
| 96 | +streamline our [support policy](https://cloudnative-pg.io/documentation/current/supported_releases/#support-policy). |
| 97 | + |
| 98 | +As a community, we now only support the latest minor version of CloudNativePG |
| 99 | +and extend support for the second-last minor version for an additional three |
| 100 | +months. This change has dramatically simplified our codebase management, |
| 101 | +reducing the need for extensive backports and the complexity of automated test |
| 102 | +combinations in our continuous delivery pipelines. |
| 103 | + |
| 104 | +Another pivotal improvement was the introduction of release candidates, |
| 105 | +prompted by a retrospective analysis of the misstep in version 1.23.0 — which |
| 106 | +required a swift 1.23.1 patch just five days later. The new release candidate |
| 107 | +process has allowed us to provide our user base with [preview versions](https://cloudnative-pg.io/documentation/current/preview_version/) |
| 108 | +of upcoming releases, such as 1.24 and 1.25, fostering better feedback and |
| 109 | +stability. |
| 110 | + |
| 111 | +In 2023, CloudNativePG followed a similar pattern, delivering four minor |
| 112 | +releases (1.22, 1.21, 1.20, and 1.19) across eight release windows. Looking |
| 113 | +ahead to 2025, we aim to streamline this cadence further by targeting one minor |
| 114 | +release per quarter, ensuring a more predictable and consistent release |
| 115 | +schedule. |
| 116 | + |
| 117 | +## Features |
| 118 | + |
| 119 | +The three minor releases in 2024 brought several exciting new features and |
| 120 | +enhancements to CloudNativePG. |
| 121 | + |
| 122 | +My favourite is the declarative support for distributed topologies of |
| 123 | +PostgreSQL databases across multiple Kubernetes clusters. This feature enables |
| 124 | +hybrid and multi-cloud deployments through native physical replication using |
| 125 | +Infrastructure as Code (IaC). I detail this in my blog article, |
| 126 | +[“Making the World My Single Point of Failure with PostgreSQL,”]({{< relref "../20240627-make-the-world-your-spof-with-postgresql-in-kubernetes/index.md" >}}) |
| 127 | +and it can be easily explored using the |
| 128 | +[CNPG Playground]({{< relref "../20240920-cnpg-playground/index.md" >}}). |
| 129 | + |
| 130 | +The second is the new API for synchronous replication control, which provides |
| 131 | +unprecedented opportunities to balance data durability and self-healing. It |
| 132 | +also enables complete configuration of PostgreSQL’s `synchronous_standby_names` |
| 133 | +option. For more details, check out |
| 134 | +[“CNPG Recipe 16 - Balancing Data Durability and Self-Healing with Synchronous Replication”syncrep]({{< relref "../20241226-data-durability/index.md" >}}) |
| 135 | +and |
| 136 | +[“CNPG Recipe 13 - Configuring PostgreSQL Synchronous Replication.”]({{< relref "../20240910-syncrep/index.md" >}}). |
| 137 | + |
| 138 | +The third is the first hooks implementation for [CNPG-I](https://github.com/cloudnative-pg/cnpg-i/), |
| 139 | +the CloudNativePG Interface. This framework enables third parties to extend the |
| 140 | +CloudNativePG operator through plugins, eliminating the need to modify the core |
| 141 | +codebase—similar to how Kubernetes and PostgreSQL operate. |
| 142 | + |
| 143 | +Finally, we significantly enhanced support for native logical replication, |
| 144 | +making it easier than ever to migrate to CloudNativePG from any PostgreSQL 10+ |
| 145 | +instance, including DBaaS solutions like RDS. CloudNativePG 1.25 introduces |
| 146 | +support for declarative logical replication subscriptions and publications. |
| 147 | +This technology also facilitates online major upgrades of PostgreSQL with |
| 148 | +near-zero cutover time. Read [“CNPG Recipe 15 - PostgreSQL Major Online Upgrades with Logical Replication”]({{< relref "../20241210-major-online-upgrades/index.md" >}}) |
| 149 | +and |
| 150 | +[“CNPG Recipe 5 - How to Migrate Your PostgreSQL Database in Kubernetes with Near-Zero Downtime from Anywhere”]({{< relref "../20240327-zero-cutover-migrations/index.md" >}}) |
| 151 | +for more information. |
| 152 | + |
| 153 | +## Ecosystem Evolution |
| 154 | + |
| 155 | +CloudNativePG is evolving around its main project, the CloudNativePG operator, |
| 156 | +into a comprehensive ecosystem for running PostgreSQL in Kubernetes. The |
| 157 | +recently introduced CNPG-I framework will amplify this transformation in the |
| 158 | +future. |
| 159 | + |
| 160 | +In 2024, we made an important change to the project’s governance by introducing |
| 161 | +the concept of components and, most notably, component owners. While |
| 162 | +maintainers oversee the entire project, component owners are maintainers of |
| 163 | +specific sub-projects. Key components include container images, Helm charts, |
| 164 | +Grafana dashboards, OLM, and the website. |
| 165 | + |
| 166 | +Two standout components introduced this year are: |
| 167 | + |
| 168 | +- **[CNPG Playground](https://github.com/cloudnative-pg/cnpg-playground)**: A |
| 169 | + local learning environment designed to experiment with CloudNativePG, |
| 170 | + leveraging Docker and Kind to simplify onboarding and exploration. |
| 171 | +- **[Barman Cloud Plugin](https://github.com/cloudnative-pg/plugin-barman-cloud) |
| 172 | + for Backup and Recovery on Object Stores**: This marks our first plugin for |
| 173 | + the CNPG-I framework and is poised to eventually replace the in-core support |
| 174 | + for Barman Cloud, aligning with our modular vision. |
| 175 | + |
| 176 | +## Kubernetes development |
| 177 | + |
| 178 | +2024 marked a milestone year for our project as one of our developers made a |
| 179 | +significant contribution to Kubernetes: |
| 180 | +[Leonardo Cecchi](https://www.linkedin.com/in/leonardo-cecchi-54b0a396/), |
| 181 | +co-founder and maintainer of CloudNativePG, played a pivotal role as a |
| 182 | +[key contributor](https://github.com/kubernetes-csi/external-snapshotter/blob/v8.2.0/CHANGELOG/CHANGELOG-8.2.md) |
| 183 | +to the development of |
| 184 | +[VolumeGroupSnapshot support in Kubernetes 1.32](https://kubernetes.io/blog/2024/12/11/kubernetes-v1-32-release/#volume-group-snapshot). |
| 185 | +This feature lays a critical foundation for future backup and recovery |
| 186 | +operations for PostgreSQL databases using volume snapshotting within Kubernetes |
| 187 | +environments. |
| 188 | + |
| 189 | +This achievement highlights the holistic approach our team at EDB takes in |
| 190 | +integrating Postgres and Kubernetes, combining technical innovation with |
| 191 | +community-driven collaboration. |
| 192 | + |
| 193 | +## Conference Talks |
| 194 | + |
| 195 | +This year, I was privileged to present at several significant events in the |
| 196 | +cloud-native and PostgreSQL communities. |
| 197 | + |
| 198 | +### KubeCon & CloudNative Highlights |
| 199 | + |
| 200 | +At KubeCon Europe in Paris (March), I delivered two sessions: |
| 201 | + |
| 202 | +- **["From Zero to Hero: Scaling Postgres in Kubernetes Using the Power of CloudNativePG"](https://colocatedeventseu2024.sched.com/event/1YFha/from-zero-to-hero-scaling-postgres-in-kubernetes-using-the-power-of-cloudnativepg-gabriele-bartolini-edb)** |
| 203 | + at the [Data on Kubernetes](https://dok.community/) co-located event. |
| 204 | +- **["Scaling Heights: Mastering Postgres Database Vertical Scalability with Kubernetes Storage Magic"](https://kccnceu2024.sched.com/event/1YeM4/scaling-heights-mastering-postgres-database-vertical-scalability-with-kubernetes-storage-magic-gabriele-bartolini-edb-gari-singh-google)**, |
| 205 | + co-presented with the brilliant [Gari Singh from Google Cloud](https://www.linkedin.com/in/garisingh/). |
| 206 | + |
| 207 | +In November, I travelled to Salt Lake City for KubeCon North America, |
| 208 | +participating in a panel discussion on |
| 209 | +[the future of DBaaS on Kubernetes](https://sched.co/1i7kL) |
| 210 | +alongside industry experts Melissa Logan (Constantia and [Data on Kubernetes Community - DoK](https://dok.community/)), |
| 211 | +Sergey Pronin (Percona), and Deepthi Sigireddi (PlanetScale). |
| 212 | + |
| 213 | +Earlier that week, at Cloud Native Rejekts, |
| 214 | +[Leonardo Cecchi](https://www.linkedin.com/in/leonardo-cecchi-54b0a396/) |
| 215 | +and I co-presented |
| 216 | +["Maximising Microservice Databases with Kubernetes, Postgres, and CloudNativePG"](https://cfp.cloud-native.rejekts.io/cloud-native-rejekts-na-salt-lake-city-2024/talk/38Z8MB/), |
| 217 | +which you can watch [here](https://www.youtube.com/watch?v=uBzl_stoxoc). |
| 218 | + |
| 219 | +Capping off a busy November, I was honoured to speak at the **Kubernetes |
| 220 | +Community Days Denmark** in Copenhagen. My talk, |
| 221 | +["CloudNativePG: The Past, The Present, The Future"](https://kcddenmark.dk/schedule/), |
| 222 | +provided a comprehensive overview of the project's evolution and vision. You |
| 223 | +can watch the recording [here](https://www.youtube.com/watch?v=_R0dxSHlJoY&ab_channel=CloudNativeNordics). |
| 224 | + |
| 225 | +### PostgreSQL Conferences |
| 226 | + |
| 227 | +In addition to cloud-native events, I spoke at two PostgreSQL conferences: |
| 228 | + |
| 229 | +- **Swiss PGDay 2024** in Rapperswil (June 28): |
| 230 | + ["Unleashing the Power of PostgreSQL in Kubernetes"](https://www.pgday.ch/2024/#schedule). |
| 231 | +* **PostgreSQL Conference Europe 2024** in Athens (October 24): |
| 232 | + ["Postgres: From Cloud to Hybrid and On-Prem Again"](https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6056-postgres-from-cloud-to-hybrid-and-on-prem-again/). |
| 233 | + |
| 234 | +Athens provided a particularly inspiring glimpse into the evolving perception |
| 235 | +of Kubernetes within the PostgreSQL community. Adam Wright’s session, |
| 236 | +["Demystifying Kubernetes for Postgres DBAs: A Guide to Operators"](https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5584-demystifying-kubernetes-for-postgres-dbas-a-guide-to-operators/), |
| 237 | +drew a packed audience, demonstrating growing interest among Postgres |
| 238 | +professionals. |
| 239 | + |
| 240 | +Another standout talk was David Pech’s |
| 241 | +["From VMs to Cloud-Native PostgreSQL in Kubernetes: A Case Study of Migrating a Medium-Sized Application"](https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5829-from-vms-to-cloud-native-postgresql-in-kubernetes-a-case-study-of-migrating-a-medium-sized-application/). |
| 242 | +Despite being scheduled concurrently with Robert Haas’ session on incremental |
| 243 | +backups in PostgreSQL 17, Pech's talk highlighted practical insights into |
| 244 | +cloud-native adoption—a key theme resonating throughout the conference. |
| 245 | + |
| 246 | +## Articles |
| 247 | + |
| 248 | +On February 28, 2024, I launched my blog at [gabrielebartolini.it](http://gabrielebartolini.it), |
| 249 | +dedicated to running PostgreSQL on Kubernetes with CloudNativePG. The response |
| 250 | +surpassed my most optimistic expectations: in just 10 months, I published 25 |
| 251 | +articles, attracting tens of thousands of visits, according to Google |
| 252 | +Analytics. |
| 253 | + |
| 254 | +Here are some of the most popular posts: |
| 255 | + |
| 256 | +1. **[CNPG Recipe 5 - How to migrate your PostgreSQL database in Kubernetes with ~0 downtime from anywhere]({{< relref "../20240327-zero-cutover-migrations/index.md" >}})** |
| 257 | +2. **[CNPG Recipe 1 - Setting up your local playground in minutes]({{< relref "../20240303-recipe-local-setup/index.md" >}})** |
| 258 | +3. **[Maximizing Microservice Databases with Kubernetes, Postgres, and CloudNativePG]({{< relref "../20240228-maximizing-microservice-databases-with-k8s-postgres-cloudnativepg/index.md" >}})** |
| 259 | +4. **[CNPG Recipe 4 - Connecting to Your PostgreSQL Cluster with pgAdmin4]({{< relref "../20240322-pgadmin4/index.md" >}})** |
| 260 | +5. **[Kubernetes Just Turned Ten: Where Does PostgreSQL Stand?]({{< relref "../20240625-kubernetes-just-turned-10-where-does-postgresql-stand/index.md" >}})** |
| 261 | + |
| 262 | +I also want to spotlight an insightful article by Shaun Thomas, a former |
| 263 | +colleague at 2ndQuadrant and EDB, a friend and one of the foremost experts in |
| 264 | +PostgreSQL High Availability. In his piece, |
| 265 | +["Kubernetes Killed the High Availability Star"](https://bonesmoses.org/2024/pg-phriday-kubernetes-killed-the-high-availability-star/), |
| 266 | +Shaun draws on years of experience deploying enterprise-level PostgreSQL in |
| 267 | +bare metal and VM environments. He makes a compelling case for why Kubernetes |
| 268 | +is now the go-to platform for high-availability PostgreSQL deployments. |
| 269 | + |
| 270 | +Shaun’s article perfectly aligns with my ideas in |
| 271 | +["The Urge for ‘T-Shaped’ Profiles to Smooth the Challenges of Running Postgres in Kubernetes"]({{< relref "../20240812-tshaped/index.md" >}}). |
| 272 | +In this post, I discuss the vast opportunities for PostgreSQL DBAs to adapt and |
| 273 | +thrive in the Kubernetes era. Thank you, Shaun, for reinforcing this message! |
| 274 | + |
| 275 | +## Application to the CNCF Sandbox |
| 276 | + |
| 277 | +In September, [CloudNativePG submitted its second application to the CNCF Sandbox](https://github.com/cncf/sandbox/issues/128), |
| 278 | +marking an exciting step forward for the project. We are optimistic that it |
| 279 | +will be accepted this time, setting the stage for CloudNativePG to become the |
| 280 | +first PostgreSQL database project to embark on the |
| 281 | +[CNCF graduation process](https://www.cncf.io/projects/). |
| 282 | +If the Sandbox application is approved in January, our next milestone will be |
| 283 | +achieving incubation status, further cementing CloudNativePG’s role as a |
| 284 | +foundational solution in the cloud-native database ecosystem and advancing the |
| 285 | +democratisation of PostgreSQL access. |
| 286 | + |
| 287 | +## Reflections on 2024 |
| 288 | + |
| 289 | +On a personal note, 2024 has been a challenging year. In March, I faced the |
| 290 | +heartbreaking loss of my friend, mentor, and leader |
| 291 | +[Simon Riggs]({{< relref "../20240521-2ndquadrant-italy-16th-anniversary/index.md" >}}). |
| 292 | +Simon’s untimely passing left an unfillable void but also a lasting legacy for |
| 293 | +those of us who had the privilege of growing as PostgreSQL professionals and |
| 294 | +human beings under his guidance and example. His unwavering dedication to |
| 295 | +making PostgreSQL the best database in the world inspires me every day. |
| 296 | + |
| 297 | +Simon was a staunch advocate for PostgreSQL extensions, and it feels fitting to |
| 298 | +mention ongoing efforts in this area. One such initiative is the |
| 299 | +``extension_control_path`` patch, being developed for PostgreSQL 18 by Peter |
| 300 | +Eisentraut. This improvement will provide a foundation for running immutable, |
| 301 | +self-contained container images of PostgreSQL extensions, enabling them to be |
| 302 | +loaded at runtime in CloudNativePG. While this effort will hopefully come to |
| 303 | +fruition in 2025, it represents an exciting step forward for extension |
| 304 | +management and flexibility. David Wheeler from Tembo recapped the status of |
| 305 | +this work in his blog post ["RFC: Extension Packaging & Lookup"](https://justatheory.com/2024/11/rfc-extension-packaging-lookup/). |
| 306 | + |
| 307 | +## Looking Ahead |
| 308 | + |
| 309 | +After reflecting on the measurable achievements of the past year, I want to |
| 310 | +conclude with a more personal perspective. Having been part of the PostgreSQL |
| 311 | +and Kubernetes ecosystem for quite some time, it’s clear to me that something |
| 312 | +extraordinary is happening around CloudNativePG. A vibrant, dynamic community |
| 313 | +is emerging, and the convergence of PostgreSQL and Kubernetes is opening |
| 314 | +unprecedented opportunities for both new and seasoned PostgreSQL users. |
| 315 | + |
| 316 | +As we enter 2025, I’m optimistic about the future. CloudNativePG and the |
| 317 | +broader PostgreSQL-on-Kubernetes movement are poised for remarkable growth. |
| 318 | +Let’s keep building, innovating, and growing together. **Happy New Year!** |
| 319 | + |
| 320 | +--- |
| 321 | + |
| 322 | +Stay tuned for the upcoming recipes! For the latest updates, consider |
| 323 | +subscribing to my [LinkedIn](https://www.linkedin.com/in/gbartolini/) and |
| 324 | +[Twitter](https://twitter.com/_GBartolini_) channels. |
| 325 | + |
| 326 | +If you found this article informative, feel free to share it within your |
| 327 | +network on social media using the provided links below. Your support is |
| 328 | +immensely appreciated! |
| 329 | + |
| 330 | +_Cover Picture: [“Herd Of Elephants in African Bush“](https://www.needpix.com/photo/163800/)._ |
| 331 | + |
0 commit comments