Tech Evaluation of supporting NFS in cloud native deployments as an alternative to object storage for Pages
Problem to solve
Support for object storage in Pages is currently looking to arrive early FY22.
This is impacting a few deployments to our gitlab
helm chart:
- GitLab.com's migration to Kubernetes (multiple services depend upon Pages - including web and api services)
- A very large opportunity who requires Pages
One way to potentially solve this, is to introduce shared storage into our Kubernetes deployments.
Evaluation
-
Discuss feasibility of this idea with groupdistribution, infrastructure, and Quality -
Ask large opportunity if they would be open to / capable of utilizing shared storage in their Kubernetes cluster -
Implement Pages in the Helm chart and cloud native images (does not look like this is present today) - gitlab-org/charts/gitlab#37 (moved) -
Add support for a shared ReadWriteMany
PV across needed services (Pages, Sidekiq, API, and Web)
-
-
Run a 50k architecture load test on a cloud native deployment with Pages (will require utilizing something like Rook, Portworx, etc. to provide ReadWriteMany support) -
Strongly consider utilizing this architecture on GitLab.com, so we can move forward with k8s migration/dogfooding, as well as confirm this Pages architecture works at scale before recommending to our customers -
Launch official support for Pages in Helm charts using shared storage