Compared to the self-host option, teams pay 30% ~ 100% markup for the managed database service, hoping it can take care of the operational burdens. While managed database service does reduce the operational cost, it's not enough. Let's illustrate this by a simple example.
How to revert a single-row update
All mainstream managed database services provide disaster recovery capability. Take AWS RDS as an example, it offers both normal restore and PITR (Point-in-time Restores).
However, neither is suitable to revert a single-row update. Because it would revert not only that change, but also other valid changes.
Managed database service alone is not enough
Managed database service takes care of the infrastructure challenges:
- Provisioning
- Scaling
- Disaster recovery
- Monitoring
On the other hand, developers still face a lot of workflow challenges:
-
How to propagate the change from dev, test to staging, prod.
-
How to roll back changes.
-
How to spot and tune the slow query.
-
How to copy the production data to the testing environment for development.
Additionally, security engineers will emphasize the necessity of sanitizing data in advance. They also require assurance that all data access is properly controlled and meticulously recorded to maintain security and compliance.
How to address workflow challenges
There are 3 angels to tackle the workflow challenges.
-
Managed database service
- For MySQL, there is PlanetScale offering a full suite of built-in capabilities.
- For Postgres, Neon provides instant branching.
-
Application platform
Supabase also debuted a branching feature.
-
Tooling
If teams want to avoid vendor lock-in, they would adopt database tools working with a variety of vanilla database systems.
-
To coordinate database changes, Jira is a typical option with apparent drawbacks.
-
To sanitize production data and synthesize data for development. There are Snaplet and Neosync.
-
Summary
The database development lifecycle involves multiple key roles, including developers, DBAs, security engineers, and platform engineers. Traditional managed database services primarily address infrastructure needs, leaving many workflow challenges unresolved. These challenges must be addressed either through enhanced capabilities of the managed database services, application platforms, or third-party tools to ensure a comprehensive solution.