Quill containers

28
Our Container Journey so Far… @andybritcliffe Making people think

Transcript of Quill containers

Page 1: Quill containers

Our Container Journeyso Far…@andybritcliffe

Making people think

Page 2: Quill containers

Who are Quill?

Page 3: Quill containers

We deliver bespoke, high-quality content across an unparalleled number of topics, formats and languages.

Clients include Shop Direct, STA Travel, LA Fitness, Reckitt Benckiser, 888.com, WPP, Aegis and Publicis.

Our mission is to build the most compelling content experiences for brands

Page 4: Quill containers

We’re building a software platform to achieve this at global scale…using containers

Underpinned by Technology

Page 5: Quill containers

A Backstory

Page 6: Quill containers

• Software started out simple to support the business as it grew

• VC investment in May 2014• I joined 8 months ago (Sept 2014) as CTO• At that point we had a large single RoR application (e.

g. Article class > 600 LOC)• A test suite running time of >1 hour :-/

Where we were

Page 7: Quill containers

The Challenge

Page 8: Quill containers
Page 9: Quill containers

• A very brittle monolithic application• An ever growing list of requirements• Fast moving competitive landscape • A small team – 6 Devs + 1 DevOps

We Faced…

Page 10: Quill containers
Page 11: Quill containers

• Enhance speed to market• Provide fault tolerance and ability to easily scale• Ensure tech ops first class citizen• Focus on developer productivity and happiness

We Drew up a Plan – Our Goals

Page 12: Quill containers

In response we adopted a Microservices architecture* and as a result needed build, ops and deployment infrastructure to enable this…

Our Approach

*Why we chose this is a topic for another talk

Page 13: Quill containers

Our Solution

Page 14: Quill containers
Page 15: Quill containers

• Dokku (and Docker) • Heroku like deployment capability…without the

cost ☺• Open source• Docker centric• Cloud agnostic• Extensible

Container Tooling

Page 16: Quill containers

• Consul - service discovery and config• HA Proxy - routing and load balancing• InfluxDB - metric tracking• Pingdom* - health checks• Papertrail* - logs

Other Key Tools

*Paid for but worth every penny

Page 17: Quill containers

The Result

Page 18: Quill containers

1. Log into our deployment dashboard2. Select Git repo of service, add env variables3. Choose number of instances (scale FTW)4. Click

Our Deployment Process Today

Page 19: Quill containers
Page 20: Quill containers

• Immutable infrastructure (new VMs provisioned) and application code deployed in containers via Dokku

• DNS setup and service(s) registered in Consul• Routing/Load Balancing setup in HA Proxy• Logging and metrics service configured for Papertrail

and InfluxDB

Under the Hood

Page 21: Quill containers

How is it Going?

Page 22: Quill containers

• Feature development was painful• To ship we had to:

• Co-ordinate team leads• Notify clients• Have downtime ☹

Previously

Page 23: Quill containers

• Shipping features several times a day with no downtime• > 15 new services deployed in last 4 months• Shipping new features without regression• A standardised way of deployment across languages

(Ruby, Go and Node)

Now

Page 24: Quill containers

Final Thoughts

Page 25: Quill containers
Page 26: Quill containers

• Give us easy and repeatable polyglot deployments• Give us cloud portability• Give us the ability to run actual production code

locally (debugging heaven)

Specifically on Containers

Page 27: Quill containers

• Tech ops is complex - a number of tools need to be understood by the team

• Patching and upgrade challenges • Careful of NIH syndrome for Orchestration. At larger

scale things like Kubernetes and Docker Compose are definitely in play

Be aware though…

Page 28: Quill containers

Making people think

Thank you@andybritcliffe

www.quillcontent.com