What is Azure Database for PostgreSQL?
We look at Microsoft's cloud implementation of the open source database
PostgreSQL is the most advanced open source database system and it's used by a number of organisations to run mission-critical workloads – including Microsoft's Azure cloud service.
However, the Azure Database for PostgreSQL is a slightly different story.
Known as a managed implementation of a service running on Azure cloud infrastructure, Azure Database for PostgreSQL allows customers to quickly develop applications using PostgreSQL, as well as the native tools, drivers, and libraries which are attached to it, without the need to take control of the instances.
Users can deploy it either as a Single Server or Hyperscale (Citus) which is currently in preview mode, pending full release.
Azure Database for PostgreSQL – Single Server
The Single Server model is the primary deployment method for PostgreSQL databases on Azure. The configuration strongly resembles PostgreSQL and in its on-premise version, users can mockup a single PostgreSQL server as the main host for multiple databases.
What is more, it is also a fully managed service which offers a 99.99% performance guarantee and includes built-in back as well as numerous encryption features.
Similarly to the majority of the cloud tools offered by Microsoft, the configuration can be done in the Azure portal as well as the Azure CLI. Moreover, the single server option allows developers to host a single database per server, meaning that they are able to maximise resource usage or even share these resources with multiple databases.
Unfortunately to some, Azure Database for PostgreSQL admins do not have full superuser permissions. The user who holds the highest-privilege role available in the service is the azure_pg_admin. The superuser attributes are assigned to the azure_superuser, a role belonging to the managed service.
Service users are not able to access this role or its associated privileges
Azure Database for PostgreSQL - Hyperscale (Citus) (preview)
If you have a database which is over 100GB and requires maximum performance, you might want to consider Azure's newest PostgreSQL deployment model. Also known as the 'Hyperscale (Citus) (preview)' hosting type, this method uses technology from Citus Data, a company that Microsoft acquired in January 2019.
Hyperscale (Citus) uses database sharding technology, which splits data into smaller component parts and distributes them across a large number of compute nodes which are grouped together into a cluster. This cluster offers more storage capacity and CPU utilisation than a standard single-server PostgreSQL deployment would be able to.
Big companies like Facebook and Google use database sharding within their data centres, but one of the advantages of Hyperscale (Citus) is that sharding is handled automatically, without the tenant application needing to be taught how to do it. The system parallelises SQL queries and other operations across available servers, with a central 'coordinator node' handling query routing, aggregation and planning, and 'worker nodes' storing data.
When the coordinator receives a request from the application, it routes the query to the relevant worker node(s), depending on where the data in question is stored. Caveat emptor, however; as Hyperscale (Citus) is in public preview, it does not offer an SLA at the time of writing.
The single server version of Azure Database for PostgreSQL comes with different pricing tiers, namely ‘Basic’, ‘General Purpose’ and ‘Memory Optimised’.
Each tier sets out the various provisions that a customer can expect. Each tier has compute provisioned in virtual cores, known as ‘vCores’ in the documentation, and each uses Gen 5 CPUs based on Intel’s Broadwell 2.3GHz processors.
However, the number of vCores, and the memory provisioned, will vary depending on the tier. For example, with Basic, you can rent either 1 or 2 vCores, each provided with 2GB of memory, for £0.026 per hour and £0.051 per hour respectively - although this increases all the way up to 64 vCores, with 320GB of memory, for £4.179 per hour.
You can tweak certain elements of your servers' configuration after they're created, such as increasing optimised memory - but there are a number of additional factors which will influence your monthly bill. This includes the amount of compute capacity, the number of vCores, amount of storage and backup retention period, as well as switching between the general purpose and memory optimised pricing tiers.
Whether you choose to pay as you go or opt for yearly payment will also affect the final price, although yearly discounts are not available as part of the Basic tier.
You can see a full breakdown of the prices below. The number of databases per server has no direct effect on prices.
Understanding the tiers
|Pricing tier||Basic||General Purpose||Memory Optimised|
|Compute generation||Gen 5||Gen 5||Gen 5|
|vCores||1, 2||2, 4, 8, 16, 32, 64||2, 4, 8, 16, 32|
|Memory per vCore||2GB||10GB||20GB|
|Storage capacity||Up to 1TB||Up to 16TB||Up to 16TB|
|Storage type||Azure Standard Storage||Azure Premium Storage||Azure Premium Storage|
Each tier provides a free back up of up to 100% of your provisioned server storage. You can increase your backup retention period, however, this will increase the amount of backup storage consumed by the server, and so you will be charged extra.
The entry-level tier is primarily designed for low-priority workloads that don't require a great deal of performance. This can include test/dev environments or intermittently-accessed applications.
As the name suggests, the general purpose tier is where most workloads will naturally fall, and encompasses most enterprise PostgreSQL use-cases. It offers a balance of performance and economy.
The highest tier is reserved for applications like financial transaction databases or analytics engines where low latency is paramount. For this reason, it makes heavy use of in-memory computing.
While the Basic tier does not provide an IOPS guarantee, other tiers have IOPS scale with the provisioned storage size in a 3:1 ratio.
Benefits of Azure Database for PostgreSQL
The database cloud service has a number of advantages.
Built-in high availability: The service provides built-in high availability with no additional setup, configuration or extra cost. This means there is no need to set up further VMs and configure replication to guarantee high availability for a PostgreSQL database.
Security: All data including backups are encrypted on disk by default. Also, the service has SSL enabled by default, so all data in-transit is encrypted.
Scalability: The service allows users to scale compute on the fly without application downtime in one step.
Automated backups: Users do not need to independently manage storage for backups. The service offers up to 35 days retention for automated backup.
BIOS security: The next frontier for endpoint protection
Today’s threats upend traditional security measuresDownload now
The role of modern storage in a multi-cloud future
Research exploring the impact of modern storage in defining cloud successDownload now
Enterprise data protection: A four-step plan
An interactive buyers’ guide and checklistDownload now
The total economic impact of Adobe Sign
Cost savings and business benefits enabled by Adobe SignDownload now