If you are British and over 40 years old, the mention of ‘British Gas’ may still conjure up dusty memories of a flat capped institution that is still stuck in the ’70s and whilst they may not yet have everything right (Hive Active heating app by the sounds of things here!) this talk by Andrew Martin at the London Docker Meetup in January may go some way to reassurance that the guys and gals at BG are doing things slightly differently nowadays.
Martin runs through a system they are building for the predictive analysis of boilers where data from boilers is queued into a pipeline of Docker Containers (with Fig and CoresOS) backed by a ten node Couchbase cluster (with Redis and 0MQ), microservices in Node, Angular.js for the front end, R for Machine Learning and Karma, Mocha and JUnit for testing.
(Go to 4:22) where Martin talks about the design principles in the system favouring simplicity with CI/deployment and a deterministic pipeline, constant cycle time optimisation, the fact they run json everywhere, make partial or the whole stack deployable on developers machines and making sure containers are identical from development through test to production.
With Docker containers, dependencies are managed via npm as they are a Node shop, they have a common task API and there is no hidden logic in Jenkins.
The testing component of the talk starts at 13:00 which goes beyond just testing in the context of Docker but also broader testing principles.. it shows that Martin is a big big testing advocate! With Docker he talks about isolating components, ensuring veracity as early as possible and granular reporting of failures and how the goal of testing Docker containers is to make sure they do what they did on previous commits going through each component separately.