Managed or partially managed?

Managed or partially managed?

Today I want to tell my thoughts about classification in managed services, especially on the example of databases.

In what sense do we usually understand the word "managed" in descriptions and news of cloud providers like AWS, GCP, Azure? It's often something like: "You don't need to care about scaling, patching versions, making and restoring backups and so on. Just pay and use the selected databases as you want".

But I think, it's not completely true and sometimes it is partially a marketing description. In my opinion, true classification of managed databases consists of the following three types:

1) Not-managed (on-premise). This is the old classic approach - you install a database on your local server or virtual machine. Everything - selecting a server, scaling, calculating load, making and restoring backups, solving problems with performance and so on is in your hands.

2) Partially managed. Using databases from this category saves you from some problems like making backups, patching the database and other. But some problems are still on your side: selecting the type of node instance before start a database, type of storage, IOPS, increasing numbers of replicas (horizontal scaling) and so on. I put AWS RDS, Aurora, ElastiCache with custom setup into this category instead of calling it "fully-managed".

3) Fully managed. Using fully managed databases you really don't care of "how many nodes do I need?", "how powerful my nodes must be?", "how can I make a backup?", "how many vCPU and vRAM do I need?". You can really put in your database 10 MB of data and after one minute - one terabyte. Or read today 10 GB/s, tomorrow - only 10 MB/s. You don't need to select t2.micro or x2.large or other instance type for your nodes. Some examples of the fully managed databases: AWS DynamoDB, AWS ElastiCache serverless, MongoDB serverless, CockroachDB serverless, possibly Google BigTable.

So, I think using the above classification will make it easier to select a database and configuration that best satisfies your needs.