OpenStack Meets Open edX – Open Source and Scalable Training Made Easy
Introduction – Sharone Zitzman
With an an excellent OpenStack Summit just behind us, there were a lot of interesting projects that were launched or announced in conjunction with the summit. This post will focus on one project that was led by the team at Hastexo – namely Florian Haas, who has been working closely with the Cloudify team for years to bring OpenStack training to Israel.
Florian Haas (who you may remember from our previous OpenStack podcast episode) is an active member of the global OpenStack community, and specifically the OpenStack Israel community, which the team at Cloudify also takes an active part in leading. Florian has deep expertise in all aspects of OpenStack, and has built his company Hastexo that provides in-depth training services around OpenStack. Recently, his team built an interesting project on OpenStack, and we decided to share the story.
Everyone who has to deal with distributed infrastructure deals with an issue of acquiring talent and skill, Nir Cohen tackled this subject in his post on DevOps interviewing (albeit from another angle), but this speaks to the depth of the problem. This issue holds true for any technology, from OpenStack, to Ceph to Open vSwitch, it doesn’t really matter, everyone is dying for people that know and understand these complex technologies.
That said, even if we do have intelligent and capable human resources, sometimes they aren’t specifically knowledgeable in a certain technology, and so the question arises…well why don’t we train them then?
OpenStack Training – open source and scalable. Ask us how. Go
Many times, the challenge lies in the methods we’ve used until now for training. They are not very cost efficient or effective, nor scalable as they essentially all boil down to bringing a small number of people into a classroom, where often these sessions themselves are not very effective, as the training environments aren’t very realistic. So we realized we need to find a way to train people that is as fast and scalable as the technologies we want to train them on.
Then we started thinking, what can we do with our OpenStack knowledge and expertise that we can contribute back, and improve this process substantially?
We found that there’s a very vibrant and active community around Open edX, and we thought, this is something we would love to contribute to the Open edX community, for these complex distributed technologies.
So, it was only natural to bring these two communities together, as they are both very open, large communities, all while still being extensible and awesome.
So our project basically focused on two levels:
- The option of running Open edX as a first class citizen on any type of OpenStack cloud.
- The ability to realistically use OpenStack private or public clouds as a means for lab environments.
Until now the Open edX community was mostly AWS-oriented when it came to cloud deployment, so we set to work to make it possible to leverage OpenStack for lab environments (which is probably the more meaningful part). What this means, is that through this project you could now actually give people any number of VMs to work on, e.g. to deploy Cloudify on or actually build a Ceph cluster, without being limited to the necessity of coming together in one place, at a specific location. And all of this is now possible in a scalable way.
From the technical side, what’s cool about using OpenStack both for the deployment of the LMS (learning management system), which has historically been considered a complex endeavor, and the setup of realistic immersive lab environments, also considered an undertaking, is the ability to orchestrate arbitrarily complex environments with OpenStack Heat.
Heat comes in handy, as it enables anyone who runs on an OpenStack cloud, whether their private cloud or who have access to a public cloud, to effectively stand up a full-featured LMS in a matter of hours, which used to take days or weeks. What’s more, they can now also create realistic lab environments for their students in the order of minutes, in a cost effective manner – where previously this would take weeks to months. This means that it is now at the course author’s discretion to freely define what the lab environment for the course will be, and the environment will be available to each and every one of their students on demand.
The coolest part, is that it will automagically suspend and resume lab stacks, without the attendee needing to do anything. If they just aren’t currently working on it, it will suspend, and then it transparently resumes when the attendee reopens the system. This is also true when running in a public cloud, as well, where you’re being charged per hour for your VMs.
The impetus for launching this project was really following the precedent that’s been set by both communities for open innovation. You can fork the code on Github, and try it out yourself and learn a bit more about the OpenStack+Open edX project here, and feel free to reach out on Twitter if you have any questions.