Getting started (in right direction)

Hi,

I have been reading about open edX ever since i came to know about it. I would very much love to use it. And i wish i could run simple installation wizard click click click next finish and ready to roll, but that’s not the case here. Infact it seems the installtion is the trickiest part of all :-D:sunglasses: so i have read there are many ways for installtion and we would get the same output which is great.

Now i read an article which mentioned if you expect 1000 user docker is the option. So can docker only support limited user?

Another article mentions native installtion on Ubuntu 16.04 on AWS instance on single server can support couple hundred concurrent user.

This won’t always serve the purpose. How to set up this platform for production and on a larger scale?

Regards
Melsu

@Melsu welcome to the Open edX community! The software is complex, and can be daunting to install. We recommend that people get started with one of the free trials with our service providers. That will help you understand how the course creation flow works, get a start on authoring some courses, and so on.

1 Like

I have been able to take few courses on edX that helps with authoring navigation and other similar demos. However I am keen on finding out how i can deploy fully fledged platform. Let’s say i am opening this platform nation wide or for millions of users to come and take courses. Will single server instance set up with tutor docker images work fine? Or will I need native installation or these needs different type of deployment strategy?

Regards

However I have also been able to get bitnami instance running for me. I used two service provider too but i am more Keen to self deploy the full stack or production platform.

Hey Melsu,
and welcome to the open edX community. see if this official article could help you:
https://openedx.atlassian.net/wiki/spaces/OpenOPS/pages/60227779/Open+edX+Installation+Options
Generally docker version is for development purpose and should not be used in production environments. edx-platform is a colossal system with hundreds of related packages and components. there is an automated installation using ansible works like a charm but in some cases you have to know about ansible itself, Ubuntu, python, django and etc to solve happening issues.

1 Like

I have Luckily read this article Already. Thanks for the suggestion. My question is among all the method out there which one shall i go with if i am expecting million users register? Like single server base like AWS instance ec2 sufficient or do I need to follow different procedures? I need to set this platform in cloud only and i will have large user base.

If you already have read that article it should clear that production environments should be setup using native installation method. so for your second question of course you must distribute your production server. at least you need 2 servers for App/Data-Store. if you have millions of users I think you need a dozen of machines. but it’s out of my experience.

@Melsu If you are expecting millions of users, you need a much more complex installation than the native installation, which puts everything on one server. You will not be able to support many students with just one server. You will need to separate your database from your application servers, and you will need multiple application servers.

You can use Open edX software for installations of that size, but you need to have capable operations staff to design, implement, monitor, and administer an installation like that. We don’t have supported instructions for how to do that, because each installation of this size will make different choices about underlying technologies.

1 Like

I am glad this forum is very passionate and patience.

@mahyard i am not much into computer and hardly understand these type of installation. There was misconception i had about dev stack which is clear after reading responses (i thought if i need any changes going forward i will need dev stack for production itself) so i have already started experimenting native installtion on a 2cpu units on Ubuntu 16.04 using Lawrence McDaniel’s blog post.

@nedbat you have hit the bullseye. The answer is what exactly i was looking for. However if i may further ask my queries are as follows.

  1. What exactly can single server (t2.large 2cpu/8gb) handle? In terms of users? I understand there won’t be precise answer to such question but based on your experience what can i really achieve with it?

  2. Can i expand the instance capacity to 16gb to avail better results? Or that won’t help.

  3. Now this question is assumption based. I am assuming the single server can handle 2000 students. Would that be any help to restrict no of student can take up the course and start the same course in future date? Like let’s say weekly. These are instructior paced course and new content is available each week so if the course is month long then 2000 student on wk1 accessing wk1 content then in wk2 i would have 4000 students but using difference resources 2000 each and so forth. It could totally be misconception but i felt worth asking.

  4. When you say it’s a software can i get to read or look at it just to get some understanding?

  5. Who can i contact for large installations?

I am sorry if i am pressing it too much too far. I am of the opinion if i am gonna use this platform i must be aware of some basics atleast and since i am very beginner in computer itself i may be little annoying but i do apologise.

Regards

@Melsu

The number of total users you can host on a server depends on their usage. If they connect every few days at different times, you will be able to handle a lot more total users than if they all come in at the same time for an exam. The type and size of content that you are serving can influence this too - huge courses, or courses with a lot of dynamic content can negatively affect performance.

A more reliable indicator is more the number of concurrent users that an instance can support. And for this you can refer to the following post from @nedbat, which gave rough guidelines on this - the limiting factor is RAM, and you will support on average 75 users per GB of RAM:

An LMS worker will support about 75 simultaneous active users. To be on the safe side, give each LMS worker 1Gb of RAM. When choosing an AWS instance model, RAM will be the bottleneck, not CPU. Use your active simultaneous user estimate to decide how many workers you need. Choose an AWS instance model: m2.2xlarge is a good choice. Divide the number of workers by the amount of RAM (30Gb for m2.2xlarge) to determine the number of instances you need.

https://groups.google.com/forum/#!msg/openedx-ops/_El2M0ifXmc/R5vCdGaBBgAJ

For the setup of a proper production instance of Open edX, we had drafted a guide a few releases ago (for Ficus) - it’s a bit rough, and some of the operations might differ on the more recent versions, but that can give you an idea of the steps involved to have a setup that can be scaled (there will be other operations as you ramp up load, but that provides a good base):

https://openedx-deployment.doc.opencraft.com/en/latest/openstack-openedx/production-deployment/

We (OpenCraft) can help with this if you want - we manage several large Open edX installations.

2 Likes

Thanks!

Your post clarifies lot of my curiosity.
Just to give you insight of what i am upto - I have been able to deploy the code in AWS and has got hands on edx-platform. So basically I am getting familiar with how things work as edx is concerned. It’s very exciting and fun to be able to read the instructions try fail errors read more and more again try and again fail to succeed. But i am able understand how things are working (i believe learning things beforehand is good practice). I will definitely keep open craft in mind while i am finalizing the service provider.

Kudos