#GlueCon 2014: Keynote: Containers all the way down – Solomon Hykes, Docker
Keynote: Containers all the way down: a blueprint for upgrading the Internet – Solomon Hykes, Docker
- The applications we are building due to the new requirements don’t fit any of the development platforms available today
- We end up cobbling together pre-existing tools that weren’t designed to fit together, which requires glue code and additional tools
- If you are lucky, you are large enough to put 15 developers onto the tools – most aren’t that large and it takes too much time from the core product
- The result is that every company is building their own platform under their own to support what they need
- The container-based architecture is bigger than any one company
- The platform isn’t clear yet, but we know that it will take many people to help figure it out
- Platform and Service are words with specific meanings and shouldn’t be cringe-worthy due to overuse – they are the right words
- The requirements for the platform
- Composable – services that are discrete logical components that are discrete, composable, and interchangable as upgrades are necessary
- Independent – of any machine running them (running on a laptop sandbox to scaled for dozens to hundreds of machines without modification)
- Scalable – needs to remain up and perform quickly as demand increases (e.g. WhatsApp) without rearchitecting as it’s too late
- Internet-Centric – we want users to confuse our application as being part of the Internet (e.g. Siri)
- Available – the Internet shouldn’t go down for maintenance
- Docker’s view on how to start creating the platform
- The only sane thing to do is to look at how the Internet works and upgrade it, not reinvent the wheel
- What is missing today? It can’t run code, it is a system for exchange packets of information
- Only machines can run code
- However, we have reached a point of adding this capability as an overlay on top of the Internet
- How did the Internet emerge? There is a need for standards and these standards need to emerge not from standards bodies but from people sharing code until a standard emerges
- Many ISO standards were crushed as a result
- “My thought in the 70s was that the Internet was a really good scalable design, and we should make a virtual internet of virtual machines that could be cached by the hardware machines. It’s really too bad this didn’t happen.” – Alan Kay
- Alan Kay invented Smalltalk, coined Object-Oriented Programming but regrets that it didn’t emphasize common message passing
- What we need is a view of messages going in and out of components (aka services) without knowing what is inside the service
- Someone will write a component in the future that will start talking to components that I have today – we aren’t there yet but will be
- You can’t take the whole world and map that to REST APIs. The web is a part of the larger puzzle
- Docker is one contribution to the puzzle, specifically about defining interfaces
- Docker has been done before (Solaris Zones, BSD jails, etc)
- The point of Docker is to try a new model to get a critical mass of people to agree on something
- It isn’t a replacement for the other technologies
- It is about getting people to come to a consensus on how to define and assemble components where standards bodies have fallen short
- “We need to define an interface of how to make it happen. That is what we are trying to do”
- On the ecosystem of startups around Docker
- There are those using Docker to support their product
- There are those using Docker to distribute their product when shared libraries won’t do it (e.g. need to specify how to run it)
- There are those providing tools to produce containers and connect them in meaningful ways