The company behind the open-source Vitess database clustering system recently announced PlanetScale Managed Cloud, an option to run PlanetScale’s databases and management functionalities from existing public cloud accounts.
Earlier this year PlanetScale launched a shared tenancy model, where databases from different organizations share compute resources, with no single tenant managed option available for organizations with regulatory requirements and compliance constraints. James Cunningham, site reliability engineer at PlanetScale, explains the new approach:
PlanetScale Managed Cloud is a packaged data plane, built on Vitess and Kubernetes, that's deployed to an AWS sub-account that you own and we operate. It is available in any AWS region you choose, even ones we don't offer in the hosted product (...) You and your team will interact with your databases through app.planetscale.com, as you normally would with our hosted product, all without needing to change any pscale tooling or Continuous Integration workflows.
PlanetScale helps customers build cloud scalable MySQL databases that can handle large amounts of data without locking customers into a specific cloud provider and relying on a database clustering approach for horizontal scaling.
PlanetScale was founded in 2018 by Jiten Vaidya and Sugu Sougoumarane, the creators and maintainers of the Vitess open source project. A core component of YouTube's database infrastructure since 2011, Vitess is a database clustering system for horizontal scaling of MySQL through generalized sharding. Allowing users to continue to see a sharded database as if it was a single instance, Vitess is designed to address three main constraints of MySQL: manage large clusters, run natively in the cloud and provide NewSQL scalabilities.
Source: https://planetscale.com/blog/introducing-planetscale-managed-cloud
PlanetScale is not the only company offering managed NewSQL databases in public cloud environments. Other options are Yugabyte Cloud, a managed distributed SQL database built on PostgreSQL, and CockroachCloud supported by CockroachDB. Google has recently announced a PostgreSQL interface for Cloud Spanner, with experts suggesting PostgreSQL is becoming the standard for modern SQL databases. Sougoumarane presented the session "Massively Scaling MySQL Using Vitess" at the QCon 2019 conference where he explained the idea behind the open source project:
Vitesse is essentially a sharding middleware for currently MySQL, but it could take on other databases also. That'll help you scale it massively, like tens of thousands of nodes, millions of QPS, basically, essentially, indefinitely.
Brian Anglin, application security engineer at GitHub, explains the benefits and challenges of moving from a standard MySQL to Vitess and PlanetScale:
After seeing a ton of the best GitHub engineers end up at PlanetScale and seeing the process GitHub went through to issue simple migrations, we chose to use their service (...) One quirk of PlantScale, or more specifically Vitess, is the lack of support for foreign keys. Foreign Keys are fundamentally incompatible with online schema migrations, a fancy way of saying changing your database's schema without locking anything. No big deal, there are plenty of work arounds. However, one consequence of not having foreign keys is no automatic index creation.
In a separate article, GitHub documented how their relational databases were partitioned to handle scale. PlanetScale Managed Cloud is currently available for AWS, with support for Google Cloud Platform expected soon.