#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

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
James Higginbotham

Founder of LaunchAny and author of Principles of Web API Design. James helps enterprises build API platforms and get them ready for AI.