What is PostgreSQL, and why do developers love it?

(Want your cloud apps managed? Reach out to Canonical now. You can also watch our webinar on why you should get your apps managed, and get your application reviewed by our app engineers.)

PostgreSQL solves the problem of extensibility, in complex cloud environments. This statement is often thrown around, but why is it true? Should next-generation cloud-infrastructure still use it? Is it still relevant in an era of big data?

So far, we’ve looked at the benefits and challenges of Kafka and Cassandra. Let’s look at the main benefits, challenges and use cases of it, and the easiest way to get PostgreSQL deployed and running in production.

What is PostgreSQL?

PostgreSQL is a relational database. It stores data points in rows, with columns as different data attributes. A table stores multiple related rows. The relational database is the most common type of database in use. It differentiates itself with a focus on integrations and extensibility. It works with a lot of other technologies and conforms to various database standards, that ensure it is extensible.

Let’s dig deeper into why it is still relevant today, in a time of big-data, time-series and unstructured data.

Why use PostgreSQL – 2 ways it transforms clouds

The reliable database

Databases need to be in a known state – either a change was made, or was not made. Otherwise, data integrity and accuracy is compromised. The problem is, databases can be slow to update, especially if the backing store is older, cheaper storage. Slow means there is more time for something to go wrong and break accuracy and integrity. PostgreSQL uses two killer features to ensure reliability. 

PostgreSQL – the database loved by developers
Photo by Alexander Sinn on Unsplash

First, there is write-ahead-logging. In brief, it records changes to a log first – usually a fast cache. Once in the log, the change to the database is as good as done. PostgreSQL writes the changes to the actual database at a later point. This results in improved reliability because if anything happens to the database – a fault or shutdown – the log can be used to get the correct changes.

Second, it replicates databases with ease, and with native support of asynchronous and synchronous replication. This lets users have a highly available database, where a server going down does not mean data loss. PostgreSQL achieves this using the log we mentioned above – the log is distributed to other nodes so that other nodes remember the change.

The extensible database

There are two areas that PostgreSQL shines when users need to configure and control their database. First, it is compliant to a high degree, with SQL standards. This increases it’s interoperability with other applications because it works in known and agreed – or standardised – ways.

Second, PostgreSQL gives users control over the metadata. Referring to the PostgreSQL docs, by first containing more metadata about the database and second, letting users modify that data as if it was simply another database table, it allows users close control on how the database functions.

How is PostgreSQL used?

Databases like PostgreSQL have more use cases than can be reasonably spoken about. After all, it’s a foundational technology that by design, is as generic as possible – you don’t want or need an opinionated database. 

PostgreSQL has one of the fastest-growing communities because it provides the expected benefits of traditional, SQL, databases. On top, it gives access to advanced features, like awareness of NoSQL techniques and management of large size databases. 

Challenges of using PostgreSQL

Despite the benefits, there are challenges. First, the ecosystem and community around it is growing, fast, but lags behind other popular SQL database managers such as MySQL. This can mean fewer third-party apps, tools and libraries that let database admins do what they need to. A smaller community also means fewer database admins that specialise in it.

Second, as PostgreSQL is open-source, there may be many small pockets of it within an organisation as different teams organically start to use it. The problem here is one of central control – the lack of it, as there is no single point of knowledge for all instances of PostgreSQL. Further, there is redundancy and duplication of work, as different teams may be solving the same problem with it, independently.

These two challenges culminate in developers taking the time and focus away from customers and using apps, and onto managing apps.

Most of all, a challenge with PostgreSQL is its limitations. It’s not often an organisation only needs a relational database. The design decisions that make Postgres so compelling, also limit it in other use cases. Most projects and businesses will need multiple databases to meet conflicting requirements. 

Are these challenges a deal-breaker? Let’s look at a Canonical product that aims to solve this.

Optimised PostgreSQL, managed for you

In the spring, we released Managed Apps, and this included PostgreSQL. With Canonical’s managing your PostgreSQL, you get the following benefits.

  • PostgreSQL experts manage your database servers. You do not have to go through the delay and difficulties of hiring DevOps engineers who know how to stand up a high availability cluster.
  • Our app managers can cut across organisational lines, managing all clusters and bringing you back to a single view of your data.
  • Our team does the heavy operational lifting so you can focus on using apps.
  • We will manage PostgreSQL on any conformant Kubernetes and virtually any cloud environment. This means you get to bring your cloud, and we handle the rest.

Summary

PostgreSQL offers a general-purpose database, that is the backbone to many key technologies and apps we use each day. To optimise your deployment, improve quality and economics, speak to our PostgreSQL engineers today

To learn more about Canonical’s Managed Apps offerings, check out our webinar on Managed Apps and Apache Kafka in production.

Ubuntu cloud

Ubuntu offers all the training, software infrastructure, tools, services and support you need for your public and private clouds.

Newsletter signup

Select topics you’re
interested in

In submitting this form, I confirm that I have read and agree to Canonical’s Privacy Notice and Privacy Policy.

Related posts

A ‘Connected’ Bank – The power of data and analytics

The next 10 years will redefine banking. What will differentiate top banks from their competitors? Data and derived insights. Banks across the globe have been...

NoSQL databases: what is MongoDB and its use cases?

Databases like MongoDB, a NoSQL document database, are commonly used in environments where flexibility is required with big, unstructured data with...

What can you do with MicroK8s?

MicroK8s was first released in late 2018 and has seen significant adoption rates from developers and enterprises alike ever since. Taking increasing demand...