4 min read

What I learned in a year of Postgres – with Azure Database for PostgreSQL

Postgres Azure logoIt’s our birthday! Azure Database for PostgreSQL became generally available exactly a year ago. From public preview to today, we’ve gone from mostly getting the “Postgres + Microsoft???” question to it not being as much of a surprise anymore. There’s an exciting road ahead, but an anniversary is a great time to look back and reflect on what we’ve learned over the past year.

Postgres is truly global

I’ve learned this both from the swathe of Postgres conferences hosted all over the world and from our customers. Our team has visited Postgres users in Belgium, Brazil, Japan, India, Australia, Russia, France, Germany, and more. We’re also looking forward to extending our worldwide reach with deployments to the new South Africa Azure datacenter in the future.

If you’re gaining Postgres skills right now, the global aspect is great for you. It opens up job opportunities around the world. Also, the distributed demand should give you confidence about the longevity Postgres is likely to have.

Life is better with help from friends like Citus

If you haven’t yet heard, Citus Data is now part of the Microsoft family. We believe in the future of Postgres and admire its extensibility model and the incredible scenarios it enables, like Citus Data.

Eight years ago, the Citus team set an ambitious goal: they were going to create a horizontally scalable relational database that is resilient and worry-free. And, they set out to do that with Postgres. Today Citus is as an extension to Postgres, – not a fork – so you can apply your Postgres skills here too. The Citus team itself has made many contributions to enhance the Postgres ecosystem, from key extensions like WAL-E and pgloader to blogs that showcase Postgres’s strengths. It’s been a pleasure getting to know the Citus team better and we’ll be learning a lot from each other so stay tuned for what comes next.

Our customers aren’t necessarily Postgres experts

We went into general availability with an assumption that most of our customers would have a few years of experience with Postgres. That didn’t play out the way we expected. Some of the companies now using Postgres in Azure have never used Postgres on-premises or in another cloud. In some cases, the company’s database expert had to be distributed across multiple RDBMSs, and Postgres may not be their primary SQL. Like I said, interest in Postgres is growing, and there are new players in the game from every industry.

How does that affect how we develop Azure Postgres? Well, we want to make it a great place for everyone using Postgres – you don’t have to be an expert. We want to keep the Postgres fundamentals the same, that way you can read great Postgres blogs and easily apply your knowledge here.

There’s also room for us to make more software and docs that help people be more efficient working with Postgres, from SQL novices to people who are experts in other SQL products and now have Postgres in their workloads, and everyone in between.

The client you use makes a difference

As you interact with Postgres, the client you use matters – it affects your experience. We recently previewed support for Postgres in Azure Data Studio, our cross-platform data editor. This support extends to Postgres anywhere – on-premises, on VMs, and from other managed cloud providers, not just Azure Postgres. Azure Data Studio has a lot of motifs and frameworks that are similar to the experience in modern IDEs. We also carried similar capabilities for PostgreSQL into VS Code, creating an extension that you can use right beside your application code. The idea is to make the development experience feel familiar and intuitive, so that overall, we reduce any barriers to entry for people using Postgres.

Time matters when troubleshooting query performance

For you, for us, for anyone who cares about how a system performs, timing is important. If someone comes to tell you that they experienced an issue with your application, you want to be able to quickly understand the cause. You want to know what else was going on at that time. Ideally your statistics table would tell you not only the current state, but also “what was happening at 12:15 on Monday?” It’d be helpful to see how a particular query normally trends in performance compared to what it was doing at 12:15. So, we made Query Store in Azure Postgres to enable those scenarios.

Again, time [-series] matters

Our feedback page tracks how many requests we receive for a specific feature. Our reigning champion is TimescaleDB. (To be fair, there is probably an aspect of time-since-request-created that goes into number of votes). The first votes for this are from early in our preview period and demand has been consistently growing to where it is today.

This makes sense. With storage and compute systems able to handle larger workloads, as developers we’re getting more granular about the data we analyze, as well as we’re creating new use cases and products. TimescaleDB in Azure Database for PostgreSQL gets to be a part of that roadmap.

People love socks

Or more broadly expressed, people love getting the most unusual-but-still-useful swag from product fairs. At PostgresConf 2018 we knew we were the newbies and may not get a lot of booth traffic. But once people heard about our socks… well, we got to meet a lot more people. A word of advice when you’re planning your next conference booth.

We can do more

I’ve been a Product Manager for Azure Database for PostgreSQL for more than a year now. It’s been a great experience being exposed to the vitality of the Postgres community and the database that’s at the heart of it all. I know there’s more we can do to meet our goal of giving you an awesome home for your Postgres workloads. Keep the feedback coming and please continue engaging us. We’re listening and your feedback is essential to how we move forward.

Follow Rachel @rachel_agy