Speaker
Mr
Peter Parker
(ORNL)
Description
A significant problem affecting software developers is the difference in operating system, runtime dependencies and external services that can occur between local development environments and the environments in which software is actually deployed. This has consequences in terms of the increased software complexity required to account for these differences, and/or the effort necessary to maintain infrastructure and configuration consistency across multiple machines.
Many types of tools currently exist to help tackle this problem, including configuration managers, package managers, language-specific version managers, and various hardware virtualization methods. However, these are not without their drawbacks; they are often limited in scope, can be language or OS-specific, are sometimes overly complex, and may have a large impact on resources and performance.
Docker is a relatively new tool with a different approach. It uses OS-level virtualization to provide application “containers” — complete filesystems that contain everything needed to run code. The containers are *isolated*, giving developers freedom to use whatever technologies they want and to pull in any dependencies they need without worrying about conflicts with other applications. The containers are *lightweight*, so they have a very low overhead and can be spun up and ready to use in fractions of a second. The containers are also *portable* — applications can be packaged with their configuration and can be guaranteed to work on other machines running Linux, MacOS or Windows.
In this talk I will present a brief overview of Docker along with two current use cases for Docker at ORNL — the provisioning of ephemeral testing environments, and automating the deployment of a complex web application.
Primary author
Mr
Peter Parker
(ORNL)
Co-author
Mr
Caleb Cooper
(ORNL)