Wednesday, 13 December 2017

Announcing Azure Database for PostgreSQL Preview

PostgreSQL is one of the fastest growing open source relational database engines that is being widely embraced by developers. The Azure cloud is a first-class platform for open source technologies that allow you to bring the tools you love and skills you already have, and deploy any applications. Given Microsoft’s love for open source and the goal to provide developers with choices, I am happy to share with you that earlier today, at the Microsoft Build 2017 conference in Seattle, Scott Guthrie announced the preview for managed database service for PostgreSQL, Azure Database for PostgreSQL.

Azure Database, Microsoft Guides, Microsoft Certifications

The service uses the community edition of PostgreSQL and provides app developers with expanded choices to use their favorite database on Azure, without the complexity of managing and administering the databases. In this blog, I will give you a deeper overview of Azure Database for PostgreSQL service and discuss what this announcement means to app developers and the thinking that went behind delivering value that we believe is unique in the industry.

What is Azure Database for PostgreSQL?


Azure Database for PostgreSQL is a managed database service that makes it easier to build apps without the management and administration burden. The service uses community edition of PostgreSQL and seamlessly works with native tools, drivers and libraries. At the start of preview, we are offering support for PostgreSQL versions 9.5 and 9.6.

Many managed database service offerings out there from different cloud providers promise to reduce database management complexity, but each one follows a different approach which forces customers to make several tradeoffs. We believe our approach to managed database services and particularly Azure Database for PostgreSQL is unique in the industry and one that addresses the core pain points of an app developer and much more. I will be elaborating more on this below – keep reading!

PostgreSQL database for App developers


Most app developers love doing what they do – i.e., build great apps rapidly that become popular and widely adopted. One of the complex components of any app development process is planning for database infrastructure and then the ongoing care and feeding of the database. PostgreSQL, over the years has grown to become a popular open source relational database amongst developers, thanks to it being highly robust, customizable and extendable along with rich database features and technologies. However, while app developers love the features PostgreSQL has to offer, many do not enjoy the complexity of managing the infrastructure. A key benefit of managed database service is that the developer does not need to worry about managing the operating system and database patching, perform manual database backups, orchestrate recovery, etc. Most managed services provide these basic capabilities freeing developers from spending their vital resources on those tasks.

When we looked at offering managed PostgreSQL service for developers, we of course wanted to address those basic managed service capabilities such as automated patching, backup and restore capability, monitoring, alerting, logging, etc. However, talking to customers we learnt that there is a unique opportunity for Microsoft to do something more and better than other cloud providers, specifically in areas such as reliability, security and elasticity and making it simple and worry free for developers. We have therefore in many ways redefined the value creation with managed database service.

Benefits of Azure Database for PostgreSQL


As I dig deeper into explaining the benefits of the managed PostgreSQL service, I would like to highlight that our primary focus for the service was attention to fundamentals, such as availability, elasticity and security besides making sure that native tools, extensions, drivers and libraries work seamlessly. This is exactly what we have done in this installment of the Azure Database for PostgreSQL. Let me elaborate further on each of these topics.

Built-in high availability


Azure Database for PostgreSQL offers built-in high availability feature out-of-the-box. You got it right – no additional setup, configuration or extra costs! This means as a developer you do not have to setup additional VMs and configure replication to ensure high availability for your PostgreSQL database. While in preview, the service is not backed up with a specific SLA. However, at general availability, all databases will have an SLA of 99.99%.

Security bolted-in


The service has security baked in. What does this mean? All data including backups are encrypted on disk by default. No additional switch or planning required to secure your database! Furthermore, the service has SSL enabled by default which makes all data in-transit encrypted. Optionally, if your client application does not support SSL connectivity, we created an option to disable it as well. We are committed to working broadly across the open source communities to ensure these security gaps are addressed over time.

Scale on the fly


Elasticity is one of the foundational attribute of the cloud. It is hard for any developer to figure out how much compute and storage is required at the time of deploying your app, since who can predict how popular the app will become and pre-plan for peaks and valleys? While most cloud service providers allow you to scale the instance sizes, you are out of luck in terms of impacting availability of your app unless you have another VM with replication for which you have to pay for additional replicas. Further it also means additional monitoring, setting alerts and ensuring that the secondary replica is consistent with the primary. The Azure Database for PostgreSQL allows you to scale compute on the fly without application downtime in one step. The following is a simple Azure CLI command that you will use to scale PostgreSQL database servers up or down.

Azure Database, Microsoft Guides, Microsoft Certifications

Automated backups and point-in-time restore


Most managed database services provide automated backup with ability to point-in-time restore, in case for oops recovery. The differentiating factor for our service is that the user does not need to separately manage storage for backups. The service provides up to 35 days of retention for automated backups to be able to recover. This means, developers are now free from having to monitor, manage capacity and configure alerts on backup storage capacity. You will never have to worry about managing backups ever again! These backups are geo-redundantly backed up as well.

Azure Database, Microsoft Guides, Microsoft Certifications

Monitoring, alerting and server logs


The service provides monitoring on metrics via integration with Azure Monitor service for up to 30 days, define alerting on those metrics, and configure server log retention period up to 7 days. In addition, users have the option to customize log verbosity parameter so you can debug easily when developing and then tune it appropriately for production use. Further these metrics are integrated with many 3rd party tools. You get all of this for no additional costs!

Azure Database, Microsoft Guides, Microsoft Certifications

Configurability and Extensibility


Azure Database for PostgreSQL allows you to configure database server parameters. This provides the flexibility to customize based on your application requirements. The service, at preview currently supports over 18 popular PostgreSQL extensions (including PostGIS) with a roadmap to enable more based on user feedback.

Integrated


Azure Database for PostgreSQL is tightly integrated with Azure Web Apps. We have enabled an integrated experience to deploy Azure Web App with managed PostgreSQL making app development simple and easy!

Azure Database, Microsoft Guides, Microsoft Certifications

All-inclusive pricing


The above summarizes the major areas where we focused the most to provide unique managed service value with PostgreSQL. Further we made database patching automatic, which means developers do not have to worry about managing this. We also made sure the business model and pricing is as simple as it can get. All the value I mentioned above is included in one inclusive price, which means no surprises on your bill! You choose a starting performance tier based on compute and storage requirements and then flexibly scale compute and storage independently.

Seamless migration with customer evidence


Azure Database for PostgreSQL also allows seamless migration from on-premise or any cloud service to managed PostgreSQL service on Azure. Developers can accomplish this using native tools such as pg_dump and pg_restore. Further, whether you want to develop using Python, node.js, Java, PHP or any programming language of your choice, use your favorite open source frameworks such as Djnago, Flask, etc., the service will work seamlessly.

Related Posts

0 comments:

Post a Comment