Run Open Edx as Serverless in AWS, adding more functionalities and a few more queries

We have no financial support as we’ve not started our courses yet. So we plan to deploy a lms as serverless on aws. after spent a long in our code and considering existing solutions we have found ‘Open Edx’ is the best option so far. But currently as we googled we have found, it takes one or more running ec2 to run for deployment.
But our initial plan was making a serverless LMS with django in aws(as we’ve an active account there and hopefully aws is better). We would like to use lambdas, microservices, api, s3 and other serverless options. We assume that would be cost consuming for us as it promise pay-as-you-go.
So our questions are

  1. Is Open Edx monolithic?
  2. If yes, then how can we make it into several microservices? and if no, then where are the resource to use it as microservice?
  3. Is it possible to apply aws lambda with Open Edx?
  4. If yes, then any example? What will be the list of functions to be considered to convert to lambda in order to go serverless?
  5. and if No, then what will be the alternative?
  6. And Finally We have some other functionalities like student ranking/reputation, mini social network among students, critical analysis on student performance, mobile payment etc. How can we add a new features which we plan to write from scratch? Is there any documentation or tutorial to do that?
  7. And How about customizing existing functionalities? Is there any reference?
  8. Finally if we want to replace database engines in Open Edx like mongodb with dynamodb of aws and mysql with postgred, is that possible? If yes, then How?

I know it’s a lot of questions. Any opinion will be appreciated.
Thanks.

Hi @alokkumar! I’d like to suggest that you take a look at the Tutor distribution, which is mentioned on the Open edX getting started page, and which I happen to maintain. Tutor does not work on AWS Lambda out of the box, but it will generate a docker-compose.yml which you can study to port it to a serverless architecture. Note that this will require considerable expertise in both Open edX, Docker and AWS Lambda.

And to answer your questions:

No. Open edX is composed of many different services with many interactions.

As far as I know, there is no other resource outside of Tutor right now.

Yes. Anything is possible. You just have to work hard and long.

On the top of my head: LMS, CMS (these are mandatory), forums, course discovery, ecommerce, notes, xqueue (these are optional).

I’m afraid the best resource to do so right now is to read the documentation and study other people’s code. If you do not have any financial support, then this is the only option.

Same answer.

Yes, it’s possible. Some tutor users are doing it. Check the docs: https://docs.tutor.overhang.io/configuration.html#mysql
Just make sure to use the same MySQL/MongoDb version as the one supported by Open edX.

This is the exact support for our requirement. Thanks a lot.
Feeling happy to be in this community.

@regis
Can you provide me a guideline or a link that shows how to set up and configure the tutor distribution as serverless on aws? So far the links and videos I got shows how to setup tutor on a ec2 server.
No problem if it in not so detailed.
and another is is there any aws architecture diagram for serverless tutor distribution of Open Edx? That will be helpful also. Thanks again