3.1.1.2. Design for Azure Database for MySQL, PostgreSQL, and MariaDB
š” First Principle: Providing managed open-source databases as a service enables organizations to leverage familiar technologies and ecosystems while offloading the operational burden of infrastructure management, patching, and backups.
Scenario: You are designing the data layer for a new web application built on WordPress (which uses MySQL). Your development team is highly familiar with MySQL, and you want to leverage managed Azure services while minimizing the need for refactoring the application.
Azure Database for MySQL, PostgreSQL, and MariaDB are fully managed relational database services for open-source database engines.
Key Design Considerations:
- Scalability:
- Flexible Server and Single Server deployment models support vertical scaling (changing VM size) and horizontal scaling (with read replicas).
- Flexible Server enables zone-redundant high availability and custom maintenance windows.
- High Availability:
- Automatic backups, point-in-time restore, and geo-redundant backup options ensure data protection and disaster recovery.
- Security:
- VNet integration (Virtual Network) and Private Link, SSL/TLS encryption for data in transit, and Azure AD authentication secure data and access.
- Performance:
- Query performance insights, slow query logs, and monitoring tools support optimization.
- Open-source engines allow custom extensions and configurations.
ā ļø Common Pitfall: Choosing the older "Single Server" deployment model for new projects. "Flexible Server" is the recommended option as it provides better performance, more control over configuration, zone-redundant high availability, and custom maintenance windows.
Key Trade-Offs:
- Open-Source Compatibility vs. Azure-Native Features: These services provide high compatibility with their open-source counterparts, making migrations easier. However, they may not have all the advanced, deeply integrated features of a proprietary service like Azure SQL Database (e.g., Hyperscale).
Reflection Question: How does choosing Azure Database for MySQL Flexible Server (or PostgreSQL/MariaDB) fundamentally enable organizations to leverage managed open-source relational databases, balancing open-source compatibility and familiar tooling with cloud benefits like scalability and high availability, making it suitable for cloud-native and migration scenarios?