QCon London 2014 - Wednesday
March 8, 2014
I've been at QCon in the middle of London for three days this week and wanted to write up the brief notes I made for the talks I went to, to give me a place to start investigating further.
The video links here are only available for attendees, but infoq say some will be made available publicly over the next few months.
There are also some photos on flickr.
Keynote: Life, The Universe & Everything - Damian Conway
An entertaining start to the conference covering Game of Life, The Turing Machine, KlingonScript, Gases, and Demons. Making decisions heats your brain.
Development, Deployment and Collaboration at Etsy - @Daniel Schauenberg
Etsy do many releases to production every day, and everyone deploys to production on their first day. They use a push train to release, everything controlled by IRC. All changes are small changes, separate deploys for code and config. They use lots of config flags and only turn on code after it's been deployed, not in the same deployment as the code. They take production code, add the patch, then build and run tests to make sure the change doesn't break anything.
They have a blameless post mortem and look for opportunities to engineer out what allowed the problem through to production, and so stop it happening next time.
Lunch N Learn once a week - buy in food, someone presents about a tech topic.
No rollback if there's an error in production - roll forward with a fix.
Dev "Programming" Ops For DevOps Success - @Damon Edwards
With separate dev and ops there can be a "Wall of Confusion" between the two sides. Scrap is delivered software not fit for ops purposes - wastes time. Do Waste Analysis.
Three steps to DevOps success:
-
Have an Operations First mindset. Devs own the app, Ops owns infrastructure. Other stuff (Security, Quality etc) is shared.
-
Build organisational alignment. Alignment is where different people come to the same conclusion. Visualise the system. Waterscrumfall.
-
Establish a new model for working with ops. Replace tickets with self service interface. Pull rather than push.
-
Links: dev2ops
-
Books: Small Unit Leadership: A Commonsense Approach - The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win - Learning to See: Value Stream Mapping to Add Value and Eliminate Muda (Lean Enterprise Institute)
Revealing the Uncommonly Common with Elasticsearch - @Mark Harwood
Interesting features of Elasticsearch. Showed the search of crime data that returns JSON. You can then throw these results at Google Earth to get a visualisation on a map.
Next we looked at how to find the common site that all victims of credit card fraud visited. This isn't the most common, it's the one they have in common that is uncommon.
-
Tech: Lucene - elasticsearch - Logstash - Kibana
-
Links: Twitter Hashtag Map
The Process, Technology & Practice of Continuous Delivery - @Dave Farley
Build binaries once. Use the same mechanism to deploy to all servers. Smoke Test. If anything fails, stop the line and fix it.
Build after a code change, then store the binary in an artifact repository. Run auto acceptance tests by watching the artifact repository for new builds. Tag the binary as a release candidate if tests pass. Testers can deploy any version they want to test from the artifact repository using a console.
-
Links: LMAX - Dave Farley
-
Books: Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series (Fowler)) - Lean Thinking: Banish Waste And Create Wealth In Your Corporation - Specification by Example: How Successful Teams Deliver the Right Software
Understanding and Using Regular Expressions - Damian Conway
Regular expressions are subroutines, and they are explained here by graph traversal.
Always use ?x at the start of a regex, where supported. This allows you to format your regex with whitespace and comment it. If this is unavailable on your platform, build it - regex is a string with spaces, code processes this down to just the regex.
.*
is greedy. .*?
is non greedy
- Tech: XRegExp for JavaScript
DevOps at a Small International Bank - @Ola Ellnestam
The most unique slides of the day - all hand drawn.
They have tools to revert back to the previous version of the code in 10 seconds if there is a problem in production.
Does the Browser have a Future? - @Tim Bray
You need to code for three clients - HTML, Android, iOS. 2014 is the year that the mobile usage line crosses the one for desktop. Unit testing is too hard on mobile, it's easy for the server side. There is pushback against apps.
You can change the world, you have a great job
-
Links: Tim Bray - Cassandra at Netflix - xkcd - Project Tango - better device for Augmented Reality - Ingress (Game)
-
Tech: Erlang - Clojure - Scala - WebFist - Go> - Cassandra - Polymer - Mozilla Brick
-
Books: Spook Country