Contained, Open Source Environments Compatible With Everything? What Elearning Professionals Should Know About Docker
March 16, 2020
In just a couple of years, Docker, an open source platform to improve the development of applications, 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.
This article was originally published by LMSPulse.
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. 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.
#Docker ranked #1 most wanted platform, #2 most loved platform, and #3 most broadly used platform in the @StackOverflow 2019 Developer survey from nearly 90,000 #developers. Reply here and tell us why you want, love or use Docker for a chance to win a FREE #DockerCon ticket! pic.twitter.com/wca3nvYnng
— Docker (@Docker) April 19, 2019
In the latest annual developers survey by top coders portal StackOverflow, Docker came in third as the favorite platform, after Linux and Windows and above mainstream technologies such as Android and AWS. 77.8% of developers “love” Docker, and it is the number one answer when the question is which new technology you would like to master next.
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 emissar 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.
That or any supporting machinery including an Operating System. 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. If you ever feel like changing providers, or radically altering your whole infrastructure, you can begin by replicating your current “image” (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.
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. We’re used to look at GitHub for code samples we could, ehm, learn from into our own environments. Now with Docker, we can just grab a whole solution, often enterprise-ready to go just by invoking it on your command line.
Wanna 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. It is technology, after all. The probabilities of things going horribly wrong are never zero.
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. 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. (Which isn’t always great but fear not—see the next section.)
- Formidable Moodler Dan Poltawski created
moodle-docker, designed to make Moodle testing duties (with Behat and Selenium) more agile. Meet fellow Moodle Orchestrators in this forum discussion.
- There’s loads of Moodle Dockers already, on GitHub and on hub.docker.com, the container’s own open source repository. In our jobs report for October 2018 we saw the job listing including Docker on the skill set.
- There are several Sakai Dockers as well and a few Canvas LMS. Docker aroused plenty of interest at the latest Sakai’s mothership conference, Open Apereo 2019. What an amazing 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.)
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 (now owner of the largest Open Source company in history, Red Hat), Amazon and more recently Microsoft have become the largest contributors to the core Docker codebase. But the company is aware of potential deals with the devil.
In November last year, 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]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. So you no longer have to consider, you know, sell your soul to the company store.
Docker is a game changer for providers of LMS hosting and support. The dream of cloud agnosticism is here.
This article was originally published by LMSPulse.