Hello All,
In a recent tutor user’s group call there was a minor discussion on Devstack Vs Tutor, and @regis asked to see some of those points listed out.
Also as devstack’s repo got recently archived it’s apt to remember it and share my thoughts on it
Here’s my perspective a developer who used to primarily work on devstack and has now shifted to tutor. Please note that these are my personal views as a developer who’d do frequent changes to the code.
Advantages of Devstack :-
- Familiarity :- Devstack was and is something that is familiar to work with because mostly that’s how we’d fire commands in prod environment too. Commands in dev env and prod env were same.
- Ease of customisation :- As the containers had the volumes mounted to the repos from the get go, it was easy to cusomise the code in any repo and see the changes reflected directly. And it wasn’t ease of customising other repos, it was also ease of customising devstack repo itself too.
- No need of a totally different documentation, apart from some commands, all the other stuff was same as OpenedX commands
- More control with developer: Essentially same as above
Disadvantages of Devstack:-
- Required more setup steps to make it work with other services (for eg: frontend apps, ecomm, credentials etc)
- Configuration :- Configuring devstack to work as expected was a pain, too many URLs, too many ports, none of them come by default
- Provisioning :- to wait while the provisioning was done was a pain
- Prone to errors :- Installing devstack and making it work was easy for current releases, but for some of the older release if we do want to get back it was a bit difficult, there were various errors.
Advantages of tutor :
- Easy to install, (just 1 command and Open edX is running ?? who would’ve thunk ?)
- Pre-configured with defaults, I don’t have to do Oauth entries for different services anymore or configure the sites anymore, or worry about configuring SSO redirects etc.
- Easy to deploy
- Community support around tutor is just great, someone already has done the stuff that needs to be done or there is already a question around the issue being faced.
- Good docs
Disadvantages of tutor
- Build times:-
- While it’s not true, but it feels like every little change might need a re-build
- Lot’s of jumping around to be done for making a small change
- Difficult to customise, in case of making a default work, it’s the best, but in case there are lots of custom changes involved it takes a while to get used to. While the methods are present and documented clearly to make the customisations, it’s a bit difficult to understand how to get going and just get your changes on your platform. As a person who is purely trained on Open edX and it’s code, it can be a bit difficult to not see your changes reflected easily, or to spend 30-40mins waiting for builds just to see a change which would’ve taken you a few mins and a restart in your old environments.
- New commands and learning process, it takes a while to get adjusted to new environment of tutor and it’s commands. (Although this is going to be there for any new process).
- High Memory requirement:- I am not sure if this is tutor related, it could be because of Open edX codebase itself or docker configurations etc. But I feel (it’s just a feeling, no solid metrics to back me up here) that while devstack used to work well with 8 GB RAM, tutor doesn’t work well at all with 8GB of RAM. In dev or Prod. Specially while building or while running in dev mode because of the watchers etc.
Many of these pain points are mostly a general reaction to anyone shifting to a new environment and it’ll get easier with time and usage of it.
Using tutor or devstack, community has come a long way from using Virtual box machines and vagrant.
Please feel free to give your inputs on these.