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 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.
“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.
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.
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!
- July 2019
- June 2019
- March 2019
- February 2019
- December 2018
- August 2018
- April 2018
- February 2018
- September 2017
- August 2017
- July 2017
- June 2017
- May 2017
- April 2017
- March 2017
- December 2016
- November 2016
- October 2016
- September 2016
- August 2016
- July 2016
- June 2016
- May 2016
- April 2016
- March 2016
- January 2016
- December 2015
- November 2015
- October 2015
- September 2015
- June 2015
- May 2015
- April 2015
- March 2015
- September 2014
- August 2014
- June 2014
- May 2014
- April 2014
- March 2014
- November 2013
- September 2013
- June 2013
- May 2013
- September 2012
- June 2012
- May 2012
- April 2012
- March 2012