Scaling DoubleDutch's Apps With Docker Trusted Registry and Compose

Background

DoubleDutch provides mobile applications and performance analytics for events, conferences, and trade shows for more than 1,000 customers including SAP, IBM, and Urban Land Institute. Founded in 2011, DoubleDutch was recently named to Inc. 5000’s list of fastest growing private companies, AlwaysOn’s Global 250 best-of-breed private companies in SaaS and Enterprise, and Forbes’ list of 10 hot companies to work for in San Francisco. DoubleDutch is based in the Mission District of San Francisco with regional offices in Amsterdam, London, Hong Kong, and Portland.


Challenges

Today DoubleDutch’s “Exhibitors app” runs on a microservice-based architecture, running mostly in Docker and on Go in production. Their current CMS tool for organizers runs in a legacy Windows-based app. They are in the process of breaking the entire CMS tool down into a series of microservices running on a Docker-based platform. But the company doesn’t have a an IT ops team, and they didn't want to have to invest in more manpower. The company itself, although it has grown rapidly over the years still have a relatively small engineering team and only a few developers focusing mostly on the client-facing exhibitor applications. One of the big challenges was that they wanted the ability to scale to more devices, and their original design did not scale with them. They needed a solution that would help them deploy to larger infrastructure more easily, all while keeping their enterprise customers happy, and their clients in Europe smiling. They knew they needed a platform that would allow them to not have to hire a giant operations team, and that was stable enough to actually use in production. They looked at Kubernetes, Mesosphere and actually going all on other environments like AWS Elastic Container Service. In the end, the only one that they found that didn’t require either tons of tooling and development on their side or tons of specialists was the Docker solution. Kubernetes and some of the other solutions were either too expensive or required just too much expertise.


Solution

Today DoubleDutch uses multiple Docker solutions in production. They leverage the supported Docker Engine as well as Compose for all of their production testing, using Compose heavily in development. They also use Docker Trusted Registry for production for help them manage the deployment of images out to their datacenters around the world. Docker Trusted Registry’s ability to integrate with LDAP was a huge reason for why they opted to go with the on-premises registry. They are currently in the process of linking DTR to LDAP across their entire stack. But the biggest thing that they liked about DTR was that it’s an on-premises solution that they can deploy into multiple datacenters and have local caches of their images without having to worry about cloud services for that critical piece of their infrastructure. Today their team works with Rackspace, and they have a hybrid setup with Rackspace. The company has two major data centers that service all of their production applications, one in the United States and one in Europe, with no data being shared across the two. This means that they have two full blown production distributions of their entire infrastructure. They also have a full infrastructure setup for development and integration testing, also in the United States. This means that DoubleDutch needs to deploy and roll out all the same services across all three of environments. Docker manages their workloads running in their public cloud, and frees up on-metal resources. They plan to run Docker on the bare-metal as well and servicing reticent Postgres and the other shared infrastructure services they use. DoubleDutch has containerized a lot of their dev tools as well as their deployment pipeline making their applications super easy to update when necessary. Some of the business tools that they use internally, have also been Dockerized as well.