openedx / wg-devops

Issue repository for the DevOps Working Group
1 stars 2 forks source link

Can we run edx-platform directly in Ubuntu? #39

Open kdmccormick opened 2 years ago

kdmccormick commented 2 years ago

Context

In our conversations about Devstack & Tutor, there's been an unstated assumption that containerization (e.g., Docker) is the basis for an ideal development environment.

For the sake of discovery, though... could we get LMS & CMS running directly in Ubuntu without using containers? Would the experience be better or worse?

Acceptance Criteria

TBD.

@feanil and @kdmccormick will be doing likely be trying this out in hackathon style in Dec 2022.

regisb commented 2 years ago

This would be really cool! It would bring us all the way back to 2015, when Cypress was running in the "fullstack"... Kidding aside, yes: running Open edX outside of Docker would make it much easier to to hack on edx-platform (and the different services). It would be great if we could just run data storage services (mysql, mongodb, elasticsearch, redis) in containers, and the lms/cms as regular ./manage.py lms runserver commands on the host.

ARMBouhali commented 1 year ago

I agree with what @regisb says. It would be great to have the option to use a hybrid tutor/host environment for more flexibility and less resource usage. I can see some addressable challenges:

1. System dependencies: being tied to ubuntu and to specific package versions can rip users of some freedom they need. It's worth considering a mode where edx-platform system dependencies are isolated from the system. So instead of docker, one could think of bundling edx-platform's system dependencies in a package which can be isolated when installed using the existing methods [ schroot: more hands-on, snap: no recommending, flatpak: maybe :thinking:, you name it!]

2. Security and hardening: getting out of docker again probably means you'll have to toy with the host's security settings, permissions, etc. Not sure how much work is there once other services are excluded, nor if it's really what we want. But I know for sure we have veterans able to do all of this if really needed.

kdmccormick commented 1 year ago

Great points @ARMBouhali .

After we try this, it's highly likely we will conclude that Docker is in fact worth its trouble, given all the system issues you mentioned. Still, I'm curious what we'll learn along the way :)

feanil commented 1 year ago

Even if we never run this way, it's been helpful in forcing cleanup of the common.py settings file.

The latest small iteration on this: https://github.com/openedx/edx-platform/pull/32196