May 05, 2015 by Michael Friis
When Heroku launched the Cedar container stack 4 years ago, we became one of the first companies to use Linux Containers (LXC) to create a secure, performant and scalable cloud platform. Heroku has been a leader in the containerization movement, and we’ve spent years hardening, honing and evolving our runtime container stack. This means that developers can
git push apps written in their favorite language and Heroku will build containers that are deployed to a production-quality environment. With this approach, developers are set free from managing operating systems, package updates, server infrastructure and their inevitably complex interactions.
Containers are essential to making this model work, as they create firm abstractions and boundaries between an application’s code and all the dependent pieces necessary to make them run. And the benefits of containers for deploying and running apps are familiar to most developers using Heroku; freedom from having to manage down-stack components, confidence that apps will continue to run as operating system and environment dependencies change, and the ability to start, stop and scale apps quickly.
As the container ecosystem has evolved, there’s an opportunity to bring the benefits of this technology not just to running apps on the server, but also building them on the desktop. In doing so, the hope is to address the challenges of creating and managing local development environments, as installing and managing local language runtimes, frameworks and associated dependencies is still a major time-suck for developers — problems that are made worse by the need for local environments to match production so that bugs can be identified and fixed before deploying.
Today, Heroku is releasing a beta version of
heroku docker:release. This new CLI functionality leverages the increasing availability of Docker on the desktop, and combines the benefits of local container development with the proven Heroku Cedar container runtime. Using Docker and
heroku docker:release, developers can run apps in containers similar to the Heroku runtime and get high fidelity dev/prod parity, whether they’re developing on OS X, Linux or Windows.