Theoretical question:
Is it possible for a very large scale service to use a major public cloud managed database service?
For example, a service with a scale of Netflix and a service like Amazon Aurora.
If not, which solutions are available for very larges scale services?
2 Answers
Yes, it is certainly possible, but it entirely depends on the architectural design of the entire system. Separating application services into manageable components (i.e. microservices) is one approach to this. While Netflix as a whole is one application in terms of the user experience, it is comprised of many applications/services that provide a small fraction of the functionality needed to run Netflix as a whole.
In terms of a database, the same principal can be applied. Netflix doesn't manage one database for the entire application, each component utilizes it's own scalable database service.
-
What I mean is that the services like AWS Aurora are limited. Aurora limits replicas to 15. You can use larger instance sizes but there's still the replica limit.– jwalkerFeb 3, 2021 at 13:24
-
Yes, that is correct about about Aurora. What is your question then? Or how does that relate to the scale of Netflix and Aurora?– Preston Martin ♦Feb 3, 2021 at 15:14
-
Are you asking how a service with higher throughput than what Aurora can handle can use Aurora?– Preston Martin ♦Feb 3, 2021 at 15:23
-
I'm asking if you can have a very large scale service with a managed database service– jwalkerFeb 10, 2021 at 12:12
My conclusion after additional research and Preston Martin answer:
It depends.
If the workloads doesn't require more resources than the maximum supported by the service:
maximum horizonal and vertical (instance type) scale of the servers.
If it does, the data should be distributed across multiple managed database clusters.
If that doesn't meet the requirements, this solution should help:
Vitess