QCON London 2017

We were excited to attend for the second time QCON London (you can find our review from the past year here: day 1, day 2 and day 3).

intro

QCON is a conference running for 3 days targeting CTOs, Software Team Leaders, Architects and Senior Software Engineers, with a focus on emerging technologies.

The talks are divided into tracks and we were particularly interested in the following ones: “Architectures you’ve always wondered about“, “Architecting for failure” and “Modern Distributed Architectures“. Here we will highlight the talks that were really inspiring (and that you should watch!).

MORNING KEYNOTE: SECURITY WAR STORIES: THE BATTLE FOR THE INTERNET OF THINGS

The conference started with an entertaining keynote from Alasdair Allan. He gave us some disturbing and recent examples on how internet of things (or more generally the software industry) has been failing humans. It included: a pet feeder, smart bell, medical equipment, hotels radio, smart toy… Smart objects are more more present in our daily lives and future is scary. It is our duty to make them secure.

a cat dies

“A cat dies should never be a failure mode.”

TALK: BUILDING AND TRUSTING A CLOUD BANK

Greg Hawkins the Chief Technology Officer at Starling Bank gave us a good overview of their architecture and how they achieve resilience. They are in the early stages of developing the next generation of bank. We were impressed by what they have built in only 1.5 years with a small team. They are able to rebuild their entire stack in less than an hour and often play at killing servers (they even have a slack bot to kill servers – we need one too).

We were a bit less convinced of the necessity of having permanently an artificial load in production.

TALK: FROM MICROLITHS TO MICROSYSTEMS

We attended the talk from Jonas Bonér; he is the inventor of the Akka project and co-author of the Reactive Manifesto (it is part of our key read at Sandtable). He gave us good practices to move from a Microlithic to a Microsystems architecture. It focuses on how to build resilient services, reactive systems and event-driven DDD. We were glad to hear that “there is no such thing as a stateless architecture, it is just someone else’s problem“. We will definitely add his (free) book to our reading list.

microlith-to-microsystem

“Reality is only eventually consistent”

TALK: IN-MEMORY CACHING: CURB TAIL LATENCY WITH PELIKAN

We finished the first day with a very technical talk from Yao Yue of Twitter. First of all, thank you for chasing ghosts for the last 5 years and giving us all the lessons you learn from your battle scars: lockless architecture, prioritize requests “data plane” vs “control plane“, preallocate memory when possible… On top of that, most of the lessons learned about caching can be applied to other kind of services.

MORNING KEYNOTE: ENGINEERING YOU

The second day started with an excellent chat and talk from Lynn Langit and Martin Thompson (our favourite, if you want to view only one talk, we strongly advise you to watch it). The first part of the talk was a deep look at the root of the term “Software Engineering”. It’s good to hear that most of the concepts that we are using nowadays have been defined years and years ago (50 years!). On the one hand technologies are evolving extremely fast; and on the other hand the core concepts and good practices are not evolving. The second part of this talk was on how we should keep engineering “ourself“. In disorder: dedicate 20% of your job time to personal learnings/practices; keeping to learn and improve, do maths, read open source code, do maths again.

IMG_0608

TALK: BUILDING A BANK WITH GO

We were very excited to attend to this talk by Matt Heath, a Distributed System Engineer at Monzo. First, we (many of us at Sandtable) are early users of Monzo and we love it! Secondly, we are particularly interested by the Go language: it is a good candidate to replace Python for some of our microservices. We were not the only ones to attend this talk (the room was full) and to appreciate it (it was given one the best ratingd of the day’s talks). Go has an excellent concurrency abstraction, is statically typed and has a managed memory. That’s why it’s a good candidate for simple and small network services. We were happy to get an overview of the Monzo stack and well… as a user, we can confirm it works well!

TALK: WHAT WE TALK ABOUT WHEN WE TALK ABOUT DISTRIBUTED SYSTEMS

The next talk we attended was given by Alvaro Videla. He gave a practical view on distributed systems and an overview of all the existing literature (the good ones and the not so good ones too). We will definitely have to read what he called “Bible” of Distributed Systems:  “Impossibility of Distributed Consensus with One Faulty Process” by Fischer, Lynch and Paterson.

TALK: SPOTIFY’S RELIABLE EVENT DELIVERY SYSTEM

Last but not least we went to the talk from Igor Maravic regarding the Spotify Event Delivery System. We were not too surprised to hear that Docker was a common source of issues in modern architecture (and in the Spotify event delivery system). But it was impressive (right word?) to hear that every hour they had to restart their services due to these issues.

docker-issues

The Q&A brought up an important point: they don’t have end-to-end testing; it is hard to test hundreds of microservices.

OUR THOUGHTS AND LESSONS FROM QCON

  • Dedicate some time to learning new stuff, trying new technologies, testing tools.
  • Pay attention to history, look at (relevant) academic papers, read more and more books.
  • Monitoring is essential, better understanding of the system.
  • Design for failure.

Thanks again to the organisers, to the track hosts and to the speakers. See you next year!

Comments

  1. Wes Reisz says:

    Thanks for joining us! Loved your review.

Leave a comment

Please prove that you are human: