Docker is nine years old? Seems both like yesterday and a long time ago! The technology world has changed a lot since then, and Docker has played a key role in making it easy for developers to build and ship applications wherever they’re needed.
What were the key changes that Docker introduced? Well, when Docker came out, it was compared to what was popular at the time, so we had years of “Docker versus virtual machines.” We also had lots of “Docker is just cgroups and namespaces wrapped up.” With the perspective that nine years brings, we realize these are not the important pieces at all.
First and foremost, Docker succeeded because it started with a great developer experience. You can just bring up new environments, applications and experiments with a simple command; docker run -it ubuntu
replaces so much that you might have had to do before. The time-to-magic is so short, and there is so much you can build on from there.
Similar to the standardization of shipping containers decades ago, the value is not the container boxes themselves but the global supply chains powered by those containers, supported by the off-the-shelf infrastructure available to build new supply chains fast.
Fast forward to today, and the software supply chain has rallied around Docker container images as the fundamental deployment unit of modern applications. Hundreds of new companies have been created, and huge communities have sprung up, in particular around Docker, Kubernetes and the broader cloud native movement. The pace of innovation across these communities is impressive, and we see many more opportunities as the Docker revolution spreads to many more developers, each with their own needs and dreams for better tooling.
The fundamental aim of the cloud native movement is to build software supply chains that can operate continuously while being repeatable, scalable, and able to manage the software needs of whole teams and organizations.
We believe Docker lies at the heart of the modern software supply chain, and there are three big themes guiding our efforts in this area: Performance, Trust and Experience.
Performance. When you build developer tooling, you always need to think about getting out of the way of the developer, being there to support them in the background, not making them context switch to wait. This is why we have invested so much time in areas such as Buildkit and Docker Desktop filesystem performance, that are often invisible, but require deep and complex work underneath.
Trust. Organizations are now dependent on the open source software from which they build their applications. At the same time, some of these may be hostile, buggy or worse, Trojan horses brought into your organization. We need to strengthen the trust for our whole supply chains, and for all the activities that we do with software. Zero trust is often misunderstood, but it is slowly remaking how we build infrastructure. Security used to be largely firewalls at the perimeter of an organization, hardened on the outside and soft on the inside – the armadillo model. The zero trust model reflects the experience that any individual barrier may be breached and the rest of the system needs to stay resilient. In this area, we are working on making Docker Desktop as secure as possible, with full organizational controls available in Docker Business. We are working on projects across supply chain security, building on the widely trusted Docker Official Images that are the basis of container supply chains, bringing zero trust to your supply chain.
Experience. This is all about the magic of things just working easily and simply. To reach a huge audience of developers we need to make everything even easier to use and to learn. This does not mean making it so simple that the power that more experienced users is not there of course, just finding simple ways to get started and get work done, while providing powerful tools underneath to grow into. Docker has always been admired for its simplicity, power and ease of use, but we recognize that there is much more to do to bring the experience to ever larger numbers of developers. Our preview of Docker Extensions provides just one example of how we’re trying to make it easier for developers to integrate their preferred tools, do their jobs and be productive.
We believe that the work is just starting to build a sustainable long term software ecosystem built on these principles of performance, trust and experience and are excited to work with our community to accelerate this future. With that in mind, I invite you to visit our public roadmap and let us know what you want to see from Docker.