Which community Kubernetes deployment strategy should we choose for self-hosting?

cookiecutter-openedx-devops: Yes, this is a nice project by Lawrence McDaniel; it follows a lot of best practices and has a lot of batteries included. It is a completely different approach than the others, though it of course uses some of the same pieces like cert-manager and metrics-server. One big drawback to the cookiecutter approach is that as far as I know it’s a one-time setup that creates everything for you, but doesn’t have any mechanism for updating your stuff later on if the cookiecutter is improved. It also hasn’t been updated in 7 months so it doesn’t support Sumac or the new Studio features that are powered by Meilisearch.

Harmony: This is the main, community-developed toolkit for running Open edX on Kubernetes. If you want to run Open edX on Kubernetes, then I recommend you use Harmony one way or another. Both OpenCraft and eduNEXT currently use it in production (and Raccoon Gang and others have contributed to it). We also use it for things like the automated sandboxes that can be created for some PRs to Open edX.

Harmony focuses on everything that runs within the cluster; it doesn’t necessarily set up the cluster (VPC, K8s, S3, MySQL, MongoDB) as you pointed out. However, it does include complete Terraform code for setting up a cluster on AWS if you want to use Terraform to manage it. So if you use that optional part, it is a complete solution.

Grove is our own deployment management tool that is built around GitLab CI and Harmony. If you want to use GitLab to deploy stuff, want to monitor PRs and auto-create sandboxes, or want to deploy to both DigitalOcean and AWS, then Grove could be a nice choice for you and we welcome collaboration (it’s all open source). If you want to use something else like GitHub CI, GoCD, or just using Terraform to manage everything (which is totally reasonable) then Grove probably doesn’t have much to offer and you can just use Harmony itself and/or whatever infra management tool you’d like.

2 Likes