This pace of change oftens means a project you worked on a few months ago is now using “outdated” tools and technologies compared to your current project. And the older a project gets, the more difficult it is to maintain a development environment that supports the older libraries and runtime requirements.
In the past, developers have tried to solve these problems with configuration management tools, library dependency and versioning tools, full-on virtual machines to duplicate entire development environments, and more. But configuration drift is a problem that version management can’t always solve, and duplicating your entire development environment is the easiest way to introduce configuration drift (among other things).
Docker is virtualization at the application level, encapsulating a single application process with all of it’s configuration, runtime environment and dependencies. It will help you solve the “works on my machine” problem by nearly eliminating the need to configure the machine on which it runs. You deploy the application as an immutable binary object, and all of it’s configuration and runtime environment come with it.
That means you no longer have to worry about what version of Node.js your old project is using. You don’t need to re-install Babel.js v5 for an old project, and then v6 again for a new project. You can test the latest and greatest webpack, browserify and other tooling with zero conflict in your current projects.
I Can Help You Get Up To Speed
If you’re getting started with Docker in your development environment and you need help to get your team up and running, let me know. I’ve got multiple services and training offerings that can help, including: