Docker at Tradeshift

Bo Gotthardt

mail@gotthardt.bo

Tradeshift

  • Network for invoices and business communication
  • "App" platform
  • Split into individual server "components"
  • Java/Scala/Grails

Why Docker?

  • Busy Operations team
  • Existing components are complex
  • New Node.js component
  • Want to move to multi-region setup

Setup

  • Custom base images
  • Store images on quay.io
  • Reuse exact same images for test and production
  • Orchestration with Helios

Server code

quay.io

Build

server

Apps

code

Build

server

quay.io

Production

Test

Progress

  • Prototype container in production
  • Existing components Dockerized
  • Can spawn test stack on AWS
  • TODO: Tradeshift Docker repo
  • TODO: Production orchestration setup
  • TODO: Official setup for running locally

Gotchas

  • All the Maven plugins suck
  • Groovy scripts to replace Maven plugins suck
  • Quick hacks in existing setup have to be fixed
  • Mutable images are a terrible idea
  • Helios doesn't support third-party repo auth
$ docker run -d quay.io/tradeshift/cloudscan-conversion:3bf4dcd
536d0d7c502387adf55298aef79c66f14f98942b29d847884e400fb725401e45
$ ...
$ docker logs 536d0d7c502387adf55298aef79c66f14f98942b29d847884e400fb725401e45

2014/11/26 15:43:42 Error response from daemon: 404 Page not found
$ ...

Integration tests run...

Questions?

Docker at Tradeshift, part 2

By Bo Gotthardt

Docker at Tradeshift, part 2

  • 781