Herding Code 202: Ahmet Alp Balkan on Docker

The guys talk to Ahmet Alp Balkan about Docker, containers, building an ASP.NET 5 image for Docker, and working on the Azure Linux team at Microsoft.

Download / Listen: Herding Code 202: Ahmet Alp Balkan on Docker

Show Notes:

  • Working on the Azure Linux team at Microsoft
    • (00:17) Jon introduces Ahmet and asks what it’s like being on the Azure Linux team at Microsoft. Ahmet explains what his team does. Ahmet’s mostly a Unix stack developer, he doesn’t use Windows on a daily basis.
    • (02:20) Jon asks Ahmet if it’s strange working on open source and Linux and Microsoft, and if there are a lot of legal requirements.
  • Intro to Docker
    • (03:48) Jon asks Ahmet to describe how Docker works, and how it compares to traditional virtual machines.
    • (05:54) Jon asks about how the Docker works with the Linux filesystem approach. Ahmet explains namespaces in Linux and describes how namespaces provide separation between instances. One benefit is that each instance is really lightweight, so you can have hundreds of instances on one physical machine.
    • (09:47) K. Scott asks about a specific example deploying a Ruby on Rails application. Ahmet describes two options for creating a creating an image – either doing it manually or using a dockerfile. K Scott and Ahmet discuss inheritance chains for containers.
    • (13:35) Kevin asks about how inheritance works when you’ve got an application that relies on services in different parent containers – is there communication between them? Ahmet describes how the application files are based on diffs from each container level. Rather than modifying a running container, you should instead define and deploy a new instance.
    • (17:07) K. Scott asks how different configuration between machines is handled.
  • Docker on Windows
    • (18:13) K. Scott wonders how containers will work on Windows due to the registry. Ahmet talks about how it’s more difficult on Windows, since on Unix everything is a file; Jon remembers the previous interview with Kenji at Spoon about how they’re virtualizing the registry with their container system.
    • (20:40) Jon points out that since Docker images run on top of a host, they’re not portable between different hosts on different operating systems.
  • ASP.NET 5 Docker image and User Mode sandboxing questions
    • (21:21) Jon asks Ahmet about his work on creating an ASP.NET 5 Docker image.
    • (23:10) Scott K. asks about the difference between Docker images and running in user mode. Ahmet explains that Docker does run in user mode, so things are kept separate due to user mode sandboxing.
    • (25:14) Kevin asks if the host operating system has visibility to the running containers.
    • (26:12) K. Scott asks if there were any technical hurdles in creating the ASP.NET 5 Docker image. Ahmet talks about how the image was built and the general process of developing with Docker instances.
  • Getting started with Docker on Windows
    • (30:15) Jon asks about different ways of getting started with Docker – Boot2Docker (running on top of VirtualBox), spinning up a Docker instance on Azure, etc.
    • (31:54) Jon asks about Ahmet’s work on getting the Docker client on Windows. Ahmet talks about some of the differences in Windows operating system API’s, including Go language differences.
    • (36:00) Scott K. says he’s excited about Docker because it sounds a lot simpler than some of the deployment issues he deals with.
  • Docker in production and container orchestration
    • (37:17) Kevin says he’s heard that running Docker in production is more difficult than running it in development. Ahmet talks about some of the orchestration efforts that are underway, and talks about container linking and the datacenter operating system approach.
    • (43:14) Jon asks about Mesos. Ahmet describes what Mesosphere is doing and how it relates to orchestration.
    • (44:50) Jon asks if Azure orchestration will be similar. Ahmet says they want to play really well with the other schedulers out there.

Show Links: