Quill containers

Post on 15-Aug-2015

35 views 0 download

Tags:

Transcript of Quill containers

Our Container Journeyso Far…@andybritcliffe

Making people think

Who are Quill?

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

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

Underpinned by Technology

A Backstory

• 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

The Challenge

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

We Faced…

• 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

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

Our Solution

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

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

Container Tooling

• 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

The Result

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

• 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

How is it Going?

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

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

Previously

• 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

Final Thoughts

• 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

• 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…

Making people think

Thank you@andybritcliffe

www.quillcontent.com