Testing times: Microsoft gets PostgreSQL on Azure a day after GA
High end workloads with Hyperscale (Citus)
Microsoft has pushed PostgreSQL 14 into General Availability on Azure Hyperscale (Citus) regions and the company, famed for the occasional outage of its cloud and desktop platforms, has given an insight into what was involved.
PostgreSQL 14 turned up at the end of the last week packed with features (although perhaps lacking in any singularly outstanding new toy) and tweaks aimed at boosting performance on high-end systems.
Barely a day later, Microsoft was trumpeting the database's arrival in its cloud. Kind of – only Hyperscale (Citus) regions need apply for now. Other regions and Azure Database for PostgreSQL will follow over the next few months.
Still, as Microsoft Postgres engineer lead and CTO of Citus Data, Ozgun Erdogan, modestly said, "To our knowledge, this is the first time a major cloud provider has announced GA for a new Postgres major version on their platform one day after the official release."
Noting that Microsoft develops and maintains a number of open source extensions, including Citus, Erdogan explained the process by which extensions are updated as versions of PostgreSQL are released. Breaking changes must be addressed, new features added (if applicable) and, of course, any failing tests in the inevitable pipeline must be fixed.
The "best practice" employed in order to churn out the extension so quickly is interesting from a development standpoint. Unit tests come first, and Erdogan boasted of the 100 per cent coverage achieved for the control plane, as well as the two-minute run time for those tests.
- Open-source veteran PostgreSQL emits release 14: Tweaked, scalable, and ready to get heavy
- Microsoft sinks standalone Hyper-V Server, wants you using Azure Stack HCI for VM-wrangling
- Azure services fall over in Europe, Microsoft works on fix
- Uptime funk: Microsoft has lifted availability of Azure Key Vault to 99.99%
However, while Unit Tests are all well and good, many of the calls have to be mocked – ie, software testers substitute a fake version of the service to stand in for the real one – which makes for quick feedback but, as Erdogan admitted, "doesn't provide a good end-to-end view." End-to-end testing therefore follows to check how the various components are interacting before deployment is considered.
Deployment to Azure is interesting in itself. A third round of tests is involved, with the payload first hitting a staging environment, then to the Azure Early Update Access Program regions, before finally hitting the rest of the production regions. More tests are then run during what Erdogan called the "bake off" period between deployments – including Citus provisioning, upgrades, restores and so on.
The seemingly cautious approach is highly automated: "all our team had to do was click a button - and the deployment was triggered," boasted Erdogan. And a new version of PostgreSQL became available.
Azure users reeling from repeated outages over the last year – and a change that left Azure Active Directory broken earlier this year as the company scrambled to roll back a change to its authentication system – would be forgiven for wondering why the wunder-tech that gets PostgreSQL updates up and running so quickly does not feature in all corners of Microsoft's cloud. ®