In just a couple of years, Docker, an open source platform to make the development of applications more agile, has taken the virtual world by storm. It has changed approaches to software development among companies large and small, especially those oriented towards experimenting with interoperability and vendor freedom. This time the early adopters’ bets paid off.
The key attribute of Docker is virtualization, which is the art of embedding a system within another, in order to protect the apps in the contained system from incompatibilities. While fairly popular, virtualization used to be a difficult task to set up, it ate up a lot of computational resources and it made applications run much slower. With the snap of a finger —a couple thousand lines of code built over the course of 3-4 years, to be precise— Docker took care of all these issues.
It popularized the concept of containers: “buckets” of technologies clearly separated from the system and server that hosts them, but easy to connect to one another. Many took that idea to heart and this is how we got “orchestration,” another virtuous discipline, where every module of an application that can be built separately goes to another bucket, no matter how “micro” its “services” are, yet one comprehensive application emerges from the maze. Kubernetes, perhaps the most popular container orchestration manager out there, is also open source and it’s often seen mention in public next to Docker.
In short, it means you can split your LMS into several buckets working separate but neatly in tandem. Or that your LMS is one instrument in the institutional or enterprise technological orchestra, and your job is to conduct a triumphal EdTech symphony.
So what is Docker, and how would affect your learning? Let’s take a look.
The Docker Engine is where the magic happens. It is fully open source, with fast rising popularity
In the 2023 annual developers survey by top coders portal StackOverflow, Docker solidified its place as the top “other technology” with 53% of respondents reporting using it, the second most “Admired” coming behind a tool with half the number of users, and the most “Desired” with 46% of respondents stating their interest to master the tool next. When it comes to the stack or the set of tools developers use together, Docker and the JavaScript library manager npm are almost impossible to avoid, among other things because of its ease of use with other popular tools.
Docker is in a privileged position among robust and highly dependable technologies: Linux and AWS. Linux, the open source operating system, has not only raving fans but factions, which come into conflict a little too often. Docker is a peace emissary who also simplifies setting up the app built on your favorite Linux “distro” on AWS. Use of Docker is related of course to Kubernetes, but also to the PostgreSQL database engine and the team communications app Slack.
For educators, the greatest benefit of Docker is that you can forget it’s there
By delivering the same experience on any kind of infrastructure, all you need is to focus on performance and cost in order to choose a vendor who can run an LMS or your app of choice on a Docker container. If you ever feel like changing providers, or radically altering your whole infrastructure, you can begin by replicating your current “image” (that is, the Docker container including your LMS or learning platform) and trying out any kinds of modifications, without fear of compromising any real resource. And if you do get a breakthrough, adding them to your production image is relatively simple.
Install, configure and deploy your LMS or elearning platform once in Docker, now you can make copies by the snap of your finger
The simple principles of container are enough to play them out in all sorts of crazy and twisted ways. How many containers can you orchestrate and still claim they are part of one app? Now we’re venturing into ideas like “Swarms.” Or linked one another through APIs to create simple, light and fast applications that can summon all kinds of features and data in a blink. Switch them on and off at will for a highly meticulous management of resources.
But you don’t have to complicate things in order to see its value. A simple, good use case of Docker is to test an update of your LMS with all your existing content: Duplicate the image, upgrade the software and give it a go. Everything going smoothly? That just became your new instance. Things went haywire? Vanish the test with a command line, and it’s like it never happened.
The Docker Hub is another enormous reason to love the tool. With more than 2 million images, you might not even need to build your own container as chances are someone else thought of making it. Similarly to GitHub for code samples you can learn from or incorporate, with the Docker Hub, you might be able to grab a whole solution, often enterprise-ready to go just by invoking it on your command line.
Would you like to know more?
As an end user: Not much to see
If your organization’s LMS or educational tools are running on a container, you might not even notice. Probably a case of the “When you do things right, people won’t be sure you’ve done anything at all” truism. That’s assuming Docker was used right, of course.
As a customer or procurement officer: Whet your appetite
Docker is a method to provide a reliable LMS experience. It might not be time yet to request a container orchestration on an RFP. (Although Docker could be an interesting method to test competing alternatives.) But think fondly of a solutions provider who is working or at least trying these new approaches out, as the are expected to continue gaining relevance, and might provide a series of benefits and controls to your learning experience down the line.
As a developer of anything between a microservice and and LMS…
The ecosystem of containers and Docker-related services is booming, as it has since at least 2018 when I first learned about them.
- Formidable Moodler Dan Poltawski created
moodle-docker
, designed to make Moodle testing duties (with Behat and Selenium) more agile. - Bonus quote from the wonderful Marcus Green: “I have reached the state where I think the answer is Docker whatever the question is (apart from the one about what is for dinner)“
- There’s loads of Moodle™ Dockers already, on GitHub and on hub.docker.com, the container’s own open source repository.
- There are several Sakai Dockers as well and a few Canvas LMS. What a lovely coincidence: The presenter and main developer of a Docker image for Sakai is named Matthew Buckett.
Fighting the good fight
The more I learn about Docker, the more I am convinced that its just not easily the best open source innovation of the decade. (That’s far from an unpopular statement.) It is open source’s greatest weapon.
The idea for Docker was first pitched by Solomon Hykes in 2010. The first version would be ready 3 years later. It didn’t take long for the enterprise software to adopt it and make it their own. IBM (owner of the largest open source company today, Red Hat), Amazon and more recently Microsoft have become the largest contributors to the core Docker codebase.
In November 2019, Hykes announced what would become the next stage in Docker’s path. It was accompanied by a press release on the securing of $35 million USD in additional investment. After a few years making sure developers from all corners were able to run Docker on their machines, large companies helped popularized it, often by creating supporting tools to speed up workflows. Which is good but always potentially problematic, as Docker CEO, Scott Johnston, argues: “[A]n explosion of choices” brings “new potential threats of lock-in.” Part of the new direction of Docker is making sure whatever proprietary tool makes your work with Docker easier, is something you can find in Docker already.
Docker is a game changer for providers of LMS hosting and support. The dream of cloud agnosticism lives on.
2 Responses