We’re not short of great technology meetups here in London, and the new Container Solution office based within this great city allows us to easily travel around and learn about the latest happenings! On Wednesday 9th July, I attended the latest London Docker meetup, which focused on running Docker in production. There were a series of useful talks, and some great thinking points about making the jump from running containers in development to running them within a production environment...
Containers: How much faster than a VM? - Anne Currie, force12.io
The meetup began with Anne Currie exploring the future of container technology, focused particularly around the experiments at force12.io. Anne started her talk by contrasting bare metal, VMs and containers: bare metal offers power at the cost of flexibility; VMs offer flexibility, are agnostic to target platform, and provide good security and networking, but are ‘overweight’; and containers are lightweight and fast moving, but are currently unseasoned, and security and networking support is immature.
Anne introduced the concept of ‘microscaling’, where cluster managers can dynamically repurpose capacity and associated application resource in near real-time. This is in contrast to the current trend of autoscaling, in which the infrastructure management system automatically provisions and decommissions resources relatively slowly in response to demand. Anne stated that for microscaling to become a reality, systems and applications must exhibit the following characteristics:
- Not be monolithic
- There must be uncorrelated demand across a system (for example, priority one and priority two applications)
- Containers must instantiate rapidly
- Applications/infrastructure must be capable of being treated as ‘cattle, not pets’
Anne stated that only the instantiation speed of container was an unknown today, and so the force12 team decided to experimentally validate this.
Using the Amazon Web Service ECS platform, the force12 team built a Go-based meta-scheduler that creates and destroys priority 1 and priority 2 containers in an attempt to meet a simulated randomised demand. Anne stated that the team where able to achieve sub 4 second starts with a BusyBox-based Docker container, which is ~100x faster than VMs. Anne concluded the talk by stating that microscaling appears possible, and although this may only be fully realised in the future, now is the time to develop expertise and skills within this technology space.
I was very impressed by the force12 work Anne talked about. The force12 team will also soon be open-sourcing their work with running Mesos on bare metal (provided by sponsors Packet), which will combine/integrate Mesosphere’s Marathon with the Go metascheduler mentioned above. Here at Container Solutions we are big supporters of Mesos (and we are also Mesosphere partners), and the ability to dynamically schedule workload in near real time is very attractive. I had a great chat with Anne after the event, and I mentioned that this looks to me like AWS Lambda implemented on Mesos, which I believe has a lot of interesting use cases. (FYI - there is a recording of a similar presentation by Anne, recorded at DOXLON)
Scaling Development at State with Docker - Mischa Tuffield, State
Second up to present was Mischa Tuffield from State, an online ‘opinion network’. Mischa talked about the fact that as State is a startup, they are still searching for a business model (‘product/market fit’), and accordingly the need to rapidly experiment is core to their development efforts.
Mischa discussed how State moved from a pseudo-SOA system with a single code repository using multiple languages (Java, Node and Ruby) and a large Rails application that had been ‘battered through continuous product development’ through to Docker-based microservices. The State team created two clusters of CoreOS instances managed through Fleet and running on Amazon Web Services’ EC2 - one cluster for data stores (MongoDB, ElasticSearch, Kafka etc), and one cluster for service that used etcd and confd for service discovery and HAProxy for routing. YAML definitions are created for all of the services, and Fleet Units are created from these. Fleet constraints are used to ensure that services are spread across multiple instances.
Mischa concluded the talk by stating that the Docker-based system has been in production successfully for nine months. The State team have also open sourced several AWS CloudFormation template scripts, and they are also considering releasing the Fleet Unit YAML templating if there is interest.
The story of State’s technological transformation is very similar to several projects we have been involved in at Container Solutions and our sister company OpenCredo. It was interesting to hear from Mischa about some of the struggles his team overcame, as this very much resonated with my experience - the challenges with software delivery transformations are often as much about organisational (and social) change as they are technological.
Orchestrating Databases with Docker - Chris Ward, Crate
The final talk of the night was by Chris Ward from Crate, a NoSQL-based distributed database company. The main pitch of Crate is that it allows developers to build resilient NoSQL data stores than can scale from a single machine to a datacenter. As this was a Docker meetup, Chris was naturally demonstrating Crate being run within Docker containers.
Crate is an interesting technology, but one we haven’t yet had much chance to experiment with. If you’re keen to know more then I recommend having a look at their online overview, and also there is a nice Docker-based tutorial on the Crate website.
The meetup provided several interesting insights into running containers in production. Anne provided an interesting glimpse into the future of how we may be running containers (and applications) in production that are scalable in real-time. Mischa highlighted some of the challenges that exist when deploying containers to production, and reminded us that although container technology is now mainstream, there are still some rough edges. Finally Chris showed us that the challenges of handling state within a containerised environment is still not a completely solved problems, but there are some great initiatives happening in this space.
At Container Solutions we help our customers to get the best out of container technology, including Docker, Mesos and Kubernetes. Please get in contact if you have any questions, or would like to compare notes on the technology.