6.5 KiB
Vitess Graduation Proposal
Since joining the CNCF in February 2018 as an incubation project, Vitess has built a healthy ecosystem of maintainers and production adoptions.
On behalf of the maintainers team, we believe Vitess is ready for graduation stage and meets the v1.2 criteria. As the criteria has evolved since February 2018, we include also answers for incubation criteria and address due dilligence questions in a separate Google Docs document.
CNCF Incubation Criteria
Production usage by three independent users
Vitess can be classified as both a middleware and an orchestration system for managing sharded MySQL systems. It depends on a MySQL-like database (most deployments currently use MySQL 5.7) and a topology server (etcd is now the default, but ZooKeeper and Consul are also supported).
Adoption depends on a high degree of trust from users, since Vitess is responsible for the integrity and durability of canonical data, and connectivity from applications to the database depend on Vitess being available. Vitess unavailability generally causes a production outage for most users.
Several Vitess users have been featured in CNCF case studies:
- JD.com was recently featured.
- Square uses Vitess for their Cash App
- Case studies on Nozzle and Slack will be published shortly.
In addition to these case studies, Slack has estimated that Vitess powers 40%+ of their database servers, with the goal of migrating remaining databases by mid 2020.
Have a healthy number of committers
The Vitess maintainers team team currently consists of 14 members, with a healthy distribution of corporations represented (Hubspot, Pinterest, Nozzle, PlanetScale, Slack, Square).
Over the last 12 months, 130 distinct users have authored pull requests.
Demonstrate a substantial ongoing flow of commits and merged contributions
Vitess maintains a healthy ongoing flow of commits. In late 2018, documentation moved from the primary repository to vitessio/vitess.
A clear versioning scheme
Vitess 3.0 currently uses Semantic Versioning. Similar to other database products semver has been difficult to follow. Following the release of Vitess 4.0 in November 2019, Vitess 5.0 will be released in February 2020 under the Vitess Release Cycle.
CNCF Graduation Criteria
Committers from at least two organizations.
The devstats from the preceding 2 years show contributions from an average of 14 organizations.
Committers by company for the preceding 12 months lists the top ten organizations as:
- PlanetScale
- Square
- Slack
- HubSpot
- Nozzle
- Independent
- SharpSpring
- BoCloud
Have achieved and maintained a Core Infrastructure Initiative Best Practices Badge.
We have achieved passing level criteria for CII Best Practices. A badge is displayed in the primary repository's README.md.
Have completed an independent and third party security audit
A third-party security audit funded by the CNCF was performed in February 2019. The full report is available online. Only minor issues were discovered by the Cure53 team. To emphasize the first few sentences from the report's conclusion:
The results from this Cure53 assessment funded by CNCF / The Linux Foundation certify that the Vitess database scaler is secure and robust. This very good outcome is achieved by limiting the attack surface, taking appropriate care of user-supplied input with security-driven best practices, as well as - to a certain extent - the usage of the Go language ecosystem. A team of five Cure53 testers investigated the software system during a budgeted period of 18 days in February 2019.
Adopt the CNCF Code of Conduct.
We have adopted the CNCF Code of Conduct. A link is provided in the primary repository.
Explicitly define a project governance and committer process.
The Vitess project governance is defined in the primary repository. To draw attention to key details:
- Contributors can propose pull requests, which are reviewed and approved by maintainers.
- New maintainers are nominated by any existing maintainer. There are no special requirements, other than to have shown a willingness and ability to participate in the project as a team player. Maintainers cannot approve their own PRs.
- A Project Management Committee (PMC) of 5 members oversees the process, and is responsible for ensuring the Guiding Principles are followed. Sugu Sougoumarane is the founding and current PMC chair.
Have a public list of project adopters for at least the primary repository.
The primary repository lists key project adopters.
A list of logos is also prominently displayed on the Vitess.io homepage under "Who uses Vitess". A link to instructions on how to add a user logo are included.
Receive a supermajority vote from the TOC to move to graduation stage.
We believe this document prepares us for a TOC vote on the graduation readiness of Vitess.